1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 14:30:50 -08:00

Fix documentation for Emacs 30

* etc/NEWS: Mark entries and improve wording.

* doc/emacs/dired.texi (Operating on Files): Document
'dired-do-open'.  Fix indexing.
* doc/emacs/files.texi (Diff Mode): Document 'diff-apply-buffer'.
Fix indexing.
* doc/emacs/maintaining.texi (Project File Commands)
(Project Buffer Commands): Document 'project-any-command'.
* doc/emacs/building.texi (Other GDB Buffers): Document the user
option 'gdb-display-io-buffer'.
(Grep Searching): Document 'grep-use-headings'.
* doc/emacs/text.texi (Outline Visibility): Document Outline
commands that hide/show by heading regexp.
* doc/emacs/killing.texi (Kill Options): Document
'kill-ring-deindent-mode'.
* doc/emacs/basic.texi (Continuation Lines): Improve wording.
This commit is contained in:
Eli Zaretskii 2024-06-30 17:42:38 +03:00
parent f50167ab95
commit 9b294059d7
8 changed files with 132 additions and 48 deletions

View file

@ -643,14 +643,11 @@ long, by using Auto Fill mode. @xref{Filling}.
Normally, the first character of each continuation line is Normally, the first character of each continuation line is
positioned at the beginning of the screen line where it is displayed. positioned at the beginning of the screen line where it is displayed.
The minor mode @code{visual-wrap-prefix-mode} and its global The minor mode @code{visual-wrap-prefix-mode} and its global
(@pxref{Minor Modes}) counterpart counterpart (@pxref{Minor Modes}) @code{global-visual-wrap-prefix-mode}
@code{global-visual-wrap-prefix-mode} arranges that continuation lines arranges for continuation lines to be indented on display using a fill
be prefixed by slightly adjusted versions of the fill prefixes prefix (@pxref{Fill Prefix}) automatically computed from each line's
(@pxref{Fill Prefix}) of their respective logical lines, so that surrounding context. These prefixes are display-only feature, and do
indentation characters or the prefixes of source code comments are not change the buffer text in any way.
replicated across every continuation line, and the appearance of such
comments or indentation is not broken. These prefixes are only shown
on display, and does not change the buffer text in any way.
Sometimes, you may need to edit files containing many long logical Sometimes, you may need to edit files containing many long logical
lines, and it may not be practical to break them all up by adding lines, and it may not be practical to break them all up by adding

View file

@ -477,6 +477,14 @@ non-@code{nil} if the buffer is to be saved). Any other
non-@code{nil} value means that all buffers should be saved without non-@code{nil} value means that all buffers should be saved without
asking. The default is @code{ask}. asking. The default is @code{ask}.
@vindex grep-use-headings
@vindex grep-heading@r{ face}
By default, grep matches are shown with the file names prefixed to
each line. But if the variable @code{grep-use-headings} is customized
to a non-@code{nil} value, the matches are split into sections, one
section for each file with matches, and the file names are shown in the
section headings using a special face @code{grep-heading}.
@findex grep-find @findex grep-find
@findex find-grep @findex find-grep
The command @kbd{M-x grep-find} (also available as @kbd{M-x The command @kbd{M-x grep-find} (also available as @kbd{M-x
@ -1313,6 +1321,10 @@ of output to its standard output, you may wish to separate its I/O
from interaction with GDB. Use the command @w{@kbd{M-x from interaction with GDB. Use the command @w{@kbd{M-x
gdb-display-io-buffer}} to show a window with a buffer to which Emacs gdb-display-io-buffer}} to show a window with a buffer to which Emacs
redirects the input and output from the program you are debugging. redirects the input and output from the program you are debugging.
However, if the variable @code{gdb-display-io-buffer} is @code{nil},
Emacs will not create nor display a separate I/O buffer, but will
instead redirect the program's interaction to the GUD interaction
buffer.
@findex gdb-display-registers-buffer @findex gdb-display-registers-buffer
@item Registers Buffer @item Registers Buffer

View file

@ -803,9 +803,9 @@ The @code{dired-keep-marker-copy} user option controls how this
command handles file marking. The default is to mark all new copies command handles file marking. The default is to mark all new copies
of files with a @samp{C} mark. of files with a @samp{C} mark.
@item D
@findex dired-do-delete @findex dired-do-delete
@kindex D @r{(Dired)} @kindex D @r{(Dired)}
@item D
Delete the specified files (@code{dired-do-delete}). This is like the Delete the specified files (@code{dired-do-delete}). This is like the
shell command @code{rm}. shell command @code{rm}.
@ -813,6 +813,13 @@ Like the other commands in this section, this command operates on the
@emph{marked} files, or the next @var{n} files. By contrast, @kbd{x} @emph{marked} files, or the next @var{n} files. By contrast, @kbd{x}
(@code{dired-do-flagged-delete}) deletes all @dfn{flagged} files. (@code{dired-do-flagged-delete}) deletes all @dfn{flagged} files.
@findex dired-do-open
@kindex E @r{(Dired)}
@item E
``Open'' the specified files using an external program. The program is
selected according to the system conventions, as determined by the
variable @code{shell-command-guess-open}.
@findex dired-do-rename @findex dired-do-rename
@kindex R @r{(Dired)} @kindex R @r{(Dired)}
@cindex renaming files (in Dired) @cindex renaming files (in Dired)

View file

@ -1633,8 +1633,8 @@ commands to visit the corresponding source locations.
manipulate and apply parts of patches: manipulate and apply parts of patches:
@table @kbd @table @kbd
@item M-n
@findex diff-hunk-next @findex diff-hunk-next
@item M-n
Move to the next hunk-start (@code{diff-hunk-next}). With prefix Move to the next hunk-start (@code{diff-hunk-next}). With prefix
argument @var{n}, move forward to the @var{n}th next hunk. argument @var{n}, move forward to the @var{n}th next hunk.
@ -1645,45 +1645,50 @@ you set @code{diff-refine} to the symbol @code{navigation}, Diff mode
only refines the hunk you move to with this command or with only refines the hunk you move to with this command or with
@code{diff-hunk-prev}. @code{diff-hunk-prev}.
@item M-p
@findex diff-hunk-prev @findex diff-hunk-prev
@item M-p
Move to the previous hunk-start (@code{diff-hunk-prev}). With prefix Move to the previous hunk-start (@code{diff-hunk-prev}). With prefix
argument @var{n}, move back to the @var{n}th previous hunk. Like argument @var{n}, move back to the @var{n}th previous hunk. Like
@kbd{M-n}, this command refines the hunk you move to if you set @kbd{M-n}, this command refines the hunk you move to if you set
@code{diff-refine} to the symbol @code{navigation}. @code{diff-refine} to the symbol @code{navigation}.
@item M-@}
@findex diff-file-next @findex diff-file-next
@item M-@}
Move to the next file-start, in a multi-file patch Move to the next file-start, in a multi-file patch
(@code{diff-file-next}). With prefix argument @var{n}, move forward (@code{diff-file-next}). With prefix argument @var{n}, move forward
to the start of the @var{n}th next file. to the start of the @var{n}th next file.
@item M-@{
@findex diff-file-prev @findex diff-file-prev
@item M-@{
Move to the previous file-start, in a multi-file patch Move to the previous file-start, in a multi-file patch
(@code{diff-file-prev}). With prefix argument @var{n}, move back to (@code{diff-file-prev}). With prefix argument @var{n}, move back to
the start of the @var{n}th previous file. the start of the @var{n}th previous file.
@item M-k
@findex diff-hunk-kill @findex diff-hunk-kill
@item M-k
Kill the hunk at point (@code{diff-hunk-kill}). Kill the hunk at point (@code{diff-hunk-kill}).
@item M-K
@findex diff-file-kill @findex diff-file-kill
@item M-K
In a multi-file patch, kill the current file part. In a multi-file patch, kill the current file part.
(@code{diff-file-kill}). (@code{diff-file-kill}).
@item C-c C-a
@findex diff-apply-hunk @findex diff-apply-hunk
@cindex patches, applying @cindex patches, applying
@item C-c C-a
Apply this hunk to its target file (@code{diff-apply-hunk}). With a Apply this hunk to its target file (@code{diff-apply-hunk}). With a
prefix argument of @kbd{C-u}, revert this hunk, i.e.@: apply the prefix argument of @kbd{C-u}, revert this hunk, i.e.@: apply the
reverse of the hunk, which changes the ``new'' version into the ``old'' reverse of the hunk, which changes the ``new'' version into the ``old''
version. If @code{diff-jump-to-old-file} is non-@code{nil}, apply the version. If @code{diff-jump-to-old-file} is non-@code{nil}, apply the
hunk to the ``old'' version of the file instead. hunk to the ``old'' version of the file instead.
@item C-c C-b @findex diff-apply-buffer
@item C-c @key{RET} a
Apply all the hunks in the buffer (@code{diff-apply-buffer}). If the
diffs were applied successfully, save the changed buffers.
@findex diff-refine-hunk @findex diff-refine-hunk
@item C-c C-b
Highlight the changes of the hunk at point with a finer granularity Highlight the changes of the hunk at point with a finer granularity
(@code{diff-refine-hunk}). This allows you to see exactly which parts (@code{diff-refine-hunk}). This allows you to see exactly which parts
of each changed line were actually changed. of each changed line were actually changed.
@ -1693,9 +1698,9 @@ By default, Diff mode refines hunks as Emacs displays them, so you may
find this command useful if you customize @code{diff-refine} to a find this command useful if you customize @code{diff-refine} to a
non-default value. non-default value.
@item C-c C-c
@findex diff-goto-source @findex diff-goto-source
@vindex diff-jump-to-old-file @vindex diff-jump-to-old-file
@item C-c C-c
Go to the source file and line corresponding to this hunk Go to the source file and line corresponding to this hunk
(@code{diff-goto-source}). By default, this jumps to the ``new'' (@code{diff-goto-source}). By default, this jumps to the ``new''
version of the file, the one shown first on the file header. version of the file, the one shown first on the file header.
@ -1710,20 +1715,20 @@ this jumps to the work file by default. With a prefix argument, jump
to the ``old'' revision of the file (@pxref{Old Revisions}), when to the ``old'' revision of the file (@pxref{Old Revisions}), when
point is on the old line, or otherwise jump to the ``new'' revision. point is on the old line, or otherwise jump to the ``new'' revision.
@item C-c C-e
@findex diff-ediff-patch @findex diff-ediff-patch
@item C-c C-e
Start an Ediff session with the patch (@code{diff-ediff-patch}). Start an Ediff session with the patch (@code{diff-ediff-patch}).
@xref{Top, Ediff, Ediff, ediff, The Ediff Manual}. @xref{Top, Ediff, Ediff, ediff, The Ediff Manual}.
@item C-c C-n
@findex diff-restrict-view @findex diff-restrict-view
@item C-c C-n
Restrict the view to the current hunk (@code{diff-restrict-view}). Restrict the view to the current hunk (@code{diff-restrict-view}).
@xref{Narrowing}. With a prefix argument, restrict the @xref{Narrowing}. With a prefix argument, restrict the
view to the current file of a multiple-file patch. To widen again, view to the current file of a multiple-file patch. To widen again,
use @kbd{C-x n w} (@code{widen}). use @kbd{C-x n w} (@code{widen}).
@item C-c C-r
@findex diff-reverse-direction @findex diff-reverse-direction
@item C-c C-r
Reverse the direction of comparison for the entire buffer Reverse the direction of comparison for the entire buffer
(@code{diff-reverse-direction}). With a prefix argument, reverse the (@code{diff-reverse-direction}). With a prefix argument, reverse the
direction only inside the current region (@pxref{Mark}). Reversing direction only inside the current region (@pxref{Mark}). Reversing
@ -1731,8 +1736,8 @@ the direction means changing the hunks and the file-start headers to
produce a patch that would change the ``new'' version into the ``old'' produce a patch that would change the ``new'' version into the ``old''
one. one.
@item C-c C-s
@findex diff-split-hunk @findex diff-split-hunk
@item C-c C-s
Split the hunk at point (@code{diff-split-hunk}) into two separate Split the hunk at point (@code{diff-split-hunk}) into two separate
hunks. This inserts a hunk header and modifies the header of the hunks. This inserts a hunk header and modifies the header of the
current hunk. This command is useful for manually editing patches, current hunk. This command is useful for manually editing patches,
@ -1743,35 +1748,35 @@ produced by the @option{-c} or @option{--context} options to
@command{diff}, first convert the buffer to the unified diff format @command{diff}, first convert the buffer to the unified diff format
with @kbd{C-c C-u}. with @kbd{C-c C-u}.
@item C-c C-d
@findex diff-unified->context @findex diff-unified->context
@item C-c C-d
Convert the entire buffer to the @dfn{context diff format} Convert the entire buffer to the @dfn{context diff format}
(@code{diff-unified->context}). With a prefix argument, convert only (@code{diff-unified->context}). With a prefix argument, convert only
the hunks within the region. the hunks within the region.
@item C-c C-u
@findex diff-context->unified @findex diff-context->unified
@item C-c C-u
Convert the entire buffer to unified diff format Convert the entire buffer to unified diff format
(@code{diff-context->unified}). With a prefix argument, convert (@code{diff-context->unified}). With a prefix argument, convert
unified format to context format. When the mark is active, convert unified format to context format. When the mark is active, convert
only the hunks within the region. only the hunks within the region.
@item C-c C-l
@findex diff-refresh-hunk @findex diff-refresh-hunk
@item C-c C-l
Re-generate the current hunk (@code{diff-refresh-hunk}). Re-generate the current hunk (@code{diff-refresh-hunk}).
@item C-c C-w
@vindex diff-ignore-whitespace-switches @vindex diff-ignore-whitespace-switches
@findex diff-ignore-whitespace-hunk @findex diff-ignore-whitespace-hunk
@item C-c C-w
Re-generate the current hunk, disregarding changes in whitespace. Re-generate the current hunk, disregarding changes in whitespace.
With a non-@code{nil} prefix arg, re-generate all the hunks With a non-@code{nil} prefix arg, re-generate all the hunks
(@code{diff-ignore-whitespace-hunk}). This calls @code{diff-command} (@code{diff-ignore-whitespace-hunk}). This calls @code{diff-command}
with @code{diff-ignore-whitespace-switches}, which defaults to with @code{diff-ignore-whitespace-switches}, which defaults to
@samp{-b}, meaning ignore changes in whitespace only. @samp{-b}, meaning ignore changes in whitespace only.
@item C-x 4 A
@findex diff-add-change-log-entries-other-window @findex diff-add-change-log-entries-other-window
@findex add-change-log-entry-other-window@r{, in Diff mode} @findex add-change-log-entry-other-window@r{, in Diff mode}
@item C-x 4 A
Generate a ChangeLog entry, like @kbd{C-x 4 a} does (@pxref{Change Generate a ChangeLog entry, like @kbd{C-x 4 a} does (@pxref{Change
Log}), for each one of the hunks Log}), for each one of the hunks
(@code{diff-add-change-log-entries-other-window}). This creates a (@code{diff-add-change-log-entries-other-window}). This creates a

View file

@ -302,6 +302,13 @@ a pure white space string to the kill ring, you can say:
non-@code{nil} value, identical subsequent kills yield a single non-@code{nil} value, identical subsequent kills yield a single
kill-ring entry, without duplication. kill-ring entry, without duplication.
@findex kill-ring-deindent-mode
If you enable the minor mode @code{kill-ring-deindent-mode}, text
saved to the kill-ring will have its indentation decreased by the amount
of indentation of the first saved line. That is, if the first line of
the saved text was indented @var{n} columns, this mode will remove that
number of columns from the indentation of each saved line.
@node Yanking @node Yanking
@section Yanking @section Yanking
@cindex moving text @cindex moving text

View file

@ -1850,6 +1850,9 @@ Run shell command in the current project's root directory
@item C-x p & @item C-x p &
Run shell command asynchronously in the current project's root Run shell command asynchronously in the current project's root
directory (@code{project-async-shell-command}). directory (@code{project-async-shell-command}).
@item C-x p o
Run the next command in the current project
(@code{project-any-command}).
@end table @end table
Emacs provides commands for handling project files conveniently. Emacs provides commands for handling project files conveniently.
@ -1946,6 +1949,11 @@ directory. @xref{Top,Eshell,Eshell, eshell, Eshell: The Emacs Shell}.
The command @kbd{C-x p &} (@code{project-async-shell-command}) runs The command @kbd{C-x p &} (@code{project-async-shell-command}) runs
@code{async-shell-command} in the current project's root directory. @code{async-shell-command} in the current project's root directory.
@findex project-any-command
Finally, the command @kbd{C-x p o} (@code{project-any-command}) will
run the next command you type, whether related to files or not, in the
current project.
@node Project Buffer Commands @node Project Buffer Commands
@subsection Project Commands That Operate on Buffers @subsection Project Commands That Operate on Buffers
@ -1958,6 +1966,9 @@ List the project buffers (@code{project-list-buffers}).
@item C-x p k @item C-x p k
Kill all live buffers that belong to the current project Kill all live buffers that belong to the current project
(@code{project-kill-buffers}). (@code{project-kill-buffers}).
@item C-x p o
Run the next command in the current project
(@code{project-any-command}).
@end table @end table
@findex project-switch-to-buffer @findex project-switch-to-buffer
@ -1986,6 +1997,10 @@ project that satisfy any of @code{project-kill-buffer-conditions}. If
@code{project-kill-buffers-display-buffer-list} is non-@code{nil}, the @code{project-kill-buffers-display-buffer-list} is non-@code{nil}, the
buffers to be killed will be displayed first. buffers to be killed will be displayed first.
Finally, the command @kbd{C-x p o} (@code{project-any-command}) will
run the next command you type, whether related to buffers or not, in the
current project.
@node Switching Projects @node Switching Projects
@subsection Switching Projects @subsection Switching Projects

View file

@ -1208,6 +1208,12 @@ Hide everything except the top @var{n} levels of heading lines
Hide everything except for the heading or body that point is in, plus Hide everything except for the heading or body that point is in, plus
the headings leading up from there to the top level of the outline the headings leading up from there to the top level of the outline
(@code{outline-hide-other}). (@code{outline-hide-other}).
@item C-c / h @var{regexp} @key{RET}
Hide bodies of headings that match @var{regexp}
(@code{outline-hide-by-heading-regexp}).
@item C-c / s @var{regexp} @key{RET}
Show bodies of headings that match @var{regexp}
(@code{outline-show-by-heading-regexp}).
@end table @end table
@findex outline-hide-entry @findex outline-hide-entry
@ -1253,6 +1259,16 @@ headers leading up from there to top level in the outline) and the top
level headings. It also reveals body lines preceding the first level headings. It also reveals body lines preceding the first
heading in the buffer. heading in the buffer.
@findex outline-hide-by-heading-regexp
@findex outline-show-by-heading-regexp
@kindex C-c / h @r{(Outline mode)}
@kindex C-c / s @r{(Outline mode)}
The command @kbd{C-c / h} (@code{outline-hide-by-heading-regexp})
prompts for a regular expression, and hides all the body lines of
headings which match the regular expression. The command @kbd{C-c / s}
likewise prompts for a regular expression, and reveals the bodies of
matching headings.
@findex outline-hide-body @findex outline-hide-body
@findex outline-show-all @findex outline-show-all
@kindex C-c C-t @r{(Outline mode)} @kindex C-c C-t @r{(Outline mode)}

View file

@ -635,11 +635,11 @@ buffers.
(This minor mode is the 'adaptive-wrap' ELPA package renamed and (This minor mode is the 'adaptive-wrap' ELPA package renamed and
lightly edited for inclusion in Emacs.) lightly edited for inclusion in Emacs.)
--- +++
** New global minor mode 'kill-ring-deindent-mode'. ** New global minor mode 'kill-ring-deindent-mode'.
When enabled, text being saved to the kill ring will be de-indented by When enabled, text being saved to the kill ring will be de-indented by
the column number at its start. For example, saving the entire the column number at its start. For example, saving the entire
function call within: function call within an indented block:
foo () foo ()
{ {
@ -648,16 +648,16 @@ foo ()
argument_3_compute ()); argument_3_compute ());
} }
will save: will save this to the kill ring:
long_function_with_several_arguments (argument_1_compute (), long_function_with_several_arguments (argument_1_compute (),
argument_2_compute (), argument_2_compute (),
argument_3_compute ()) argument_3_compute ())
to the kill ring, omitting the two columns of extra indentation that This omits the two columns of extra indentation that would otherwise be
would otherwise be present in the second and third lines of the copied from the second and third lines and saved to the kill ring.
function call.
---
** New command 'replace-regexp-as-diff'. ** New command 'replace-regexp-as-diff'.
It reads a regexp to search for and a string to replace with, then It reads a regexp to search for and a string to replace with, then
displays a buffer with replacements as diffs. After reviewing the displays a buffer with replacements as diffs. After reviewing the
@ -728,6 +728,7 @@ whereas if the mouse pointer is in the left half of a glyph, point
will be put in front the buffer position corresponding to that glyph. will be put in front the buffer position corresponding to that glyph.
By default this is disabled. By default this is disabled.
---
** New pre-defined values for 'electric-quote-chars'. ** New pre-defined values for 'electric-quote-chars'.
The available customization options for 'electric-quote-chars' have been The available customization options for 'electric-quote-chars' have been
updated with common pairs of quotation characters, including "", "", updated with common pairs of quotation characters, including "", "",
@ -735,7 +736,7 @@ updated with common pairs of quotation characters, including "", "",
The default is unchanged. The default is unchanged.
+++ +++
** 'M-TAB' now invokes 'completion-at-point' also in Text mode. ** 'M-TAB' now invokes 'completion-at-point' in Text mode.
By default, Text mode no longer binds 'M-TAB' to 'ispell-complete-word'. By default, Text mode no longer binds 'M-TAB' to 'ispell-complete-word'.
Instead, this mode arranges for 'completion-at-point', globally bound to Instead, this mode arranges for 'completion-at-point', globally bound to
'M-TAB', to perform word completion as well. You can have Text mode 'M-TAB', to perform word completion as well. You can have Text mode
@ -786,14 +787,17 @@ These languages are spoken in Pakistan and Afghanistan.
*** New input method "english-colemak". *** New input method "english-colemak".
This input method supports the Colemak keyboard layout. This input method supports the Colemak keyboard layout.
---
*** Additional 'C-x 8' key translations for "æ" and "Æ". *** Additional 'C-x 8' key translations for "æ" and "Æ".
These characters can now be input with 'C-x 8 a e' and 'C-x 8 A E', These characters can now be input with 'C-x 8 a e' and 'C-x 8 A E',
respectively, in addition to the existing translations 'C-x 8 / e' and respectively, in addition to the existing translations 'C-x 8 / e' and
'C-x 8 / E'. 'C-x 8 / E'.
---
*** New 'C-x 8' key translations for "low" quotes "„", and "". *** New 'C-x 8' key translations for "low" quotes "„", and "".
These can now be entered with 'C-x , "' and 'C-x , ''. These can now be entered with 'C-x , "' and 'C-x , ''.
---
*** New German language 'C-x 8' key translations for quotation marks. *** New German language 'C-x 8' key translations for quotation marks.
The characters "„", "“", and "”" can now be entered with 'C-x 8 v', The characters "„", "“", and "”" can now be entered with 'C-x 8 v',
'C-x 8 b' and 'C-x 8 n'. The single versions "", "", and "" can now 'C-x 8 b' and 'C-x 8 n'. The single versions "", "", and "" can now
@ -801,6 +805,7 @@ be entered with 'C-x 8 V', 'C-x 8 B' and 'C-x 8 N'. These characters
are used for the official German quoting style. Using them requires are used for the official German quoting style. Using them requires
activating German language support via 'iso-transl-set-language'. activating German language support via 'iso-transl-set-language'.
---
*** "latin-prefix" and "latin-postfix" quotation marks additions. *** "latin-prefix" and "latin-postfix" quotation marks additions.
These input methods can now produce single, double and "low" left and These input methods can now produce single, double and "low" left and
right quotation marks: right quotation marks:
@ -810,17 +815,20 @@ right quotation marks:
by using "[", "]", and "," for "left", "right", and "low" respectively by using "[", "]", and "," for "left", "right", and "low" respectively
to modify "'" and """. to modify "'" and """.
---
*** "latin-prefix" and "latin-postfix" guillemets support. *** "latin-prefix" and "latin-postfix" guillemets support.
These input methods can now produce single guillemets "" and "". For These input methods can now produce single guillemets "" and "". For
"latin-prefix" use "~~<" and "~~>", for "latin-postfix" use "<~" and "latin-prefix" use "~~<" and "~~>", for "latin-postfix" use "<~" and
">~". Double guillemets ("«" and "»") were already supported. ">~". Double guillemets ("«" and "»") were already supported.
---
*** New French language 'C-x 8' key translations for "" and "". *** New French language 'C-x 8' key translations for "" and "".
These characters can now be entered using 'C-x 8 ~ <' and 'C-x 8 ~ >' These characters can now be entered using 'C-x 8 ~ <' and 'C-x 8 ~ >'
respectively, after activating French language support via respectively, after activating French language support via
'iso-transl-set-language'. Double guillemets were already supported via 'iso-transl-set-language'. Double guillemets were already supported via
'C-x 8 <' and 'C-x 8 >' 'C-x 8 <' and 'C-x 8 >'
---
*** Additional 'C-x 8' key translation for Euro "€" currency symbol. *** Additional 'C-x 8' key translation for Euro "€" currency symbol.
This can now be entered using 'C-x 8 E' in addition to the existing This can now be entered using 'C-x 8 E' in addition to the existing
'C-x 8 * E' translation. 'C-x 8 * E' translation.
@ -830,11 +838,12 @@ This can now be entered using 'C-x 8 E' in addition to the existing
** Outline mode ** Outline mode
+++
*** New commands to show/hide outlines by regexp. *** New commands to show/hide outlines by regexp.
'/ h' ('outline-hide-by-heading-regexp') asks for a regexp and then 'C-c / h' ('outline-hide-by-heading-regexp') asks for a regexp and then
hides the body lines of all outlines whose heading lines match the hides the body lines of all outlines whose heading lines match the
regexp. '/ s' ('outline-show-by-heading-regexp') does the same but regexp. 'C-c / s' ('outline-show-by-heading-regexp') does the inverse:
shows the matched outlines. it shows the bodies of outlines that matched a regexp.
+++ +++
*** 'outline-minor-mode' is supported in tree-sitter major modes. *** 'outline-minor-mode' is supported in tree-sitter major modes.
@ -850,6 +859,7 @@ This user option associates manual names with URLs. It affects the
Emacs-included manuals are set. Further associations can be added for Emacs-included manuals are set. Further associations can be added for
arbitrary Info manuals. arbitrary Info manuals.
---
*** Emacs can now display Info manuals compressed with 'lzip'. *** Emacs can now display Info manuals compressed with 'lzip'.
This requires the 'lzip' program to be installed on your system. This requires the 'lzip' program to be installed on your system.
@ -881,7 +891,7 @@ If you want to get back the old behavior, set the user option to the value
(setopt gdb-locals-table-row-config (setopt gdb-locals-table-row-config
`((type . 0) (name . 0) (value . ,gdb-locals-value-limit))) `((type . 0) (name . 0) (value . ,gdb-locals-value-limit)))
--- +++
*** New user option 'gdb-display-io-buffer'. *** New user option 'gdb-display-io-buffer'.
If this is nil, 'M-x gdb' will neither create nor display a separate If this is nil, 'M-x gdb' will neither create nor display a separate
buffer for the I/O of the program being debugged, but will instead buffer for the I/O of the program being debugged, but will instead
@ -890,11 +900,13 @@ default is t, to preserve previous behavior.
** Grep ** Grep
+++
*** New user option 'grep-use-headings'. *** New user option 'grep-use-headings'.
When non-nil, the output of Grep is split into sections, one for each When non-nil, the output of Grep is split into sections, one for each
file, instead of having file names prefixed to each line. It is file, instead of having file names prefixed to each line. It is
equivalent to the "--heading" option of some tools such as 'git grep' equivalent to the "--heading" option of some tools such as 'git grep'
and 'rg'. The headings are displayed using the new 'grep-heading' face. and 'rg'. The headings are displayed using the new 'grep-heading' face.
The default is nil.
** Compilation mode ** Compilation mode
@ -904,6 +916,7 @@ This is because it partly acts by modifying other rules which may
occasionally be surprising. It can be re-enabled by adding 'omake' to occasionally be surprising. It can be re-enabled by adding 'omake' to
'compilation-error-regexp-alist'. 'compilation-error-regexp-alist'.
---
*** Lua errors and stack traces are now recognized. *** Lua errors and stack traces are now recognized.
Compilation mode now recognizes Lua language errors and stack traces. Compilation mode now recognizes Lua language errors and stack traces.
Every Lua error is recognized as a compilation error, and every Lua Every Lua error is recognized as a compilation error, and every Lua
@ -917,22 +930,26 @@ When non-nil, display the name of the current project on the mode
line. Clicking 'mouse-1' on the project name pops up the project line. Clicking 'mouse-1' on the project name pops up the project
menu. The default value is nil. menu. The default value is nil.
---
*** New user option 'project-file-history-behavior'. *** New user option 'project-file-history-behavior'.
Customizing it to 'relativize' makes commands like 'project-find-file' Customizing it to 'relativize' makes commands like 'project-find-file'
and 'project-find-dir' display previous history entries relative to and 'project-find-dir' display previous history entries relative to
the current project. the current project.
--
*** New user option 'project-key-prompt-style'. *** New user option 'project-key-prompt-style'.
The look of the key prompt in the project switcher has been changed The look of the key prompt in the project switcher has been changed
slightly. To get the previous one, set this option to 'brackets'. slightly. To get the previous one, set this option to 'brackets'.
---
*** 'project-try-vc' tries harder to find the responsible VCS. *** 'project-try-vc' tries harder to find the responsible VCS.
When 'project-vc-extra-root-markers' is non-nil, and causes a When 'project-vc-extra-root-markers' is non-nil, and causes a
subdirectory project to be detected which is not a VCS root, we now subdirectory project to be detected which is not a VCS root, Project now
additionally traverse the parent directories until a VCS root is found additionally traverses the parent directories until a VCS root is found
(if any), so that the ignore rules for that repository are used, and (if any), so that the ignore rules for that repository are used, and
the file listing's performance is still optimized. the file listing's performance is still optimized.
+++
*** New commands 'project-any-command' and 'project-prefix-or-any-command'. *** New commands 'project-any-command' and 'project-prefix-or-any-command'.
The former is now bound to 'C-x p o' by default. The former is now bound to 'C-x p o' by default.
The latter is designed primarily for use as a value of The latter is designed primarily for use as a value of
@ -970,15 +987,16 @@ With this value only the revision number is displayed on the mode-line.
*** Obsolete command 'vc-switch-backend' re-added as 'vc-change-backend'. *** Obsolete command 'vc-switch-backend' re-added as 'vc-change-backend'.
The command was previously obsoleted and unbound in Emacs 28. The command was previously obsoleted and unbound in Emacs 28.
---
*** Support for viewing VC change history across renames. *** Support for viewing VC change history across renames.
When a fileset's VC change history ('C-x v l') ends at a rename, we When a fileset's VC change history ends at a rename, ('C-x v l') now
now print the old name(s) and a button which jumps to their history. prints the old name(s) and shows a button which jumps to the history of
Git and Hg are supported. Naturally, 'vc-git-print-log-follow' should the files under the old names. This feature is supported for Git and
be nil for this to work (or '--follow' should not be in Hg. Naturally, 'vc-git-print-log-follow' should be nil for this to work
'vc-hg-print-log-switches', in Hg's case). Unlike when the '--follow' (or '--follow' should not be in 'vc-hg-print-log-switches', in Hg's
switch is used, commands to see the diff of the old revision ('d'), case). Unlike when the '--follow' switch is used, commands to see the
check out an old file version ('f') or annotate it right away ('a'), diff of the old revision ('d'), to check out an old file version ('f')
also work on revisions which precede renames. or to annotate it ('a'), also work on revisions which precede renames.
--- ---
*** 'vc-annotate' now abbreviates the Git revision in the buffer name. *** 'vc-annotate' now abbreviates the Git revision in the buffer name.
@ -986,6 +1004,7 @@ When using the Git backend, 'vc-annotate' will use an abbreviated
revision identifier in its buffer name. To restore the previous revision identifier in its buffer name. To restore the previous
behavior, set 'vc-annotate-use-short-revision' to nil. behavior, set 'vc-annotate-use-short-revision' to nil.
---
*** New option 'vc-git-file-name-changes-switches'. *** New option 'vc-git-file-name-changes-switches'.
It allows tweaking the thresholds for rename and copy detection. It allows tweaking the thresholds for rename and copy detection.
@ -1011,6 +1030,7 @@ This allows changing which type of whitespace changes are ignored when
regenerating hunks with 'diff-ignore-whitespace-hunk'. Defaults to regenerating hunks with 'diff-ignore-whitespace-hunk'. Defaults to
the previously hard-coded "-b". the previously hard-coded "-b".
+++
*** New command 'diff-apply-buffer' bound to 'C-c RET a'. *** New command 'diff-apply-buffer' bound to 'C-c RET a'.
It applies the diff in the entire diff buffer and It applies the diff in the entire diff buffer and
saves all modified file buffers. saves all modified file buffers.
@ -1025,6 +1045,7 @@ It also controls how to move point when encountering a boundary
(e.g., if every line is visible, invoking 'dired-next-line' at (e.g., if every line is visible, invoking 'dired-next-line' at
the last line will move to the first line). The default is nil. the last line will move to the first line). The default is nil.
---
*** New user option 'dired-filename-display-length'. *** New user option 'dired-filename-display-length'.
It is an integer representing the maximum display length of filenames. It is an integer representing the maximum display length of filenames.
The middle part of a filename whose length exceeds the restriction is The middle part of a filename whose length exceeds the restriction is
@ -1032,6 +1053,7 @@ hidden and an ellipsis is displayed instead. A value of 'window'
means using the right edge of window as the display restriction. The means using the right edge of window as the display restriction. The
default is nil. default is nil.
---
*** New user option 'shell-command-guess-functions'. *** New user option 'shell-command-guess-functions'.
It defines how to populate a list of commands available It defines how to populate a list of commands available
for 'M-!', 'M-&', '!', '&' and the context menu "Open With" for 'M-!', 'M-&', '!', '&' and the context menu "Open With"
@ -1040,16 +1062,19 @@ based on marked files in Dired. Possible backends are
and a universal command such as "open" or "start" and a universal command such as "open" or "start"
that delegates to the OS. that delegates to the OS.
+++
*** New command 'dired-do-open'. *** New command 'dired-do-open'.
This command is bound to 'E' (mnemonics "External"). Also it can be This command is bound to 'E' (mnemonics "External"). Also it can be
used by clicking "Open" in the context menu; it "opens" the marked or used by clicking "Open" in the context menu; it "opens" the marked or
clicked on files according to the OS conventions. For example, on clicked on files according to the OS conventions. For example, on
systems supporting XDG, this runs 'xdg-open' on the files. systems supporting XDG, this runs 'xdg-open' on the files.
+++
*** New variable 'dired-guess-shell-alist-optional'. *** New variable 'dired-guess-shell-alist-optional'.
It contains commands for external viewers and players for various media It contains commands for external viewers and players for various media
formats, moved to this list from 'dired-guess-shell-alist-default'. formats, moved to this list from 'dired-guess-shell-alist-default'.
---
*** The default value of 'dired-omit-size-limit' was increased. *** The default value of 'dired-omit-size-limit' was increased.
After performance improvements to omitting in large directories, the new After performance improvements to omitting in large directories, the new
default value is 300k, up from 100k. This means 'dired-omit-mode' will default value is 300k, up from 100k. This means 'dired-omit-mode' will