diff options
Diffstat (limited to 'doc/emacs')
-rw-r--r-- | doc/emacs/basic.texi | 2 | ||||
-rw-r--r-- | doc/emacs/building.texi | 43 | ||||
-rw-r--r-- | doc/emacs/calendar.texi | 4 | ||||
-rw-r--r-- | doc/emacs/cmdargs.texi | 15 | ||||
-rw-r--r-- | doc/emacs/custom.texi | 5 | ||||
-rw-r--r-- | doc/emacs/dired.texi | 31 | ||||
-rw-r--r-- | doc/emacs/display.texi | 29 | ||||
-rw-r--r-- | doc/emacs/emacs.texi | 17 | ||||
-rw-r--r-- | doc/emacs/files.texi | 7 | ||||
-rw-r--r-- | doc/emacs/fixit.texi | 26 | ||||
-rw-r--r-- | doc/emacs/frames.texi | 24 | ||||
-rw-r--r-- | doc/emacs/help.texi | 15 | ||||
-rw-r--r-- | doc/emacs/killing.texi | 4 | ||||
-rw-r--r-- | doc/emacs/m-x.texi | 4 | ||||
-rw-r--r-- | doc/emacs/maintaining.texi | 172 | ||||
-rw-r--r-- | doc/emacs/misc.texi | 38 | ||||
-rw-r--r-- | doc/emacs/msdos.texi | 15 | ||||
-rw-r--r-- | doc/emacs/mule.texi | 2 | ||||
-rw-r--r-- | doc/emacs/package.texi | 69 | ||||
-rw-r--r-- | doc/emacs/programs.texi | 26 | ||||
-rw-r--r-- | doc/emacs/windows.texi | 10 |
21 files changed, 470 insertions, 88 deletions
diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi index abb385f53d5..0b685fafe9c 100644 --- a/doc/emacs/basic.texi +++ b/doc/emacs/basic.texi @@ -115,7 +115,7 @@ just like digits. Case is ignored. starting with @kbd{C-x 8}. For example, @kbd{C-x 8 [} inserts @t{‘} which is Unicode code-point U+2018 @sc{left single quotation mark}, sometimes called a left single ``curved quote'' or ``curly quote''. -Similarly, @kbd{C-x 8 ]}, @kbd{C-x 8 @{} and @kbd{C-x 8 @}} insert the +Similarly, @w{@kbd{C-x 8 ]}}, @kbd{C-x 8 @{} and @kbd{C-x 8 @}} insert the curved quotes @t{’}, @t{“} and @t{”}, respectively. Also, a working @key{Alt} key acts like @kbd{C-x 8} (unless followed by @key{RET}); e.g., @kbd{A-[} acts like @kbd{C-x 8 [} and inserts @t{‘}. To see diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi index fa60ce26621..7074bd45d71 100644 --- a/doc/emacs/building.texi +++ b/doc/emacs/building.texi @@ -975,9 +975,27 @@ displays the following frame layout: @end group @end smallexample +@findex gdb-save-window-configuration +@findex gdb-load-window-configuration +@vindex gdb-default-window-configuration-file +@vindex gdb-window-configuration-directory + You can customize the window layout based on the one above and save +that layout to a file using @code{gdb-save-window-configuration}. +Then you can later load this layout back using +@code{gdb-load-window-configuration}. (Internally, Emacs uses the +term window configuration instead of window layout.) You can set your +custom layout as the default one used by @code{gdb-many-windows} by +customizing @code{gdb-default-window-configuration-file}. If it is +not an absolute file name, GDB looks under +@code{gdb-window-configuration-directory} for the file. +@code{gdb-window-configuration-directory} defaults to +@code{user-emacs-directory} (@pxref{Find Init}). + + @findex gdb-restore-windows @findex gdb-many-windows - If you ever change the window layout, you can restore the many-windows +@vindex gdb-restore-window-configuration-after-quit + If you ever change the window layout, you can restore the default layout by typing @kbd{M-x gdb-restore-windows}. To toggle between the many windows layout and a simple layout with just the GUD interaction buffer and a source file, type @kbd{M-x gdb-many-windows}. @@ -988,7 +1006,13 @@ interaction buffer and a source file, type @kbd{M-x gdb-many-windows}. of windows on your original frame will not be affected. A separate frame for GDB sessions can come in especially handy if you work on a text-mode terminal, where the screen estate for windows could be at a -premium. +premium. If you choose to start GDB in the same frame, consider +setting @code{gdb-restore-window-configuration-after-quit} to a +non-@code{nil} value. Your original layout will then be restored +after GDB quits. Use @code{t} to always restore; use +@code{if-gdb-many-windows} to restore only when +@code{gdb-many-windows} is non-@code{nil}; use @code{if-gdb-show-main} +to restore only when @code{gdb-show-main} is non-@code{nil}. You may also specify additional GDB-related buffers to display, either in the same frame or a different one. Select the buffers you @@ -998,6 +1022,14 @@ is the relevant buffer type, such as @samp{breakpoints}. You can do the same with the menu bar, with the @samp{GDB-Windows} and @samp{GDB-Frames} sub-menus of the @samp{GUD} menu. +@vindex gdb-max-source-window-count +@vindex gdb-display-source-buffer-action +By default, GDB uses at most one window to display the source file. +You can make it use more windows by customizing +@code{gdb-max-source-window-count}. You can also customize +@code{gdb-display-source-buffer-action} to control how GDB displays +source files. + When you finish debugging, kill the GUD interaction buffer with @kbd{C-x k}, which will also kill all the buffers associated with the session. However you need not do this if, after editing and @@ -1536,13 +1568,6 @@ Automatic loading also occurs when completing names for prefix being completed. To disable this feature, change the variable @code{help-enable-completion-autoload} to @code{nil}. -@vindex load-dangerous-libraries -@cindex Lisp files byte-compiled by XEmacs - By default, Emacs refuses to load compiled Lisp files which were -compiled with XEmacs, a modified version of Emacs---they can cause -Emacs to crash. Set the variable @code{load-dangerous-libraries} to -@code{t} if you want to try loading them. - Once you put your library in a directory where Emacs can find and load it, you may wish to make it available at startup. This is useful when the library defines features that should be available diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi index fe51ad35d77..e5ee7e94bcf 100644 --- a/doc/emacs/calendar.texi +++ b/doc/emacs/calendar.texi @@ -625,6 +625,10 @@ your time zone. Emacs displays the times of sunrise and sunset @emph{corrected for daylight saving time}. @xref{Daylight Saving}, for how daylight saving time is determined. +@vindex calendar-time-zone-style + If you want to display numerical time zones (like @samp{"+0100"}) +instead of symbolic ones (like @samp{"CET"}), set this to @code{numeric}. + As a user, you might find it convenient to set the calendar location variables for your usual physical location in your @file{.emacs} file. If you are a system administrator, you may want to set these variables diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi index 850a802753d..3dd1fe9a308 100644 --- a/doc/emacs/cmdargs.texi +++ b/doc/emacs/cmdargs.texi @@ -495,7 +495,14 @@ variables to be set, but it uses their values if they are set. @item CDPATH @vindex CDPATH@r{, environment variable} Used by the @code{cd} command to search for the directory you specify, -when you specify a relative directory, +when you specify a relative directory. +@item COLORTERM +@vindex COLORTERM@r{, environment variable} +If this variable is set to the value @samp{truecolor}, it tells Emacs +to use 24-bit true color on text-mode displays even if the terminfo +database is not installed. Emacs will use built-in commands to +request true color by RGB values instead of the missing terminfo +information. @item DBUS_SESSION_BUS_ADDRESS @vindex DBUS_SESSION_BUS_ADDRESS@r{, environment variable} Used by D-Bus when Emacs is compiled with it. Usually, there is no @@ -565,12 +572,6 @@ is found there. @item HOSTNAME @vindex HOSTNAME@r{, environment variable} The name of the machine that Emacs is running on. -@c complete.el is obsolete since 24.1. -@ignore -@item INCPATH -A colon-separated list of directories. Used by the @code{complete} package -to search for files. -@end ignore @item INFOPATH @vindex INFOPATH@r{, environment variable} A colon-separated list of directories in which to search for Info files. diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 00c8ee4f98b..a512fd14c80 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -1630,6 +1630,10 @@ characters are actually defined by this map. @item @vindex mode-specific-map @code{mode-specific-map} is for characters that follow @kbd{C-c}. +@item +@vindex project-prefix-map +@code{project-prefix-map} is for characters that follow @kbd{C-x p}, +used for project-related commands (@pxref{Projects}). @end itemize @node Local Keymaps @@ -2601,6 +2605,7 @@ the function or facility is available, like this: (if (fboundp 'blink-cursor-mode) (blink-cursor-mode 0)) +@c FIXME: Find better example since `set-coding-priority' is removed. (if (boundp 'coding-category-utf-8) (set-coding-priority '(coding-category-utf-8))) @end example diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi index 4ff1dc1bd94..19aaca962da 100644 --- a/doc/emacs/dired.texi +++ b/doc/emacs/dired.texi @@ -79,6 +79,29 @@ The former lists all the files with extension @samp{.el} in directory @samp{foo}. The latter lists the files with extension @samp{.el} in all the subdirectories of @samp{foo}. +@cindex globstar, in Dired +On Posix systems, when the system shell supports @dfn{globstar}, a +recursive globbing feature, and that support is enabled, you can use +recursive globbing in Dired: + +@example +C-x d ~/foo/**/*.el @key{RET} +@end example + +This command produces a directory listing with all the files with +extension @samp{.el}, descending recursively in all the subdirectories +of @samp{foo}. Note that there are small differences in the +implementation of globstar between different shells. Check your shell +manual to know the expected behavior. + +@vindex dired-maybe-use-globstar +@vindex dired-enable-globstar-in-shell +If the shell supports globstar, but that support is disabled by +default, you can still let Dired use this feature by customizing +@code{dired-maybe-use-globstar} to a non-@code{nil} value; then Dired +will enable globstar for those shells for which it knows how (see +@code{dired-enable-globstar-in-shell} for the list of those shells). + The usual history and completion commands can be used in the minibuffer; in particular, @kbd{M-n} puts the name of the visited file (if any) in the minibuffer (@pxref{Minibuffer History}). @@ -694,6 +717,14 @@ The variable @code{dired-recursive-copies} controls whether to copy directories recursively (like @samp{cp -r}). The default is @code{top}, which means to ask before recursively copying a directory. +@vindex dired-copy-dereference +@cindex follow symbolic links +@cindex dereference symbolic links +The variable @code{dired-copy-dereference} controls whether to copy +symbolic links as links or after dereferencing (like @samp{cp -L}). +The default is @code{nil}, which means that the symbolic links are +copied by creating new ones. + @item D @findex dired-do-delete @kindex D @r{(Dired)} diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index a4040d986e1..e7b8745a044 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -1334,6 +1334,10 @@ customize the variable @code{whitespace-line-column}. @item newline Highlight newlines. +@item missing-newline-at-eof +Highlight the final character if the buffer doesn't end with a newline +character. + @item empty Highlight empty lines at the beginning and/or end of the buffer. @@ -1667,6 +1671,8 @@ Customization}). (The other attributes of this face have no effect; the text shown under the cursor is drawn using the frame's background color.) To change its shape, customize the buffer-local variable @code{cursor-type}; possible values are @code{box} (the default), +@code{(box . @var{size})} (box cursor becoming a hollow box under +masked images larger than @var{size} pixels in either dimension), @code{hollow} (a hollow box), @code{bar} (a vertical bar), @code{(bar . @var{n})} (a vertical bar @var{n} pixels wide), @code{hbar} (a horizontal bar), @code{(hbar . @var{n})} (a horizontal bar @var{n} @@ -1802,6 +1808,29 @@ logical lines, so having a fringe indicator for each wrapped line would be visually distracting. You can change this by customizing the variable @code{visual-line-fringe-indicators}. +@vindex word-wrap-by-category +@findex modify-category-entry +@findex char-category-set +@findex category-set-mnemonics + By default, Emacs only breaks lines after whitespace characters. +That produces incorrect results when CJK and Latin text are mixed +together (because CJK characters don't use whitespace to separate +words). You can customize the option @code{word-wrap-by-category} to +allow Emacs to break lines after any character with ``|'' category +(@pxref{Categories,,, elisp, the Emacs Lisp Reference Manual}), which +provides better support for CJK characters. Also, if this variable is +set using Customize, Emacs automatically loads @file{kinsoku.el}. +When @file{kinsoku.el} is loaded, Emacs respects kinsoku rules when +breaking lines. That means characters with the ``>'' category don't +appear at the beginning of a line (e.g., U+FF0C FULLWIDTH COMMA), and +characters with the ``<'' category don't appear at the end of a line +(e.g., U+300A LEFT DOUBLE ANGLE BRACKET). You can view the category +set of a character using the commands @code{char-category-set} and +@code{category-set-mnemonics}, or by typing @kbd{C-u C-x =} with point +on the character and looking at the ``category'' section in the +report. You can add categories to a character using the command +@code{modify-category-entry}. + @node Display Custom @section Customization of Display diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 6b82aeb8234..6aed7bd92a5 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -857,6 +857,12 @@ Customizing VC * CVS Options:: Options for CVS. @end ifnottex +Projects + +* Project File Commands:: Commands for handling project files. +* Project Buffer Commands:: Commands for handling project buffers. +* Switching Projects:: Switching between projects. + Change Logs * Change Log Commands:: Commands for editing change log files. @@ -1279,11 +1285,12 @@ programmer, but if you are not interested in customizing, you can ignore the customization hints. This is primarily a reference manual, but can also be used as a -primer. If you are new to Emacs, we recommend you start with -the integrated, learn-by-doing tutorial, before reading the manual. To -run the tutorial, start Emacs and type @kbd{C-h t}. The tutorial -describes commands, tells you when to try them, and explains the -results. The tutorial is available in several languages. +primer. If you are new to Emacs, we recommend you start with the +integrated, learn-by-doing tutorial, before reading the manual. To +run the tutorial, start Emacs and type @kbd{C-h t} (which is ``control +h and then t''). The tutorial describes commands, tells you when to +try them, and explains the results. The tutorial is available in +several languages. On first reading, just skim chapters 1 and 2, which describe the notational conventions of the manual and the general appearance of the diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index 5998326ffef..2fa1ecc003d 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi @@ -2149,7 +2149,12 @@ To reset all transformations to the initial state, use @findex image-previous-file You can press @kbd{n} (@code{image-next-file}) and @kbd{p} (@code{image-previous-file}) to visit the next image file and the -previous image file in the same directory, respectively. +previous image file in the same directory, respectively. These +commands will consult the ``parent'' dired buffer to determine what +the next/previous image file is. These commands also work when +opening a file from archive files (like zip or tar files), and will +then instead consult the archive mode buffer. If neither an archive +nor a dired ``parent'' buffer can be found, a dired buffer is opened. @findex image-mode-mark-file @findex image-mode-unmark-file diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi index dc643e19a4b..db77ae4ec26 100644 --- a/doc/emacs/fixit.texi +++ b/doc/emacs/fixit.texi @@ -66,6 +66,7 @@ changes have already been undone, the undo command signals an error. @cindex redo @findex undo-only +@findex undo-redo Any command other than an undo command breaks the sequence of undo commands. Starting from that moment, the entire sequence of undo commands that you have just performed are themselves placed into the @@ -76,7 +77,9 @@ undo commands. Alternatively, if you want to resume undoing, without redoing previous undo commands, use @kbd{M-x undo-only}. This is like -@code{undo}, but will not redo changes you have just undone. +@code{undo}, but will not redo changes you have just undone. To +complement it, @kbd{M-x undo-redo} will undo previous undo commands +(and will not record itself as an undoable command). If you notice that a buffer has been modified accidentally, the easiest way to recover is to type @kbd{C-/} repeatedly until the stars @@ -274,6 +277,10 @@ Check and correct spelling in the region. @item M-x ispell-message Check and correct spelling in a draft mail message, excluding cited material. +@item M-x ispell-comments-and-strings +Check and correct spelling of comments and strings in the buffer or region. +@item M-x ispell-comment-or-string-at-point +Check the comment or string at point. @item M-x ispell-change-dictionary @key{RET} @var{dict} @key{RET} Restart the spell-checker process, using @var{dict} as the dictionary. @item M-x ispell-kill-ispell @@ -301,6 +308,8 @@ region; @pxref{Disabled Transient Mark}.) @findex ispell @findex ispell-buffer @findex ispell-region +@findex ispell-comments-and-strings +@findex ispell-comment-or-string-at-point @cindex spell-checking the active region Similarly, the command @kbd{M-x ispell} performs spell-checking in the region if one is active, or in the entire buffer otherwise. The @@ -309,7 +318,10 @@ explicitly perform spell-checking on the entire buffer or the region respectively. To check spelling in an email message you are writing, use @w{@kbd{M-x ispell-message}}; that command checks the whole buffer, except for material that is indented or appears to be cited from other -messages. @xref{Sending Mail}. +messages. @xref{Sending Mail}. When dealing with source code, you +can use @kbd{M-x ispell-comments-and-strings} or @w{@kbd{M-x +ispell-comment-or-string-at-point}} to check only comments or string +literals. When one of these commands encounters what appears to be an incorrect word, it asks you what to do. It usually displays a list of @@ -442,12 +454,14 @@ use @code{flyspell-region} or @code{flyspell-buffer} for that. @findex flyspell-correct-word-before-point When Flyspell mode highlights a word as misspelled, you can click on it with @kbd{mouse-2} (@code{flyspell-correct-word}) to display a menu -of possible corrections and actions. In addition, @kbd{C-.} or +of possible corrections and actions. If you want this menu on +@kbd{mouse-3} instead, customize the variable +@code{flyspell-use-mouse-3-for-menu}. In addition, @kbd{C-.} or @kbd{@key{ESC}-@key{TAB}} (@code{flyspell-auto-correct-word}) will propose various successive corrections for the word at point, and -@w{@kbd{C-c $}} (@code{flyspell-correct-word-before-point}) will pop up a -menu of possible corrections. Of course, you can always correct the -misspelled word by editing it manually in any way you like. +@w{@kbd{C-c $}} (@code{flyspell-correct-word-before-point}) will pop +up a menu of possible corrections. Of course, you can always correct +the misspelled word by editing it manually in any way you like. @findex flyspell-prog-mode Flyspell Prog mode works just like ordinary Flyspell mode, except diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi index e0eabe38d06..b74887612b9 100644 --- a/doc/emacs/frames.texi +++ b/doc/emacs/frames.texi @@ -366,9 +366,13 @@ instead of running the @code{mouse-save-then-kill} command, rebind @kbd{mouse-3} by adding the following line to your init file (@pxref{Init Rebinding}): -@c FIXME: `mouse-popup-menubar-stuff' is obsolete since 23.1. @smallexample -(global-set-key [mouse-3] 'mouse-popup-menubar-stuff) +(global-set-key [mouse-3] + '(menu-item "Menu Bar" ignore + :filter (lambda (_) + (if (zerop (or (frame-parameter nil 'menu-bar-lines) 0)) + (mouse-menu-bar-map) + (mouse-menu-major-mode-map))))) @end smallexample @node Mode Line Mouse @@ -439,29 +443,40 @@ buffer to select: @kindex C-x 5 2 @findex make-frame-command Create a new frame (@code{make-frame-command}). + @item C-x 5 b @var{bufname} @key{RET} Select buffer @var{bufname} in another frame. This runs @code{switch-to-buffer-other-frame}. + @item C-x 5 f @var{filename} @key{RET} Visit file @var{filename} and select its buffer in another frame. This runs @code{find-file-other-frame}. @xref{Visiting}. + @item C-x 5 d @var{directory} @key{RET} Select a Dired buffer for directory @var{directory} in another frame. This runs @code{dired-other-frame}. @xref{Dired}. + @item C-x 5 m Start composing a mail message in another frame. This runs @code{compose-mail-other-frame}. It is the other-frame variant of @kbd{C-x m}. @xref{Sending Mail}. + @item C-x 5 . Find the definition of an identifier in another frame. This runs @code{xref-find-definitions-other-frame}, the multiple-frame variant of @kbd{M-.}. @xref{Xref}. + @item C-x 5 r @var{filename} @key{RET} @kindex C-x 5 r @findex find-file-read-only-other-frame Visit file @var{filename} read-only, and select its buffer in another frame. This runs @code{find-file-read-only-other-frame}. @xref{Visiting}. + +@item C-x 5 5 +A more general prefix command affects the buffer displayed by the next +command invoked immediately after this prefix command. It requests +the buffer of the next command to be displayed in another frame. @end table You can control the appearance and behavior of the newly-created @@ -1316,6 +1331,11 @@ runs @code{find-file-other-tab}. @xref{Visiting}. @item C-x t d @var{directory} @key{RET} Select a Dired buffer for directory @var{directory} in another tab. This runs @code{dired-other-tab}. @xref{Dired}. + +@item C-x t t +A more general prefix command affects the buffer displayed by the next +command invoked immediately after this prefix command. It requests +the buffer of the next command to be displayed in another tab. @end table @vindex tab-bar-new-tab-choice diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index 06ddc11158b..06ad5a583d2 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi @@ -220,6 +220,16 @@ documentation string of the command it runs. command is not on any key, that means you must use @kbd{M-x} to run it. @kbd{C-h w} runs the command @code{where-is}. +@findex button-describe +@findex widget-describe + Some modes in Emacs use various buttons (@pxref{Buttons,,,elisp, The +Emacs Lisp Reference Manual}) and widgets +(@pxref{Introduction,,,widget, Emacs Widgets}) that can be clicked to +perform some action. To find out what function is ultimately invoked +by these buttons, Emacs provides the @code{button-describe} and +@code{widget-describe} commands, that should be run with point over +the button. + @node Name Help @section Help by Command or Variable Name @@ -607,6 +617,11 @@ is @key{ESC}, because @kbd{@key{ESC} C-h} is actually @kbd{C-M-h}, which marks a defun. However, @w{@kbd{@key{ESC} @key{F1}}} and @w{@kbd{@key{ESC} ?}} work fine.) +@findex describe-keymap +Finally, @kbd{M-x describe-keymap} prompts for the name of a keymap, +with completion, and displays a listing of all key bindings in that +keymap. + @node Help Files @section Help Files diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi index 6b1f35e6158..bd7dbb6f515 100644 --- a/doc/emacs/killing.texi +++ b/doc/emacs/killing.texi @@ -577,7 +577,9 @@ regions to the primary selection entirely. To insert the primary selection into an Emacs buffer, click @kbd{mouse-2} (@code{mouse-yank-primary}) where you want to insert it. -@xref{Mouse Commands}. +@xref{Mouse Commands}. You can also use the normal Emacs yank command +(@kbd{C-y}) to insert this text if @code{select-enable-primary} is set +(@pxref{Clipboard}). @cindex MS-Windows, and primary selection MS-Windows provides no primary selection, but Emacs emulates it diff --git a/doc/emacs/m-x.texi b/doc/emacs/m-x.texi index fc2d2d8c84d..b18c334acf4 100644 --- a/doc/emacs/m-x.texi +++ b/doc/emacs/m-x.texi @@ -72,6 +72,10 @@ number, in which case Emacs will show the binding for that many seconds before removing it from display. The default behavior is to display the binding for 2 seconds. +Additionally, when @code{suggest-key-bindings} is non-@code{nil}, the +completion list of @kbd{M-x} shows equivalent key bindings for all +commands that have them. + @vindex extended-command-suggest-shorter Commands that don't have key bindings, can still be invoked after typing less than their full name at the @samp{M-x} prompt. Emacs diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index ebcdddfcae3..a9b0da5aff6 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -1656,8 +1656,53 @@ support additional types of projects. the project back-end. For example, the VC back-end doesn't consider ``ignored'' files (@pxref{VC Ignore}) to be part of the project. +@menu +* Project File Commands:: Commands for handling project files. +* Project Buffer Commands:: Commands for handling project buffers. +* Switching Projects:: Switching between projects. +@end menu + +@node Project File Commands +@subsection Project Commands That Operate on Files + +@table @kbd +@item C-x p f +Visit a file that belongs to the current project +(@code{project-find-file}). +@item C-x p g +Find matches for a regexp in all files that belong to the current +project (@code{project-find-regexp}). +@item M-x project-search +Interactively search for regexp matches in all files that belong to +the current project. +@item C-x p r +Perform query-replace for a regexp in all files that belong to the +current project (@code{project-query-replace-regexp}). +@item C-x p d +Run Dired in the current project's root directory +(@code{project-dired}). +@item C-x p v +Run @code{vc-dir} in the current project's root directory +(@code{project-vc-dir}). +@item C-x p s +Start an inferior shell in the current project's root directory +(@code{project-shell}). +@item C-x p e +Start Eshell in the current project's root directory +(@code{project-eshell}). +@item C-x p c +Run compilation in the current project's root directory +(@code{project-compile}). +@item C-x p ! +Run shell command in the current project's root directory +(@code{project-shell-command}). +@item C-x p & +Run shell command asynchronously in the current project's root +directory (@code{project-async-shell-command}). +@end table + Emacs provides commands for handling project files conveniently. -This section describes these commands. +This subsection describes these commands. @cindex current project All of the commands described here share the notion of the @@ -1668,25 +1713,26 @@ doesn't seem to belong to a recognizable project, these commands prompt you for the project directory. @findex project-find-file - The command @code{project-find-file} is a convenient way of visiting -files (@pxref{Visiting}) that belong to the current project. Unlike -@kbd{C-x C-f}, this command doesn't require to type the full file name -of the file to visit, you can type only the file's base name (i.e., -omit the leading directories). In addition, the completion candidates -considered by the command include only the files belonging to the -current project, and nothing else. If there's a file name at point, -this command offers that file as the default to visit. + The command @kbd{C-x p f} (@code{project-find-file}) is a convenient +way of visiting files (@pxref{Visiting}) that belong to the current +project. Unlike @kbd{C-x C-f}, this command doesn't require to type +the full file name of the file to visit, you can type only the file's +base name (i.e., omit the leading directories). In addition, the +completion candidates considered by the command include only the files +belonging to the current project, and nothing else. If there's a file +name at point, this command offers that file as the default to visit. @findex project-find-regexp - The command @code{project-find-regexp} is similar to @code{rgrep} -(@pxref{Grep Searching}), but it searches only the files that belong -to the current project. The command prompts for the regular -expression to search, and pops up an Xref mode buffer with the search -results, where you can select a match using the Xref mode commands -(@pxref{Xref Commands}). When invoked with a prefix argument, this -command additionally prompts for the base directory from which to -start the search; this allows, for example, to limit the search only -to project files under a certain subdirectory of the project root. + The command @kbd{C-x p g} (@code{project-find-regexp}) is similar to +@code{rgrep} (@pxref{Grep Searching}), but it searches only the files +that belong to the current project. The command prompts for the +regular expression to search, and pops up an Xref mode buffer with the +search results, where you can select a match using the Xref mode +commands (@pxref{Xref Commands}). When invoked with a prefix +argument, this command additionally prompts for the base directory +from which to start the search; this allows, for example, to limit the +search only to project files under a certain subdirectory of the +project root. @findex project-search @kbd{M-x project-search} is an interactive variant of @@ -1698,13 +1744,101 @@ matched file. To find the rest of the matches, type @w{@kbd{M-x fileloop-continue @key{RET}}}. @findex project-query-replace-regexp - @kbd{M-x project-query-replace-regexp} is similar to + @kbd{C-x p r} (@code{project-query-replace-regexp}) is similar to @code{project-search}, but it prompts you for whether to replace each match it finds, like @code{query-replace} does (@pxref{Query Replace}), and continues to the next match after you respond. If your response causes Emacs to exit the query-replace loop, you can later continue with @w{@kbd{M-x fileloop-continue @key{RET}}}. +@findex project-dired + The command @kbd{C-x p d} (@code{project-dired}) opens a Dired +buffer (@pxref{Dired}) listing the files in the current project's root +directory. + +@findex project-vc-dir + The command @kbd{C-x p v} (@code{project-vc-dir}) opens a VC +Directory buffer (@pxref{VC Directory Mode}) listing the version +control statuses of the files in a directory tree under the current +project's root directory. + +@findex project-shell + The command @kbd{C-x p s} (@code{project-shell}) starts a shell +session (@pxref{Shell}) in a new buffer with the current project's +root as the working directory. + +@findex project-eshell + The command @kbd{C-x p e} (@code{project-eshell}) starts an Eshell +session in a new buffer with the current project's root as the working +directory. @xref{Top,Eshell,Eshell, eshell, Eshell: The Emacs Shell}. + +@findex project-compile + The command @kbd{C-x p c} (@code{project-compile}) runs compilation +(@pxref{Compilation}) in the current project's root directory. + +@findex project-shell-command + The command @kbd{C-x p !} (@code{project-shell-command}) runs +@code{shell-command} in the current project's root directory. + +@findex project-async-shell-command + The command @kbd{C-x p &} (@code{project-async-shell-command}) runs +@code{async-shell-command} in the current project's root directory. + +@node Project Buffer Commands +@subsection Project Commands That Operate on Buffers + +@table @kbd +@item C-x p b +Switch to another buffer belonging to the current project +(@code{project-switch-to-buffer}). +@item C-x p k +Kill all live buffers that belong to the current project +(@code{project-kill-buffers}). +@end table + +@findex project-switch-to-buffer + Working on a project could potentially involve having many buffers +visiting files that belong to the project, and also buffers that +belong to the project, but don't visit any files (like the +@file{*compilation*} buffer created by @code{project-compile}). The +command @kbd{C-x p b} (@code{project-switch-to-buffer}) helps you +switch between buffers that belong to the current project by prompting +for a buffer to switch and considering only the current project's +buffers as candidates for completion. + +@findex project-kill-buffers +@vindex project-kill-buffer-conditions + When you finish working on the project, you may wish to kill all the +buffers that belong to the project, to keep your Emacs session +smaller. The command @kbd{C-x p k} (@code{project-kill-buffers}) +accomplishes that: it kills all the buffers that belong to the current +project that satisfy any of @code{project-kill-buffer-conditions}. + +@node Switching Projects +@subsection Switching Projects + +@table @kbd +@item C-x p p +Run an Emacs command for another project (@code{project-switch-project}). +@end table + +@findex project-switch-project +@vindex project-switch-commands + Commands that operate on project files (@pxref{Project File +Commands}) will conveniently prompt you for a project directory when +no project is current. When you are inside some project, but you want +to operate on a different project, use the @kbd{C-x p p} command +(@code{project-switch-project}). This command prompts you to choose a +directory among known project roots, and then displays the menu of +available commands to operate on the project you choose. The variable +@code{project-switch-commands} controls which commands are available +in the menu, and which key invokes each command. + +@vindex project-list-file + The variable @code{project-list-file} names the file in which Emacs +records the list of known projects. It defaults to the file +@file{projects} in @code{user-emacs-directory} (@pxref{Find Init}). + @node Change Log @section Change Logs diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index 2f02c702512..c8b21e701c7 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -245,13 +245,13 @@ Do an incremental search on the selected article buffer (@code{gnus-summary-isearch-article}), as if you switched to the buffer and typed @kbd{C-s} (@pxref{Incremental Search}). -@kindex M-s @r{(Gnus Summary mode)} +@kindex M-s M-s @r{(Gnus Summary mode)} @findex gnus-summary-search-article-forward @item M-s @var{regexp} @key{RET} Search forward for articles containing a match for @var{regexp} (@code{gnus-summary-search-article-forward}). -@kindex M-r @r{(Gnus Summary mode)} +@kindex M-s M-r @r{(Gnus Summary mode)} @findex gnus-summary-search-article-backward @item M-r @var{regexp} @key{RET} Search back for articles containing a match for @var{regexp} @@ -724,12 +724,13 @@ See the Eshell Info manual, which is distributed with Emacs. @kindex M-! @findex shell-command +@vindex shell-command-buffer-name @kbd{M-!} (@code{shell-command}) reads a line of text using the minibuffer and executes it as a shell command, in a subshell made just for that command. Standard input for the command comes from the null device. If the shell command produces any output, the output appears -either in the echo area (if it is short), or in an Emacs buffer named -@file{*Shell Command Output*}, displayed in another window (if the +either in the echo area (if it is short), or in the @samp{"*Shell +Command Output*"} (@code{shell-command-buffer-name}) buffer (if the output is long). The variables @code{resize-mini-windows} and @code{max-mini-window-height} (@pxref{Minibuffer Edit}) control when Emacs should consider the output to be too long for the echo area. @@ -758,15 +759,17 @@ which is impossible to ignore. @kindex M-& @findex async-shell-command +@vindex shell-command-buffer-name-async A shell command that ends in @samp{&} is executed @dfn{asynchronously}, and you can continue to use Emacs as it runs. You can also type @kbd{M-&} (@code{async-shell-command}) to execute a shell command asynchronously; this is exactly like calling @kbd{M-!} with a trailing @samp{&}, except that you do not need the @samp{&}. -The default output buffer for asynchronous shell commands is named -@samp{*Async Shell Command*}. Emacs inserts the output into this -buffer as it comes in, whether or not the buffer is visible in a -window. +The output from asynchronous shell commands, by default, goes into the +@samp{"*Async Shell Command*"} buffer +(@code{shell-command-buffer-name-async}). Emacs inserts the output +into this buffer as it comes in, whether or not the buffer is visible +in a window. @vindex async-shell-command-buffer If you want to run more than one asynchronous shell command at the @@ -804,7 +807,7 @@ old region and replaces it with the output from the shell command. see what keys are in the buffer. If the buffer contains a GnuPG key, type @kbd{C-x h M-| gpg @key{RET}} to feed the entire buffer contents to @command{gpg}. This will output the list of keys to the -@file{*Shell Command Output*} buffer. +buffer whose name is the value of @code{shell-command-buffer-name}. @vindex shell-file-name The above commands use the shell specified by the variable @@ -2920,9 +2923,17 @@ you might like to bind to keys, such as @code{browse-url-at-point} and You can customize Browse-URL's behavior via various options in the @code{browse-url} Customize group. In particular, the option @code{browse-url-mailto-function} lets you define how to follow -@samp{mailto:} URLs, while @code{browse-url-browser-function} lets you -define how to follow other types of URLs. For more information, view -the package commentary by typing @kbd{C-h P browse-url @key{RET}}. +@samp{mailto:} URLs, while @code{browse-url-browser-function} +specifies your default browser. + +@vindex browse-url-handlers + You can define that certain URLs are browsed with other functions by +customizing @code{browse-url-handlers}, an alist of regular +expressions or predicates paired with functions to browse matching +URLs. + +For more information, view the package commentary by typing @kbd{C-h P +browse-url @key{RET}}. @node Goto Address mode @subsection Activating URLs @@ -2934,6 +2945,9 @@ the package commentary by typing @kbd{C-h P browse-url @key{RET}}. @table @kbd @item M-x goto-address-mode Activate URLs and e-mail addresses in the current buffer. + +@item M-x global-goto-address-mode +Activate @code{goto-address-mode} in all buffers. @end table @kindex C-c RET @r{(Goto Address mode)} diff --git a/doc/emacs/msdos.texi b/doc/emacs/msdos.texi index 3275fded565..48492ab2f22 100644 --- a/doc/emacs/msdos.texi +++ b/doc/emacs/msdos.texi @@ -712,6 +712,21 @@ is @code{t}, which means these keys produce @code{AltGr}; setting it to @code{nil} causes @key{AltGr} or the equivalent key combination to be interpreted as the combination of @key{Ctrl} and @key{Meta} modifiers. + +@cindex IME, MS-Windows +@findex w32-set-ime-open-status + Some versions of MS-Windows, typically East Asian localized Windows, +enable the Input Method Manager (@acronym{IMM}) that allows +applications to communicate with the Input Method Editor +(@acronym{IME}), the native Windows input method service. Emacs uses +the @acronym{IME} when available to allow users to input East Asian +non-@acronym{ASCII} characters, similarly to Emacs's built-in input +methods (@pxref{Input Methods}). However, in some situations the +@acronym{IME} can get in the way if it interprets simple +@acronym{ASCII} keys you input as part of a key sequence that +designates a non-@acronym{ASCII} character. The @acronym{IME} can be +temporarily turned off and then on again by using the +@code{w32-set-ime-open-status} function. @end ifnottex @node Windows Mouse diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index 0f07d286cda..6eff0ca0d22 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -202,7 +202,7 @@ terminal, the code(s) sent to the terminal. @item If the character was composed on display with any following characters to form one or more grapheme clusters, the composition information: -the font glyphs if the frame is on a graphical display, else the +the font glyphs if the frame is on a graphical display, and the characters that were composed. @item diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi index 517d2b75aa2..453d9eb4010 100644 --- a/doc/emacs/package.texi +++ b/doc/emacs/package.texi @@ -165,27 +165,6 @@ Refresh the package list (@code{revert-buffer}). This fetches the list of available packages from the package archive again, and redisplays the package list. -@item / k -@kindex / k @r{(Package Menu)} -@findex package-menu-filter-by-keyword -Filter the package list by keyword -(@code{package-menu-filter-by-keyword}). This prompts for a keyword -(e.g., @samp{games}), then shows only the packages that relate to that -keyword. - -@item / n -@kindex / n @r{(Package Menu)} -@findex package-menu-filter-by-name -Filter the package list by name (@code{package-menu-filter-by-name}). -This prompts for a string, then shows only the packages whose names -match a regexp with that value. - -@item / / -@kindex / / @r{(Package Menu)} -@findex package-menu-clear-filter -Clear filter currently applied to the package list -(@code{package-menu-clear-filter}). - @item H @kindex H @r{(Package Menu)} @findex package-menu-hide-package @@ -200,6 +179,54 @@ pressing @key{RET} to the prompt will hide the current package. @findex package-menu-toggle-hiding Toggle visibility of old versions of packages and also of versions from lower-priority archives (@code{package-menu-toggle-hiding}). + +@item / a +@kindex / a @r{(Package Menu)} +@findex package-menu-filter-by-archive +Filter package list by archive (@code{package-menu-filter-by-archive}). +This prompts for a package archive (e.g., @samp{gnu}), then shows only +packages from that archive. + +@item / k +@kindex / k @r{(Package Menu)} +@findex package-menu-filter-by-keyword +Filter package list by keyword (@code{package-menu-filter-by-keyword}). +This prompts for a keyword (e.g., @samp{games}), then shows only +packages with that keyword. + +@item / n +@kindex / n @r{(Package Menu)} +@findex package-menu-filter-by-name +Filter package list by name (@code{package-menu-filter-by-name}). +This prompts for a regular expression, then shows only packages +with names matching that regexp. + +@item / s +@kindex / s @r{(Package Menu)} +@findex package-menu-filter-by-status +Filter package list by status (@code{package-menu-filter-by-status}). +This prompts for one or more statuses (e.g., @samp{available}), then +shows only packages with matching status. + +@item / v +@kindex / v @r{(Package Menu)} +@findex package-menu-filter-by-version +Filter package list by version (@code{package-menu-filter-by-version}). +This prompts first for one of the qualifiers @samp{<}, @samp{>} or +@samp{=}, and then a package version, and shows packages that has a +lower, equal or higher version than the one specified. + +@item / m +@kindex / m @r{(Package Menu)} +@findex package-menu-filter-marked +Filter package list by non-empty mark (@code{package-menu-filter-marked}). +This shows only the packages that have been marked to be installed or deleted. + +@item / / +@kindex / / @r{(Package Menu)} +@findex package-menu-filter-clear +Clear filter currently applied to the package list +(@code{package-menu-filter-clear}). @end table @noindent diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index b976f2e7b12..1c33d7dccc7 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi @@ -1269,9 +1269,29 @@ information whenever there is a Lisp function or variable at point; for a function, it shows the argument list, and for a variable it shows the first line of the variable's documentation string. To toggle ElDoc mode, type @kbd{M-x eldoc-mode}. There's also a Global -ElDoc mode, which is turned on by default, and affects buffers, such -as @samp{*scratch*}, whose major mode is Emacs Lisp or Lisp -Interaction (@w{@kbd{M-x global-eldoc-mode}} to turn it off globally). +ElDoc mode, which is turned on by default, and affects buffers whose +major mode sets the variables described below. Use @w{@kbd{M-x +global-eldoc-mode}} to turn it off globally. + +@vindex eldoc-documentation-strategy +@vindex eldoc-documentation-functions + These variables can be used to configure ElDoc mode: + +@table @code +@item eldoc-documentation-strategy +This variable holds the function which is used to retrieve +documentation for the item at point from the functions in the hook +@code{eldoc-documentation-functions}. By default, +@code{eldoc-documentation-strategy} returns the first documentation +string produced by the @code{eldoc-documentation-functions} hook, but +it may be customized to compose those functions' results in other +ways. + +@item eldoc-documentation-functions +This abnormal hook holds documentation functions. It acts as a +collection of backends for ElDoc. This is what modes should use to +register their documentation functions with ElDoc. +@end table @node Hideshow @section Hideshow minor mode diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi index 4c67660b92d..bc1dcd7f419 100644 --- a/doc/emacs/windows.texi +++ b/doc/emacs/windows.texi @@ -251,9 +251,19 @@ Mail}), but in another window (@code{compose-mail-other-window}). Find the definition of an identifier, similar to @kbd{M-.} (@pxref{Xref}), but in another window (@code{xref-find-definitions-other-window}). + @item C-x 4 r @var{filename} @key{RET} Visit file @var{filename} read-only, and select its buffer in another window (@code{find-file-read-only-other-window}). @xref{Visiting}. + +@item C-x 4 4 +A more general prefix command affects the buffer displayed by the next +command invoked immediately after this prefix command. It requests +the buffer of the next command to be displayed in another window. + +@item C-x 4 1 +This general prefix command requests the buffer of the next command +to be displayed in the same window. @end table @node Change Window |