1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-25 07:28:20 +00:00

doc/misc/efaq-w32.texi: Remove outdated information and update.

This commit is contained in:
Eli Zaretskii 2015-03-16 19:46:45 +02:00
parent c43762dd81
commit ac85901854
2 changed files with 189 additions and 236 deletions

View File

@ -1,3 +1,7 @@
2015-03-16 Eli Zaretskii <eliz@gnu.org>
* efaq-w32.texi: Remove outdated information and update.
2015-03-15 Martin Rudalics <rudalics@gmx.at>
* efaq.texi (Fullscreen mode on MS-Windows): Fix description (Bug#20110).

View File

@ -128,10 +128,12 @@ systems.
@cindex supported versions of Windows
Emacs @value{EMACSVER} is known to run on all versions of Windows from
@c FIXME does it really still support Windows 98? Does it matter?
Windows 98 and Windows NT 4.0 through to Windows 7. The Windows port is
built using the Win32 API and supports most features of the X version,
including variable width fonts, images and tooltips.
Windows 98 and Windows NT 4.0 through to Windows 8.1. The Windows
port is built using the Win32 API and supports most features of the X
version, including variable width fonts, images and tooltips.
Emacs on Windows can be compiled as either a 32-bit or a 64-bit
executable, using the MinGW GCC compiler and development tools.
@node Other versions of Emacs
@section What other versions of Emacs run on Windows?
@ -163,10 +165,12 @@ instructions (requires DJGPP).
@cindex where to get Emacs binaries
Pre-compiled versions are distributed from
@uref{http://ftpmirror.gnu.org/emacs/windows/, ftp.gnu.org mirrors}.
Emacs binaries are distributed as zip files, digitally
signed by the developer who built them. Generally most users will
want the file @file{emacs-@value{EMACSVER}-bin-i386.zip}, which
contains everything you need to get started.
Emacs binaries are distributed as zip files, digitally signed by the
developer who built them. Generally most users will want the file
@file{emacs-@value{EMACSVER}-bin-i686-pc-mingw.zip} for the 32-bit
build, and @file{emacs-@value{EMACSVER}-bin-x86_64-w64-mingw32.zip}
for the 64-bit build. The zip archive contains everything you need to
get started.
@cindex where to get sources
@cindex Emacs source code
@ -187,17 +191,18 @@ development site.
@section How can I compile Emacs myself?
@cindex compiling Emacs
To compile Emacs on Windows, you will need the MingW or Cygwin port of
GCC with MingW make, or a Microsoft C compiler with nmake and the
single threaded C runtime library. Recent versions of Microsoft
Visual Studio no longer come with the single threaded C runtime
library, which is required for certain POSIX compatibility, so MingW
is usually the best choice. Image support requires external
libraries, the headers and import libraries for which will need to be
installed where your compiler can find them. You will also need ports
of GNU @command{rm} and @command{cp}, as the Windows native
equivalents are not consistent between versions. GNU texinfo will be
required to build the manuals. @xref{Other useful ports}.
To compile Emacs on Windows, you will need the MingW port of GCC and
Binutils, the MinGW runtime and development environment, and the MSYS
suite of tools. For the details, see the file @file{nt/INSTALL} in
the Emacs source distribution.
Support for displaying images, as well as XML/HTML rendering and TLS
networking requires external libraries, the headers and import
libraries for which will need to be installed where your compiler can
find them. Again, the details, including URLs of sites where you can
download these libraries are in @file{nt/INSTALL}. @xref{Other useful
ports}, for auxiliary tools you may wish to install and use in
conjunction with Emacs.
After unpacking the source, or checking out of the repository, be sure
to read the instructions in @file{nt/README} and @file{nt/INSTALL}.
@ -211,39 +216,25 @@ to read the instructions in @file{nt/README} and @file{nt/INSTALL}.
By default, Emacs is compiled with debugging on, and optimizations enabled.
The optimizations may interfere with some types of debugging; the debugger
may not show clearly where it is, or may not be able to inspect certain
variables. If this is the case, reconfigure with @option{--no-opt}.
variables. If this is the case, reconfigure with @kbd{CFLAGS='-O0 -g3'}
The file @file{etc/DEBUG} contains general debugging hints, as well as
specific notes about debugging Emacs with both gdb and Microsoft debuggers.
specific notes about debugging Emacs.
@menu
* GDB::
* Microsoft Developer Studio::
@end menu
@node GDB
@subsection GDB
@cindex GDB, debugging Emacs with
@cindex debugging Emacs with GDB
GDB is the GNU debugger, which can be used to debug Emacs when it has
been compiled with GCC. The best results will be obtained if you
start gdb from the @file{src} directory as @samp{gdb oo/i386/emacs.exe}.
This will load the init file @file{.gdbinit} in that directory, to
define some extra commands for working with lisp while debugging, and
set up breakpoints to catch abnormal aborts.
been compiled with MinGW GCC. The best results will be obtained if
you start gdb from the @file{src} directory as @kbd{gdb ./emacs.exe}.
This will load the init file @file{.gdbinit}@footnote{
Latest versions of GDB might refuse to load the init file for security
reasons, unless you customize GDB; alternatively, use an explicit
@kbd{source ./gdbinit} command after entering GDB.
} in that directory, to define some extra commands for working with
lisp while debugging, and set up breakpoints to catch abnormal
aborts.
@node Microsoft Developer Studio
@subsection Microsoft Developer Studio
@cindex MSVC++, debugging Emacs with
@cindex DevStudio, debugging Emacs with
@cindex debugging Emacs with MS DevStudio
MS DevStudio can be used to debug Emacs when it has been compiled with
a Microsoft compiler. To view lisp variables, you can call the
function @code{debug_print} from the Quickwatch window. Some
@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/debug.txt,
old tips} are probably still valid.
A Windows port of GDB can be found on MinGW download sites and on some
others.
@c ------------------------------------------------------------
@node Installing Emacs
@ -251,7 +242,7 @@ old tips} are probably still valid.
@menu
* Unpacking::
* Installing::
* Installing binaries::
* Image support::
* Init file::
* Location of init file::
@ -279,24 +270,27 @@ old tips} are probably still valid.
The binary distributions are distributed as zip files, which are handled
natively by Windows XP and later. For earlier versions, there are many
tools that can handle the zip format, from InfoZip's command line unzip
tool, to 7zip's multi-format graphical archive explorer. Although
tool, to 7zip's multi-format graphical archive explorer. (Although
popular, WinZip has caused problems with line-ends in the past, and is not
Free software, so we do not recommend it.
Free software, so we do not recommend it.)
Source distributions are distributed as gzipped tar files. 7zip and
similar multi-format graphical tools can handle these, or you can get
Windows ports of the command line gzip and tar tools from multiple sources.
Source distributions are distributed as @file{.tar.gz} or
@file{.tar.xz} files. 7zip and similar multi-format graphical tools
can handle these, or you can get Windows ports of the command line
gzip and tar tools from multiple sources, or use @command{bsdtar}.
@xref{Other useful ports}.
The command to unpack a source distribution from the command line is:
@example
tar xzf emacs-@value{EMACSVER}.tar.gz
@end example
If this does not work with the versions of tar and gzip that you have,
you may need to try a two step process:
@example
gzip -dc emacs-@value{EMACSVER}.tar.gz | tar xvf -
gzip -dc emacs-@value{EMACSVER}.tar.gz | tar xf -
@end example
You may see many messages from tar complaining about being unable to change
@ -304,8 +298,21 @@ the modification time on directories, and from gzip complaining about a
broken pipe. These messages are usually harmless, caused by incomplete ports
that are not fully aware of the limitations of Windows.
@node Installing
@section How do I install Emacs after unpacking?
And here's an example of using @command{bsdtar} (from the
@samp{libarchive} package) to unpack a @file{.tar.xz} archive:
@example
bsdtar -xf emacs-@value{EMACSVER}.tar.xz
@end example
Expect @command{bsdtar} to unpack the whole distribution without any
complaints.
Once you unpack the source distribution, look in @file{nt/INSTALL}
file for build instructions.
@node Installing binaries
@section How do I install Emacs after unpacking the binary zip?
@cindex installing Emacs
@pindex addpm
@cindex Start Menu, creating icons for Emacs
@ -313,7 +320,8 @@ that are not fully aware of the limitations of Windows.
You can run Emacs without any extra steps, but if you want icons in your
Start Menu, or for Emacs to detect the image libraries that are already
installed on your system as part of GTK, then you should run the program
@file{emacs-@value{EMACSVER}\bin\addpm.exe}.
@file{addpm.exe}, which is usually installed into the same @file{bin}
directory with @file{emacs.exe}.
@node Image support
@section How do I get image support?
@ -323,6 +331,7 @@ installed on your system as part of GTK, then you should run the program
@cindex gif, installing image support in Emacs
@cindex tiff, installing image support in Emacs
@cindex xpm, installing image support in Emacs
@cindex rsvg, installing image support in Emacs
@cindex toolbar, installing color icons in
@cindex color images, installing support for images in Emacs
@cindex monochrome images, getting color images in Emacs
@ -330,12 +339,12 @@ installed on your system as part of GTK, then you should run the program
Emacs has built in support for XBM and PBM/PGM/PPM images. This is
sufficient to see the monochrome splash screen and tool-bar icons.
Since 22.2, the official precompiled binaries for Windows have bundled
Since v22.2, the official precompiled binaries for Windows have bundled
libXpm, which is required to display the color versions of those images.
Emacs is compiled to recognize JPEG, PNG, GIF and TIFF images also,
but displaying these image types require external DLLs which are not
bundled with Emacs. @xref{Other useful ports}.
Emacs is compiled to recognize JPEG, PNG, GIF, TIFF, and RSVG images
also, but displaying these image types require external DLLs which are
not bundled with Emacs. @xref{Other useful ports}.
@node Init file
@section What is my init file?
@ -344,11 +353,11 @@ bundled with Emacs. @xref{Other useful ports}.
When Emacs starts up, it attempts to load and execute the contents of
a file commonly called @file{.emacs} (though it may have other names,
@pxref{Installing Emacs,,Where do I put my init file?}) which contains any
customizations you have made. You can manually add lisp code to your
.emacs, or you can use the Customization interface accessible from the
@emph{Options} menu. If the file does not exist, Emacs will start
with the default settings.
@pxref{Location of init file,,Where do I put my init file?}) which
contains any customizations you have made. You can manually add lisp
code to your .emacs, or you can use the Customization interface
accessible from the @emph{Options} menu. If the file does not exist,
Emacs will start with the default settings.
@node Location of init file
@section Where do I put my init file?
@ -358,15 +367,15 @@ with the default settings.
@cindex init.el
@cindex registry, setting the HOME directory in
On Windows, the .emacs file may be called _emacs for backward
compatibility with DOS and FAT filesystems where filenames could not
start with a dot. Some users prefer to continue using such a name,
because Explorer cannot create a file with a name starting with a dot,
even though the filesystem and most other programs can handle it.
In Emacs 22 and later, the init file may also be called
@file{.emacs.d/init.el}. Many of the other files that are created
by lisp packages are now stored in the @file{.emacs.d} directory too,
so this keeps all your Emacs related files in one place.
On Windows, the @file{.emacs} file may be called @file{_emacs} for
backward compatibility with DOS and FAT filesystems where filenames
could not start with a dot. Some users prefer to continue using such
a name due to historical problems various Windows tools had in the
past with file names that begin with a dot. In Emacs 22 and later,
the init file may also be called @file{.emacs.d/init.el}. Many of the
other files that are created by lisp packages are now stored in the
@file{.emacs.d} directory too, so this keeps all your Emacs related
files in one place.
All the files mentioned above should go in your @env{HOME} directory.
The @env{HOME} directory is determined by following the steps below:
@ -387,14 +396,14 @@ backward compatibility, as previous versions defaulted to @file{C:/}
if @env{HOME} was not set.
@item
Use the user's AppData directory, usually a directory called
@file{Application Data} under the user's profile directory, the location
@file{AppData} under the user's profile directory, the location
of which varies according to Windows version and whether the computer is
part of a domain.
@end enumerate
Within Emacs, @key{~} at the beginning of a file name is expanded to your
@env{HOME} directory, so you can always find your .emacs file with
@kbd{C-x C-f ~/.emacs}.
@env{HOME} directory, so you can always find your @file{.emacs} file
by typing the command @kbd{C-x C-f ~/.emacs}.
@node Troubleshooting init file
@section Troubleshooting init file problems
@ -409,15 +418,16 @@ to. You can do this by evaluating the following expression in the
@file{*scratch*} buffer using @kbd{C-x C-e}:
@example
(insert (getenv "HOME"))
(getenv "HOME")
@end example
Look carefully at what is printed and make sure the value is
valid. For example, if the value has trailing whitespace, Emacs won't
be able to find the directory. Also, be sure that the value isn't a
relative drive letter (e.g., @file{d:} without a backslash); if it is,
then @env{HOME} is going to be whatever the current directory on that
drive is, which is likely not what you want to happen.
Look carefully at what is printed in the echo area, and make sure the
value is valid. For example, if the value has trailing whitespace,
Emacs won't be able to find the directory. Also, be sure that the
value isn't a relative drive letter (e.g., @file{d:} without a
backslash or a forward slash after the colon); if it is, then
@env{HOME} is going to be whatever the current directory on that drive
is, which is likely not what you want to happen.
@node Associate files with Emacs
@section How do I associate files with Emacs?
@ -488,9 +498,9 @@ Thanks to Jason Rumney and Sigbjorn Finne for these tips.
The location of the Desktop varies between different versions of
Windows, and in a corporate environment can be moved around by the
network administrator. On NT derivatives, you can use the value of
the @env{USERPROFILE} environment variable to find where the desktop
might be:
network administrator. On latest Windows versions, you can use the
value of the @env{USERPROFILE} environment variable to find where the
desktop might be:
@example
@kbd{C-x C-f $USERPROFILE/Desktop}
@ -512,7 +522,7 @@ menu by default). Once you have a file from the Desktop inside Emacs,
@end menu
@node Focus follows mouse
@subsection How do it make the active window follow the mouse?
@subsection How do I make the active window follow the mouse?
@vindex focus-follows-mouse
@cindex point to focus
@cindex mouse over to focus
@ -524,6 +534,11 @@ even though Windows has a click to focus policy by default (there is
software available to change that though). The latter can be used to
make Emacs use a focus-follow-mouse policy within its own frames.
You can also change the Windows click-to-focus policy by changing
settings in the Registry. The details vary according to your Windows
version; look on the Internet for instructions to enable ``active
window tracking'' for your version of Windows.
@node Swap CapsLock and Control
@subsection How do I swap CapsLock and Control?
@cindex scan codes, modifying
@ -576,7 +591,7 @@ Date: 04 Dec 1996 14:36:21 -0600
Message-ID: <fawg21mm4hm.fsf@@mordor.rsn.hp.com>
Subject: Re: Re[2]: problem with caps/ctrl swap on NT 4.0
@end ignore
@example
@smallexample
It's a binary value that lets you map keystrokes in the low-level keyboard
drivers in NT. As a result you don't have to worry about applications
bypassing mappings that you've done at a higher level (i.e. it just works).
@ -600,7 +615,7 @@ lock key will behave as caps-lock. To swap, you also need to map 0x3a to
This registry value is system wide, and can't be made user-specific. It
also only takes affect on reboot.
@end example
@end smallexample
@item
Ulfar Erlingsson has provided a registry file that sets the CapsLock key
to be a Control key and the Windows key to be an Alt key:
@ -663,7 +678,8 @@ buffers etc. will instead act on the region. An inactive mark needs
to be reactivated to operate on it, unless @code{mark-even-if-inactive}
is set. Secondly, @code{transient-mark-mode} also highlights the
region when it is active, providing the same visual clue that you get
in other programs.
in other programs. This mode is turned on by default in latest
versions of Emacs.
In addition to seeing the highlighting, new Emacs users often expect
editing commands to replace the region when it is active. This behavior
@ -717,14 +733,16 @@ message as documented in Microsoft's API documentation.
@cindex delete Emacs directory
Emacs does not come with an uninstall program. No files are installed
outside of the Emacs base directory, so deleting that directory is
sufficient to clean away the files. If you ran @command{addpm},
you'll need to delete the Start Menu group too. The registry entries
inserted by @command{addpm} will not cause any problems if you leave
them there, but for the sake of completeness, you can use @command{regedit}
to remove the keys under @code{HKEY_LOCAL_MACHINE} orx
@code{HKEY_CURRENT_USER}: @code{SOFTWARE\GNU\Emacs}, and the key
@code{HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\emacs.exe} if it exists.
outside of the directories you find in the binary zip archive, so
deleting those directories is sufficient to clean away the files. If
you ran @command{addpm}, you'll need to delete the Start Menu group
too. The registry entries inserted by @command{addpm} will not cause
any problems if you leave them there, but for the sake of
completeness, you can use @command{regedit} to remove the keys under
@code{HKEY_LOCAL_MACHINE} orx @code{HKEY_CURRENT_USER}:
@code{SOFTWARE\GNU\Emacs}, and the key
@code{HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App
Paths\emacs.exe} if it exists.
@node Does not run
@section When I run Emacs nothing happens
@ -751,9 +769,10 @@ been truncated to CONTRIBU or CONTRI~1, your distribution has been
corrupted while unpacking and Emacs will not start.
@end enumerate
If it is still not working, send mail to the list, describing what
you've done, and what you are seeing. (The more information you send
the more likely it is that you'll receive a helpful response..
If it is still not working, send mail to the
@email{help-gnu-emacs@@gnu.org} mailing list, describing what you've
done, and what you are seeing. (The more information you send the more
likely it is that you'll receive a helpful response.)
@node Virus
@section Does Emacs contain a virus?
@ -880,7 +899,6 @@ The doc string contains a list of the system sounds you can use.
* Font names::
* Bold and italic::
* Multilingual fonts::
* BDF fonts::
* Font menu::
* Line ends::
@end menu
@ -910,9 +928,9 @@ an indication of whether the font is outline (.TTF, .ATM) or raster (.FON)
based when fonts are listed, which may let you differentiate between two
fonts with the same name and different technologies.
From Emacs 23, the preferred font name format will be moving to the simpler
and more flexible fontconfig format. XLFD names will continue to be
supported for backward compatibility.
Starting with Emacs 23, the preferred font name format will be moving
to the simpler and more flexible fontconfig format. XLFD names will
continue to be supported for backward compatibility.
@example
XLFD: -*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-1
@ -959,6 +977,9 @@ and manually set the font for italic, bold and bold-italic as follows:
(set-face-font 'bold-italic "-*-Courier New-bold-i-*-*-11-*-*-*-c-*-iso8859-1")
@end example
The @code{w32-enable-synthesized-fonts} variable is obsolete starting
from Emacs 24.4, as Emacs no longer has this limitation.
@node Multilingual fonts
@section Multilingual font support
@cindex multilingual display, fonts
@ -985,11 +1006,8 @@ require the BDF fonts from the GNU intlfonts package.
For many languages, native truetype fonts are sufficient, and in Emacs
23 the need for BDF fonts will disappear for almost all languages. At
the time of writing, some Arabic characters in the HELLO file still do
not display with native fonts, because they are pre-composed characters
from MULE character sets rather than standard Unicode Arabic, but all
other characters are able to be displayed with appropriate truetype or
opentype fonts.
the time of writing, all supported characters are able to be displayed
with appropriate truetype or opentype fonts.
@node Non-latin display
@subsection How do I get Emacs to display non-latin characters?
@ -1025,6 +1043,12 @@ new fontset with @code{create-fontset-from-ascii-font} or
chinese-big5-2:-*-MingLiU-normal-r-*-*-12-*-*-*-c-*-big5-*" t)
@end example
Alternatively, you can augment the default fontset with information of
which fonts to use for certain ranges of characters or for specific
scripts/character sets. @xref{Modifying Fontsets,, Modifying
Fontsets, emacs, The GNU Emacs Manual}, for details and some useful
examples.
@node International fonts
@subsection Where can I find fonts for other languages?
@cindex language support, finding fonts
@ -1037,10 +1061,10 @@ new fontset with @code{create-fontset-from-ascii-font} or
In addition to the wide range of fonts that come with the language
support packages of various components of Windows itself, GNU/Linux
distributions these days come with a number of Free truetype fonts
that cover a wide range of languages. The GNU intlfonts source
distribution contains BDF fonts covering all of the languages that can
be displayed by Emacs 22, and can be downloaded from
@uref{http://ftpmirror.gnu.org/intlfonts, ftp.gnu.org mirrors}.
that cover a wide range of languages. The GNU Unifont project
contains glyphs for most of the Unicode codespace, and can be
downloaded from @uref{http://ftpmirror.gnu.org/unifont, ftp.gnu.org
mirrors}.
@node Third-party multibyte
@subsection How do I use third party programs to display multibyte characters?
@ -1058,12 +1082,6 @@ for that language, but the third party software is intercepting it
and using a different font behind the scenes).
@xref{Non-latin display}.
In addition to defining a fontset with the expected font, you may also need
to disable unicode output with:
@example
(setq w32-enable-unicode-output nil)
@end example
@node Localized fonts
@subsection Can I use a font with a name in my language?
@cindex fonts, localized font names
@ -1073,87 +1091,9 @@ Normally Emacs should initialize @code{locale-coding-system} appropriately
based on your locale, which will let Emacs use font names in your local
language successfully.
@node BDF fonts
@section How do I use bdf fonts with Emacs?
@cindex BDF fonts, using
@cindex GNU intlfonts, using
@cindex intlfonts, using
@vindex w32-bdf-filename-alist
@vindex bdf-directory-alist
@vindex font-encoding-alist
@findex w32-find-bdf-fonts
@findex set-frame-font
To use bdf fonts with Emacs, you need to tell Emacs where the fonts
are located, create fontsets for them, and then use them. We'll use
the 16 dot international fonts from @uref{http://ftpmirror.gnu.org/intlfonts,
ftp.gnu.org/gnu/intlfonts} as an
example put together by Jason Rumney.
Download @file{16dots.tar.gz} and unpack it; I'll assume that they are in
@file{c:\intlfonts}. Then set @code{w32-bdf-filename-alist} to the list of
fonts returned by using @code{w32-find-bdf-fonts} to enumerate all of
the font files. It is a good idea to set the variable
@code{bdf-directory-list} at the same time so @code{ps-print} knows where
to find the fonts:
@example
(setq bdf-directory-list
'("c:/intlfonts/Asian" "c:/intlfonts/Chinese"
"c:/intlfonts/Chinese-X" "c:/intlfonts/Ethiopic"
"c:/intlfonts/European" "c:/intlfonts/Japanese"
"c:/intlfonts/Japanese-X" "c:/intlfonts/Korean-X"
"c:/intlfonts/Misc/"))
(setq w32-bdf-filename-alist (w32-find-bdf-fonts bdf-directory-list))
@end example
Then create fontsets for the BDF fonts:
@example
(create-fontset-from-fontset-spec
"-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf,
japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*,
katakana-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
latin-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
japanese-jisx0208-1978:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1978-*,
thai-tis620:-misc-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1,
lao:-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1,
tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1,
ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode,
tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0")
@end example
Many of the international bdf fonts from gnu.org are type 0, and therefore
need to be added to font-encoding-alist:
@example
;; Need to add some fonts to font-encoding-alist since the bdf fonts
;; are type 0 not the default type 1.
(setq font-encoding-alist
(append '(("MuleTibetan-0" (tibetan . 0))
("GB2312" (chinese-gb2312 . 0))
("JISX0208" (japanese-jisx0208 . 0))
("JISX0212" (japanese-jisx0212 . 0))
("VISCII" (vietnamese-viscii-lower . 0))
("KSC5601" (korean-ksc5601 . 0))
("MuleArabic-0" (arabic-digit . 0))
("MuleArabic-1" (arabic-1-column . 0))
("MuleArabic-2" (arabic-2-column . 0))) font-encoding-alist))
@end example
You can now use the Emacs font menu (@pxref{Fonts and text
translation,,How can I have Emacs use a font menu like on X?}) to
select the @emph{bdf: 16-dot medium} fontset, or you can select it by
setting the default font:
@example
(set-frame-font "fontset-bdf")
@end example
Try loading the file @file{etc/HELLO}, and you should be able to see the
various international fonts displayed (except for Hindi, which is not
included in the 16-dot font distribution).
@c This feature disappeared in Emacs 23, but I'm keeping its
@c description here, since I think it was a mistake to remove it, and
@c resurrecting it doesn't sound too problematic.
@node Font menu
@section How can I have Emacs use a font menu like on X?
@cindex fonts, displaying a menu
@ -1171,6 +1111,8 @@ Place the following in your init file:
* Add fonts to menu::
@end menu
@c This variable still exists, but will have no effect until
@c w32-use-w32-font-dialog support is resurrected, see above.
@node Add fonts to menu
@subsection How can I add my font to the font menu?
@cindex font menu, adding fonts
@ -1204,7 +1146,6 @@ this collection of email messages} on the topic.
@menu
* Automatic line ends::
* Line ends by filename::
* Line ends by file system::
@end menu
@ -1220,19 +1161,6 @@ file in Unix (LF) mode with the Ctrl-M characters displayed as @samp{^M}.
It does this to be safe, as no data loss will occur if the file is really
binary and the Ctrl-M characters are significant.
@node Line ends by filename
@subsection CR/LF translation by file extension
@cindex line ends, determining by filename
@cindex binary files, determining by file name
@vindex file-name-buffer-file-type-alist
The variable @code{file-name-buffer-file-type-alist} holds a list of
filename patterns and their associated type; binary or text. Files marked
as binary will not have line-end detection performed on them, and instead
will always be displayed as is. With auto-detection in recent versions of
Emacs, this is seldom useful for existing files, but can still be used
to influence the choice of line ends for newly created files.
@node Line ends by file system
@subsection CR/LF translation by file system
@cindex line ends, determining by filesystem
@ -1260,8 +1188,9 @@ MS Windows, but this has still been insufficient to keep up with
changes in printing technology from text and postscript based printers
connected via ports that can be accessed directly, to graphical
printers that are only accessible via USB. For details, see
@uref{http://www.emacswiki.org/cgi-bin/wiki/PrintingFromEmacs, Emacs
Wiki}.
@uref{http://www.emacswiki.org/emacs/PrintingFromEmacs, Emacs
Wiki}, @uref{http://www.emacswiki.org/emacs/PrintWithWebBrowser}, and
@uref{http://www.emacswiki.org/emacs/PrintFromWindowsExplorer}.
@c ------------------------------------------------------------
@node Sub-processes
@ -1293,9 +1222,7 @@ Wiki}.
The quoting rules for native Windows shells and Cygwin shells have
some subtle differences. When Emacs spawns subprocesses, it tries to
determine whether the process is a Cygwin program and changes its
quoting mechanism appropriately. See this
@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/shell-quoting,
previous discussion} for details.
quoting mechanism appropriately.
@node Subprocess hang
@section Programs reading input hang
@ -1357,9 +1284,11 @@ you can use @code{setbuf} and @code{setvbuf} to manipulate
the buffering semantics.
Some programs handle this by having an explicit flag to control their
buffering behavior, typically @option{-i} for interactive. Other
programs manage to detect that they are running under Emacs, by
using @samp{getenv("emacs")} internally.
buffering behavior, typically @option{-i} for interactive, or by a
special environment variable. Other programs manage to detect that
they are running under Emacs, by using @samp{getenv("emacs")}
internally. Look in the program's documentation for the way around
this issue.
@menu
* Perl script buffering::
@ -1428,6 +1357,7 @@ this discussion} for more details.
@vindex explicit-shell-file-name
You can start an interactive shell in Emacs by typing @kbd{M-x shell}.
By default, this will start the standard Windows shell @file{cmd.exe}.
Emacs uses the @env{SHELL} environment variable to determine which
program to use as the shell. To instruct Emacs to use a non-default
shell, you can either set this environment variable, or customize
@ -1467,11 +1397,6 @@ default shell in Emacs, you can place the following in your init file:
(add-hook 'shell-mode-hook 'my-shell-setup)
@end example
If you find that you are having trouble with Emacs tracking drive
changes with bash, see Mike Fabian's
@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/drive-tracking,
note}.
WARNING: Some versions of bash set and use the environment variable
PID. For some as yet unknown reason, if @env{PID} is set and Emacs
passes it on to bash subshells, bash dies (Emacs can inherit the
@ -1489,7 +1414,7 @@ continue to use bash as your subshell:
@cindex cygwin mount points, using within Emacs
The package
@uref{http://www.emacswiki.org/cgi-bin/wiki/cygwin-mount.el,
@uref{http://www.emacswiki.org/emacs/cygwin-mount.el,
cygwin-mount.el} teaches Emacs about Cygwin mount points.
@node Dired ls
@ -1849,11 +1774,15 @@ your type (@code{flyspell}). Both packages depend on a copy of
@command{ispell} 3.2 or a compatible spell-checking program.
GNU Aspell is a popular choice these days, Windows installers are
available from the @uref{http://aspell.net/win32/, official site}.
Another possibility is Hunspell, which is available from
@uref{https://sourceforge.net/projects/ezwinports/files/?source=navbar,
the ezwinports site}.
Once installed, you will need to configure @code{ispell-program-name}
to tell ispell and flyspell to use @command{aspell} as a replacement for
ispell. You can include the full path to the @file{aspell} binary, which
means you do not need to add its installation directory to the @env{PATH}.
to tell ispell and flyspell to use @command{aspell} or
@command{hunspell} as a replacement for ispell. You can include the
full path to the @file{aspell}/@file{hunspell} binary, which means you
do not need to add its installation directory to the @env{PATH}.
@node Encryption
@section Emacs and encryption
@ -1942,6 +1871,13 @@ of grep is to use @samp{findstr /n /r}.
@node Developing with Emacs
@chapter Developing with Emacs
We recommend using the GNU Compiler Collection for developing C/C++
code from Emacs. The MinGW development toolchain provides Windows
ports of GCC and other compilers.
The rest of this chapter describes other alternatives which you may
need to use.
@menu
* MSVC::
* Borland C++ Builder::
@ -2178,6 +2114,7 @@ suggestions} for improving the interaction of perldb and Emacs.
@menu
* Cygwin::
* MinGW::
* EZWinPorts::
* UWIN::
* GnuWin32::
* GTK::
@ -2230,6 +2167,17 @@ filesystem mapping to appear more POSIX like to the scripts that it
runs. This is intended to complement the MinGW tools to make it easier
to port software to Windows.
@node EZWinPorts
@section EZWinPorts
@cindex ezwinports
The @uref{https://sourceforge.net/projects/ezwinports/, EZWinPorts
project} provides many useful ports of recent versions of GNU and Unix
software. This includes all the optional libraries used by Emacs
(image libraries, libxml2, GnuTLS), RCS, Terxinfo, a clone of
@command{man} command, Grep, xz, bzip2, bsdtar, ID Utils, Findutils,
Hunspell, Gawk, GNU Make, Groff, GDB.
@node UWIN
@section UWIN
@cindex uwin environment
@ -2251,8 +2199,8 @@ is @command{ksh}, the Korn shell.
@uref{http://gnuwin32.sourceforge.net/}
GnuWin32 provides precompiled native Windows ports of a wide selection
of Free software and libraries. Tools available here that are useful
for Emacs include:
of Free software and libraries. Unfortunately, the ports are
outdated. Tools available here that are useful for Emacs include:
@itemize
@item Arc - used by @code{archive-mode} to edit .arc files.
@ -2302,7 +2250,8 @@ Man pages for Emacs and other ported programs that you have can be
read using Emacs' built-in manual reader @code{woman}. This
requires no external programs, but if you do have a port of
@command{man}, there is also an Emacs wrapper @code{man} that
which may be slightly faster.
which may be slightly faster. A Windows version of @command{man} is
available from the EZWinPorts site (@pxref{EZWinPorts}).
@c ------------------------------------------------------------
@node Further information