@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
-@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
+@c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Microsoft Windows, Manifesto, Mac OS / GNUstep, Top
@appendix Emacs and Microsoft Windows/MS-DOS
here.
@menu
+* Windows Startup:: How to start Emacs on Windows.
* Text and Binary:: Text files use CRLF to terminate lines.
* Windows Files:: File-name conventions on Windows.
* ls in Lisp:: Emulation of @code{ls} for Dired.
-* Windows HOME:: Where Emacs looks for your @file{.emacs}.
+* Windows HOME:: Where Emacs looks for your @file{.emacs} and
+ where it starts up.
* Windows Keyboard:: Windows-specific keyboard features.
* Windows Mouse:: Windows-specific mouse features.
* Windows Processes:: Running subprocesses on Windows.
@end ifnottex
@end menu
+@node Windows Startup
+@section How to Start Emacs on MS-Windows
+@cindex starting Emacs on MS-Windows
+
+ There are several ways of starting Emacs on MS-Windows:
+
+@enumerate
+@item
+@pindex runemacs.exe
+@cindex desktop shortcut, MS-Windows
+@cindex start directory, MS-Windows
+@cindex directory where Emacs starts on MS-Windows
+From the desktop shortcut icon: either double-click the left mouse
+button on the icon, or click once, then press @key{RET}. The desktop
+shortcut should specify as its ``Target'' (in the ``Properties'' of
+the shortcut) the full absolute file name of @file{runemacs.exe},
+@emph{not} of @file{emacs.exe}. This is because @file{runemacs.exe}
+hides the console window that would have been created if the target of
+the shortcut were @file{emacs.exe} (which is a console program, as far
+as Windows is concerned). If you use this method, Emacs starts in the
+directory specified by the shortcut. To control where that is,
+right-click on the shortcut, select ``Properties'', and in the
+``Shortcut'' tab modify the ``Start in'' field to your liking.
+
+@item
+From the Command Prompt window, by typing @kbd{emacs @key{RET}} at the
+prompt. The Command Prompt window where you did that will not be
+available for invoking other commands until Emacs exits. In this
+case, Emacs will start in the current directory of the Windows shell.
+
+@item
+From the Command Prompt window, by typing @kbd{runemacs @key{RET}} at
+the prompt. The Command Prompt window where you did that will be
+immediately available for invoking other commands. In this case,
+Emacs will start in the current directory of the Windows shell.
+
+@item
+@cindex invoking Emacs from Windows Explorer
+@pindex emacsclient.exe
+@pindex emacsclientw.exe
+Via the Emacs client program, @file{emacsclient.exe} or
+@file{emacsclientw.exe}. This allows to invoke Emacs from other
+programs, and to reuse a running Emacs process for serving editing
+jobs required by other programs. @xref{Emacs Server}. The difference
+between @file{emacsclient.exe} and @file{emacsclientw.exe} is that the
+former is a console program, while the latter is a Windows GUI
+program. Both programs wait for Emacs to signal that the editing job
+is finished, before they exit and return control to the program that
+invoked them. Which one of them to use in each case depends on the
+expectations of the program that needs editing services. If that
+program is itself a console (text-mode) program, you should use
+@file{emacsclient.exe}, so that any of its messages and prompts appear
+in the same command window as those of the invoking program. By
+contrast, if the invoking program is a GUI program, you will be better
+off using @file{emacsclientw.exe}, because @file{emacsclient.exe} will
+pop up a command window if it is invoked from a GUI program. A
+notable situation where you would want @file{emacsclientw.exe} is when
+you right-click on a file in the Windows Explorer and select ``Open
+With'' from the pop-up menu. Use the @samp{--alternate-editor=} or
+@samp{-a} options if Emacs might not be running (or not running as a
+server) when @command{emacsclient} is invoked---that will always give
+you an editor. When invoked via @command{emacsclient}, Emacs will
+start in the current directory of the program that invoked
+@command{emacsclient}.
+@end enumerate
+
@node Text and Binary
@section Text Files and Binary Files
@cindex text and binary files on MS-DOS/MS-Windows
drives. Any other non-@code{nil} value means do this even for
removable and remote volumes, where this could potentially slow down
Dired and other related features. The value of @code{nil} means never
-issue those system calls. Non-@code{nil} values are only useful on
-NTFS volumes, which support hard links and file security.
+issue those system calls. Non-@code{nil} values are more useful on
+NTFS volumes, which support hard links and file security, than on FAT,
+FAT32, and XFAT volumes.
@node ls in Lisp
@section Emulation of @code{ls} on MS-Windows
@end table
@noindent
-Any other value of @code{ls-lisp-emulation} means the same as
-@code{GNU}. Note that this option needs to be set @emph{before}
-@file{ls-lisp.el} is loaded, which means that on MS-Windows and MS-DOS
-you will have to set the value from your @file{.emacs} file and then
-restart Emacs, since @file{ls-lisp.el} is preloaded.
+Any other value of @code{ls-lisp-emulation} means the same as @code{GNU}.
+Customizing this option calls the function @code{ls-lisp-set-options} to
+update the 3 dependent options as needed. If you change the value of
+this variable without using customize after @file{ls-lisp.el} is loaded
+(note that it is preloaded on MS-Windows and MS-DOS), you can call that
+function manually for the same result.
@vindex ls-lisp-support-shell-wildcards
The variable @code{ls-lisp-support-shell-wildcards} controls how
@end ifnottex
@node Windows HOME
-@section HOME Directory on MS-Windows
+@section HOME and Startup Directories on MS-Windows
@cindex @code{HOME} directory on MS-Windows
The Windows equivalent of the @code{HOME} directory is the
or @file{C:\WINDOWS\Profiles\@var{username}\Application Data} on the
older Windows 9X/ME systems.
+ @code{HOME} can also be set in the system registry, for details see
+@ref{MS-Windows Registry}.
+
@cindex init file @file{.emacs} on MS-Windows
The home directory is where your init file @file{.emacs} is stored.
When Emacs starts, it first checks whether the environment variable
(setq ps-printer-name t)
(setq ps-lpr-command "D:/gs6.01/bin/gswin32c.exe")
(setq ps-lpr-switches '("-q" "-dNOPAUSE" "-dBATCH"
- "-sDEVICE=mswinpr2"
- "-sPAPERSIZE=a4"))
+ "-sDEVICE=mswinpr2"
+ "-sPAPERSIZE=a4"))
@end example
@noindent
The old XLFD based format is also supported for backwards compatibility.
Emacs 23 supports a number of backends. Currently, the @code{gdi}
-font backend is supported on Windows.
+and @code{uniscribe} font backends are supported on Windows. The
+@code{gdi} font backend is available on all versions of Windows, and
+supports all fonts that are natively supported by Windows. The
+@code{uniscribe} font backend is available on Windows 2000 and later,
+and supports Truetype and Opentype fonts. Some languages requiring
+complex layout can only be properly supported by the uniscribe
+backend. By default, both backends are enabled if supported, with
+@code{uniscribe} taking priority over @code{gdi}.
@cindex font properties (MS Windows)
@noindent
using a specific registry from @code{w32-charset-info-alist} here.
@item spacing
-Specifies how the font is spaced. The @code{p} spacing specifies
+Specifies how the font is spaced. The @code{p} spacing specifies
a proportional font, and @code{m} or @code{c} specify a monospaced font.
@item foundry
@vindex w32-use-visible-system-caret
@cindex screen reader software, MS-Windows
The variable @code{w32-use-visible-system-caret} is a flag that
-determines whether to make the system caret visible. The default is
-@code{nil}, which means Emacs draws its own cursor to indicate the
-position of point. A non-@code{nil} value means Emacs will indicate
-point location by the system caret; this facilitates use of screen
-reader software. When this variable is non-@code{nil}, other
-variables affecting the cursor display have no effect.
+determines whether to make the system caret visible. The default when
+no screen reader software is in use is @code{nil}, which means Emacs
+draws its own cursor to indicate the position of point. A
+non-@code{nil} value means Emacs will indicate point location by the
+system caret; this facilitates use of screen reader software, and is
+the default when such software is detected when running Emacs.
+When this variable is non-@code{nil}, other variables affecting the
+cursor display have no effect.
@iftex
@inforef{Windows Misc, , emacs}, for information about additional
non-@code{nil} value causes a frame to grab focus when it is raised.
The default is @code{t}, which fits well with the Windows default
click-to-focus policy.
-
-@vindex w32-list-proportional-fonts
- The variable @code{w32-list-proportional-fonts} controls whether
-proportional fonts are included in the font selection dialog. If its
-value is non-@code{nil}, these fonts will be included. The default is
-@code{nil}.
@end ifnottex
@ifnottex
@include msdog-xtra.texi
@end ifnottex
-
-@ignore
- arch-tag: f39d2590-5dcc-4318-88d9-0eb73ca10fa2
-@end ignore