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:
parent
c43762dd81
commit
ac85901854
@ -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).
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user