]> code.delx.au - gnu-emacs/blobdiff - doc/emacs/msdog.texi
Update Emacs Invocation chapter of Emacs manual.
[gnu-emacs] / doc / emacs / msdog.texi
index 7358773485d45f3e691afb97aded8a8283fbd877..d31906d9b04e9a5eae04ca7d1d3ea9816d7de392 100644 (file)
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
+@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
 @c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Microsoft Windows, Manifesto, Mac OS / GNUstep, Top
@@ -84,30 +84,29 @@ Emacs will start in the current directory of the Windows shell.
 @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}.
+Via @file{emacsclient.exe} or @file{emacsclientw.exe}, which allow you
+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
@@ -323,7 +322,7 @@ default value is @code{(links uid gid)} i.e.@: all the 3 optional
 attributes are displayed.
 
 @vindex ls-lisp-emulation
-  The variable @code{ls-lisp-emulation} controls the flavour of the
+  The variable @code{ls-lisp-emulation} controls the flavor of the
 @code{ls} emulation by setting the defaults for the 3 options
 described above: @code{ls-lisp-ignore-case},
 @code{ls-lisp-dirs-first}, and @code{ls-lisp-verbosity}.  The value of
@@ -402,45 +401,54 @@ names, which might cause misalignment of columns in Dired display.
 
   The Windows equivalent of the @code{HOME} directory is the
 @dfn{user-specific application data directory}.  The actual location
-depends on your Windows version and system configuration; typical values
-are @file{C:\Documents and Settings\@var{username}\Application Data} on
-Windows 2K/XP and later, and either @file{C:\WINDOWS\Application Data}
-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
+depends on the Windows version; typical values are @file{C:\Documents
+and Settings\@var{username}\Application Data} on Windows 2K/XP/2K3,
+@file{C:\Users\@var{username}\AppData\Roaming} on Windows Vista/7/2K8,
+and either @file{C:\WINDOWS\Application Data} or
+@file{C:\WINDOWS\Profiles\@var{username}\Application Data} on the
+older Windows 9X/ME systems.  If this directory does not exist or
+cannot be accessed, Emacs falls back to @file{C:\} as the default
+value of @code{HOME}.
+
+  You can override this default value of @code{HOME} by explicitly
+setting the environment variable @env{HOME} to point to any directory
+on your system.  @env{HOME} can be set either from the command shell
+prompt or from the @samp{My Computer}s @samp{Properties} dialog.
+@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
-@env{HOME} is set.  If it is, it looks for the init file in the
-directory pointed by @env{HOME}.  If @env{HOME} is not defined, Emacs
-checks for an existing @file{.emacs} file in @file{C:\}, the root
-directory of drive @file{C:}@footnote{
-The check in @file{C:\} is for compatibility with older versions of Emacs,
-which didn't check the application data directory.
-}.  If there's no such file in @file{C:\}, Emacs next uses the Windows
-system calls to find out the exact location of your application data
-directory.  If that system call fails, Emacs falls back to @file{C:\}.
-
-  Whatever the final place is, Emacs sets the value of the @env{HOME}
-environment variable to point to it, and it will use that location for
-other files and directories it normally creates in the user's home
-directory.
+  For compatibility with older versions of Emacs@footnote{
+Older versions of Emacs didn't check the application data directory.
+}, if there is a file named @file{.emacs} in @file{C:\}, the root
+directory of drive @file{C:}, and @env{HOME} is set neither in the
+environment nor in the Registry, Emacs will treat @file{C:\} as the
+default @code{HOME} location, and will not look in the application
+data directory, even if it exists.  Note that only @file{.emacs} is
+looked for in @file{C:\}; the older name @file{_emacs} (see below) is
+not.  This use of @file{C:\.emacs} to define @code{HOME} is
+deprecated.
+
+  Whatever the final place is, Emacs sets the internal value of the
+@env{HOME} environment variable to point to it, and it will use that
+location for other files and directories it normally looks for or
+creates in the user's home directory.
 
   You can always find out where Emacs thinks is your home directory's
 location by typing @kbd{C-x d ~/ @key{RET}}.  This should present the
 list of files in the home directory, and show its full name on the
 first line.  Likewise, to visit your init file, type @kbd{C-x C-f
-~/.emacs @key{RET}}.
+~/.emacs @key{RET}} (assuming the file's name is @file{.emacs}).
+
+@cindex init file @file{.emacs} on MS-Windows
+  The home directory is where your init file is stored.  It can have
+any name mentioned in @ref{Init File}.
 
 @cindex @file{_emacs} init file, MS-Windows
   Because MS-DOS does not allow file names with leading dots, and
-because older Windows systems made it hard to create files with such
-names, the Windows port of Emacs supports an alternative name
-@file{_emacs} as a fallback, if such a file exists in the home
-directory, whereas @file{.emacs} does not.
+older Windows systems made it hard to create files with such names,
+the Windows port of Emacs supports an init file name @file{_emacs}, if
+such a file exists in the home directory and @file{.emacs} does not.
+This name is considered obsolete.
 
 @node Windows Keyboard
 @section Keyboard Usage on MS-Windows
@@ -855,15 +863,22 @@ fontconfig library used in modern Free desktops:
 
   The old XLFD based format is also supported for backwards compatibility.
 
-  Emacs 23 supports a number of backends.  Currently, the @code{gdi}
-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
+@cindex font backend selection (MS-Windows)
+  Emacs 23 and later supports a number of font backends.  Currently,
+the @code{gdi} and @code{uniscribe} 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
+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}.
+@code{uniscribe} taking priority over @code{gdi}.  To override that
+and use the GDI backend even if Uniscribe is available, invoke Emacs
+with the @kbd{-xrm Emacs.fontBackend:gdi} command-line argument, or
+add a @code{Emacs.fontBackend} resource with the value @code{gdi} in
+the Registry under either the
+@samp{HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs} or the
+@samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs} key (@pxref{Resources}).
 
 @cindex font properties (MS Windows)
 @noindent
@@ -906,7 +921,7 @@ as a fallback with the font family left unspecified.
 @vindex w32-charset-info-alist
 @item registry
 Specifies the character set registry that the font is
-expected to cover.  Most Truetype and Opentype fonts will be unicode fonts
+expected to cover.  Most TrueType and OpenType fonts will be Unicode fonts
 that cover several national character sets, but you can narrow down the
 selection of fonts to those that support a particular character set by
 using a specific registry from @code{w32-charset-info-alist} here.
@@ -928,9 +943,9 @@ Options specific to @code{GDI} fonts:
 @table @code
 
 @cindex font scripts (MS Windows)
-@cindex font unicode subranges (MS Windows)
+@cindex font Unicode subranges (MS Windows)
 @item script
-Specifies a unicode subrange the font should support.
+Specifies a Unicode subrange the font should support.
 
 The following scripts are recognized on Windows: @code{latin}, @code{greek},
 @code{coptic}, @code{cyrillic}, @code{armenian}, @code{hebrew}, @code{arabic},
@@ -946,11 +961,12 @@ The following scripts are recognized on Windows: @code{latin}, @code{greek},
 
 @cindex font antialiasing (MS Windows)
 @item antialias
-Specifies the antialiasing to use for the font.  The value @code{none}
-means no antialiasing, @code{standard} means use standard antialiasing,
-@code{subpixel} means use subpixel antialiasing (known as Cleartype on Windows),
-and @code{natural} means use subpixel antialiasing with adjusted spacing between
-letters.  If unspecified, the font will use the system default antialiasing.
+Specifies the antialiasing method.  The value @code{none} means no
+antialiasing, @code{standard} means use standard antialiasing,
+@code{subpixel} means use subpixel antialiasing (known as Cleartype on
+Windows), and @code{natural} means use subpixel antialiasing with
+adjusted spacing between letters.  If unspecified, the font will use
+the system default antialiasing.
 @end table
 
 @node Windows Misc