Improve the MS-Windows appendix of the Emacs manual

* doc/emacs/msdos.texi (Windows Startup): Describe the pinned
shortcuts for starting Emacs.
(Text and Binary): Minor wording changes.
(Windows Files): Mention 'read-file-name-completion-ignore-case'.
(ls in Lisp): Update the list of supported 'ls' switches.
Document 'ls-lisp-use-string-collate' and
'ls-lisp-UCA-like-collation'.
(Windows HOME): Mention warnings displayed at startup when
deprecated locations of HOME and/or deprecated names for init
files are used.
(Windows Keyboard): Mention delete-selection-mode.
This commit is contained in:
Eli Zaretskii 2018-02-16 12:46:32 +02:00
parent 6ddb4bd39a
commit e9c7ddc64b

View file

@ -68,6 +68,20 @@ directory specified by the shortcut. To control where that is,
right-click on the shortcut, select ``Properties'', and in the right-click on the shortcut, select ``Properties'', and in the
``Shortcut'' tab modify the ``Start in'' field to your liking. ``Shortcut'' tab modify the ``Start in'' field to your liking.
@item
@cindex pinning Emacs to Windows task bar
From a task-bar shortcut icon, by clicking once the left mouse button.
Windows versions since Vista allow you to create such shortcuts by
@dfn{pinning} the icon of a running program that appears in the task
bar. You can do that with Emacs, but afterwards you will have to
change the properties of the pinned shortcut to run
@file{runemacs.exe}, @emph{not} of @file{emacs.exe}. You can also pin
Emacs to the task bar by clicking the right mouse button on its icon
in the Start menu, then selecting @samp{Pin to taskbar}. Once again,
be sure to specify @file{runemacs.exe} as the program to run. You can
control where Emacs starts by setting the ``Start in'' field of the
shortcut's Properties.
@item @item
From the Command Prompt window, by typing @kbd{emacs @key{RET}} at the 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 prompt. The Command Prompt window where you did that will not be
@ -80,6 +94,12 @@ the prompt. The Command Prompt window where you did that will be
immediately available for invoking other commands. In this case, immediately available for invoking other commands. In this case,
Emacs will start in the current directory of the Windows shell. Emacs will start in the current directory of the Windows shell.
@item
From the Windows @code{Run} dialog (normally reached by clicking the
@code{Start} button). Typing @kbd{runemacs @key{RET}} into the dialog
will start Emacs in the parent directory of the Windows equivalent of
your user's @code{HOME} directory, see @ref{Windows HOME}.
@item @item
@cindex invoking Emacs from Windows Explorer @cindex invoking Emacs from Windows Explorer
@pindex emacsclient.exe @pindex emacsclient.exe
@ -204,8 +224,8 @@ designates directory @file{\foo} on drive Z as an untranslated file
system. system.
Most often you would use @code{add-untranslated-filesystem} in your Most often you would use @code{add-untranslated-filesystem} in your
@file{.emacs} file, or in @file{site-start.el} so that all the users at @file{.emacs} or @file{init.el} init file, or in @file{site-start.el}
your site get the benefit of it. so that all the users at your site get the benefit of it.
@findex remove-untranslated-filesystem @findex remove-untranslated-filesystem
To countermand the effect of @code{add-untranslated-filesystem}, use To countermand the effect of @code{add-untranslated-filesystem}, use
@ -215,8 +235,8 @@ previously with @code{add-untranslated-filesystem}.
Designating a file system as untranslated does not affect character Designating a file system as untranslated does not affect character
set conversion, only end-of-line conversion. Essentially, it directs set conversion, only end-of-line conversion. Essentially, it directs
Emacs to create new files with the Unix-style convention of using Emacs to default to creating new files with the Unix-style convention
newline at the end of a line. @xref{Coding Systems}. of using newline at the end of a line. @xref{Coding Systems}.
@node Windows Files @node Windows Files
@section File Names on MS-Windows @section File Names on MS-Windows
@ -229,7 +249,9 @@ backslash, and also knows about drive letters in file names.
@cindex file-name completion, on MS-Windows @cindex file-name completion, on MS-Windows
On MS-DOS/MS-Windows, file names are case-insensitive, so Emacs by On MS-DOS/MS-Windows, file names are case-insensitive, so Emacs by
default ignores letter-case in file names during completion. default ignores letter-case in file names during completion. To this
end, the default value of @code{read-file-name-completion-ignore-case}
is non-@code{nil} on MS-DOS/MS-Windows. @xref{Completion Options}.
@vindex w32-get-true-file-attributes @vindex w32-get-true-file-attributes
The variable @code{w32-get-true-file-attributes} controls whether The variable @code{w32-get-true-file-attributes} controls whether
@ -311,9 +333,9 @@ it doesn't support all of them. Here's the list of the switches it
does support: @option{-A}, @option{-a}, @option{-B}, @option{-C}, does support: @option{-A}, @option{-a}, @option{-B}, @option{-C},
@option{-c}, @option{-G}, @option{-g}, @option{-h}, @option{-i}, @option{-n}, @option{-c}, @option{-G}, @option{-g}, @option{-h}, @option{-i}, @option{-n},
@option{-R}, @option{-r}, @option{-S}, @option{-s}, @option{-t}, @option{-U}, @option{-R}, @option{-r}, @option{-S}, @option{-s}, @option{-t}, @option{-U},
@option{-u}, and @option{-X}. The @option{-F} switch is partially @option{-u}, @option{v}, and @option{-X}. The @option{-F} switch is
supported (it appends the character that classifies the file, but does partially supported (it appends the character that classifies the
not prevent symlink following). file, but does not prevent symlink following).
@vindex ls-lisp-use-insert-directory-program @vindex ls-lisp-use-insert-directory-program
On MS-Windows and MS-DOS, @file{ls-lisp.el} is preloaded when Emacs On MS-Windows and MS-DOS, @file{ls-lisp.el} is preloaded when Emacs
@ -323,6 +345,26 @@ platforms. If you have a ported @code{ls}, setting
will revert to using an external program named by the variable will revert to using an external program named by the variable
@code{insert-directory-program}. @code{insert-directory-program}.
@cindex Dired sorting order, on MS-Windows/MS-DOS
The order in which @file{ls-lisp.el} sorts files depends on several
customizable options described below.
@vindex ls-lisp-use-string-collate
The default sorting order follows locale-specific rules derived from
your system locale. You can make the order locale-independent by
customizing @code{ls-lisp-use-string-collate} to a @code{nil} value.
@cindex Unicode Collation Algorithm (UCA), and @file{ls-lisp.el}
@vindex ls-lisp-UCA-like-collation
On GNU and Unix systems, when the locale's encoding is UTF-8, the
collation order follows the Unicode Collation Algorithm
(@acronym{UCA}). To have a similar effect on MS-Windows, the variable
@code{ls-lisp-UCA-like-collation} should have a non-@code{nil} value
(this is the default). The resulting sorting order ignores
punctuation, symbol characters, and whitespace characters, so
@file{.foobar}, @file{foobar} and @w{@file{foo bar}} will appear
together rather than far apart.
@vindex ls-lisp-ignore-case @vindex ls-lisp-ignore-case
By default, @file{ls-lisp.el} uses a case-sensitive sort order for By default, @file{ls-lisp.el} uses a case-sensitive sort order for
the directory listing it produces; this is so the listing looks the the directory listing it produces; this is so the listing looks the
@ -371,10 +413,10 @@ Emulate macOS@. Sets @code{ls-lisp-ignore-case} to @code{t}, and
@item MS-Windows @item MS-Windows
Emulate MS-Windows. Sets @code{ls-lisp-ignore-case} and Emulate MS-Windows. Sets @code{ls-lisp-ignore-case} and
@code{ls-lisp-dirs-first} to @code{t}, and @code{ls-lisp-verbosity} to @code{ls-lisp-dirs-first} to @code{t}, and @code{ls-lisp-verbosity} to
@code{(links)} on Windows NT/2K/XP/2K3 and to @code{nil} on Windows 9X@. @code{nil} on Windows 9X and to @code{t} on modern versions of
Note that the default emulation is @emph{not} @code{MS-Windows}, even Windows. Note that the default emulation is @emph{not}
on Windows, since many users of Emacs on those platforms prefer the @code{MS-Windows}, even on Windows, since many users of Emacs on those
@sc{gnu} defaults. platforms prefer the @sc{gnu} defaults.
@end table @end table
@noindent @noindent
@ -421,6 +463,8 @@ formats file time stamps according to what
@code{ls-lisp-format-time-list} specifies. The @samp{%}-sequences in @code{ls-lisp-format-time-list} specifies. The @samp{%}-sequences in
@code{ls-lisp-format-time-list} produce locale-dependent month and day @code{ls-lisp-format-time-list} produce locale-dependent month and day
names, which might cause misalignment of columns in Dired display. names, which might cause misalignment of columns in Dired display.
The default value of @code{ls-lisp-use-localized-time-format} is
@code{nil}.
@end ifnottex @end ifnottex
@node Windows HOME @node Windows HOME
@ -453,7 +497,8 @@ default @code{HOME} location, and will not look in the application
data directory, even if it exists. Note that only @file{.emacs} is 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 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 not. This use of @file{C:\.emacs} to define @code{HOME} is
deprecated. deprecated; Emacs will display a warning about its use during
startup.
Whatever the final place is, Emacs sets the internal value of the 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 @env{HOME} environment variable to point to it, and it will use that
@ -467,15 +512,15 @@ first line. Likewise, to visit your init file, type @kbd{C-x C-f
~/.emacs @key{RET}} (assuming the file's name is @file{.emacs}). ~/.emacs @key{RET}} (assuming the file's name is @file{.emacs}).
@cindex init file @file{.emacs} on MS-Windows @cindex init file @file{.emacs} on MS-Windows
The home directory is where your init file is stored. It can have Your init file can have any name mentioned in @ref{Init File}.
any name mentioned in @ref{Init File}.
@cindex @file{_emacs} init file, MS-Windows @cindex @file{_emacs} init file, MS-Windows
Because MS-DOS does not allow file names with leading dots, and Because MS-DOS does not allow file names with leading dots, and
older Windows systems made it hard to create files with such names, 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 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. such a file exists in the home directory and @file{.emacs} does not.
This name is considered obsolete. This name is considered obsolete, so Emacs will display a warning if
it is used.
@node Windows Keyboard @node Windows Keyboard
@section Keyboard Usage on MS-Windows @section Keyboard Usage on MS-Windows
@ -491,7 +536,9 @@ Emacs key bindings. (These Emacs key bindings were established years
before Microsoft was founded.) Examples of conflicts include before Microsoft was founded.) Examples of conflicts include
@kbd{C-c}, @kbd{C-x}, @kbd{C-z}, @kbd{C-a}, and @kbd{W-@key{SPC}}. @kbd{C-c}, @kbd{C-x}, @kbd{C-z}, @kbd{C-a}, and @kbd{W-@key{SPC}}.
You can redefine some of them with meanings more like the MS-Windows You can redefine some of them with meanings more like the MS-Windows
meanings by enabling CUA Mode (@pxref{CUA Bindings}). meanings by enabling CUA Mode (@pxref{CUA Bindings}). Another
optional feature which will make Emacs behave like other Windows
applications is Delete Selection mode (@pxref{Using Region}).
@iftex @iftex
@inforef{Windows Keyboard, , emacs}, for information about additional @inforef{Windows Keyboard, , emacs}, for information about additional
@ -690,16 +737,14 @@ is non-@code{nil}, the roles of these two buttons are reversed.
@cindex subprocesses on MS-Windows @cindex subprocesses on MS-Windows
@cindex DOS applications, running from Emacs @cindex DOS applications, running from Emacs
Emacs compiled as a native Windows application (as opposed to the DOS Emacs compiled as a native Windows application (as opposed to the
version) includes full support for asynchronous subprocesses. DOS version) includes full support for asynchronous subprocesses. In
In the Windows version, synchronous and asynchronous subprocesses work the Windows version, synchronous and asynchronous subprocesses work
fine on both fine on all versions of MS-Windows, as long as you run only 32-bit or
Windows 9X/ME and Windows NT/2K/XP/Vista/7/8/10 as long as you run 64-bit Windows applications. However, when you run a DOS application
only 32-bit or 64-bit Windows in a subprocess, you may encounter problems or be unable to run the
applications. However, when you run a DOS application in a subprocess, application at all; and if you run two DOS applications at the same
you may encounter problems or be unable to run the application at all; time in two subprocesses, you may have to reboot your system.
and if you run two DOS applications at the same time in two
subprocesses, you may have to reboot your system.
Since the standard command interpreter (and most command line utilities) Since the standard command interpreter (and most command line utilities)
on Windows 9X are DOS applications, these problems are significant when on Windows 9X are DOS applications, these problems are significant when
@ -724,13 +769,13 @@ first one finishes, even if either or both of them are asynchronous.
@cindex kill DOS application @cindex kill DOS application
If you can go to the first subprocess, and tell it to exit, the second If you can go to the first subprocess, and tell it to exit, the second
subprocess should continue normally. However, if the second subprocess subprocess should continue normally. However, if the second
is synchronous, Emacs itself will be hung until the first subprocess subprocess is synchronous, Emacs itself will be hung until the first
finishes. If it will not finish without user input, then you have no subprocess finishes. If it will not finish without user input, then
choice but to reboot if you are running on Windows 9X@. If you are you have no choice but to reboot if you are running on Windows 9X@.
running on Windows NT/2K/XP, you can use a process viewer application to kill If you are running on Windows NT and later, you can use a process
the appropriate instance of NTVDM instead (this will terminate both DOS viewer application to kill the appropriate instance of NTVDM instead
subprocesses). (this will terminate both DOS subprocesses).
If you have to reboot Windows 9X in this situation, do not use the If you have to reboot Windows 9X in this situation, do not use the
@code{Shutdown} command on the @code{Start} menu; that usually hangs the @code{Shutdown} command on the @code{Start} menu; that usually hangs the