Use substitute-command-keys for literal key sequences

* lisp/abbrev.el (expand-region-abbrevs):
* lisp/calc/calc-graph.el (calc-graph-show-dumb):
* lisp/calc/calc-help.el (calc-help-for-help):
* lisp/calc/calc-mode.el (calc-auto-why):
* lisp/calc/calc.el (calc-do):
* lisp/calculator.el (calculator-mode):
* lisp/dired-aux.el (dired-create-files)
(dired-do-create-files-regexp, dired-create-files-non-directory):
* lisp/dired-x.el (dired-virtual):
* lisp/dired.el (dired-mark-region, dired-unmark-all-files):
* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p):
* lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode):
* lisp/epa-ks.el (epa-ks--display-keys):
* lisp/erc/erc.el (erc-toggle-debug-irc-protocol):
* lisp/files.el (save-some-buffers):
* lisp/gnus/gnus-dired.el (gnus-dired-find-file-mailcap)
(gnus-dired-print):
* lisp/gnus/gnus-group.el (gnus-keep-same-level):
* lisp/gnus/gnus-score.el (gnus-score-find-trace):
* lisp/gnus/gnus.el (to-list):
* lisp/gnus/message.el (message--send-mail-maybe-partially):
* lisp/mail/supercite.el (sc-set-variable):
* lisp/minibuffer.el (minibuffer-inactive-mode):
* lisp/progmodes/etags.el (select-tags-table):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode)
(idlwave-shell-char-mode-loop):
* lisp/replace.el (query-replace-help):
* lisp/simple.el (set-variable):
* lisp/subr.el (read-char-from-minibuffer):
* lisp/textmodes/ispell.el (ispell-help, ispell-message):
* lisp/textmodes/reftex-global.el (reftex-find-duplicate-labels):
* lisp/textmodes/reftex-vars.el
(reftex-toc-include-file-boundaries)
(reftex-toc-include-labels, reftex-toc-include-index-entries)
(reftex-toc-include-context, reftex-toc-follow-mode)
(reftex-index-include-context, reftex-index-follow-mode)
(reftex-enable-partial-scans)
(reftex-auto-update-selection-buffers)
(reftex-highlight-selection):
* lisp/time.el (display-time-update):
* lisp/vc/ediff-help.el (ediff-help-for-quick-help):
* lisp/vc/ediff-init.el (ediff-keep-variants):
* lisp/vc/ediff-ptch.el (ediff-fixup-patch-map)
(ediff-patch-file-internal):
* lisp/windmove.el (windmove-delete-default-keybindings): Use
'substitute-command-keys' for literal key sequences.

* lisp/userlock.el (userlock--fontify-key): Remove function.
(ask-user-about-lock, ask-user-about-lock-help)
(ask-user-about-supersession-threat)
(ask-user-about-supersession-help): Use 'substitute-command-keys' for
literal key sequences.

* lisp/ibuffer.el (ibuffer-unmark-all): Use 'substitute-command-keys'
for command.
This commit is contained in:
Stefan Kangas 2021-11-22 11:45:44 +01:00
parent e91f71676c
commit 4a3ba8528b
37 changed files with 255 additions and 243 deletions

View file

@ -403,7 +403,7 @@ argument."
(defun expand-region-abbrevs (start end &optional noquery)
"For abbrev occurrence in the region, offer to expand it.
The user is asked to type `y' or `n' for each occurrence.
The user is asked to type \\`y' or \\`n' for each occurrence.
A prefix argument means don't query; expand all abbrevs."
(interactive "r\nP")
(save-excursion

View file

@ -969,7 +969,8 @@ This \"dumb\" driver will be present in Gnuplot 3.0."
(define-key calc-dumb-map "\C-c\C-c" 'exit-recursive-edit)))
(use-local-map calc-dumb-map)
(setq truncate-lines t)
(message "Type `q' or `C-c C-c' to return to Calc")
(message (substitute-command-keys
"Type \\`q' or \\`C-c C-c' to return to Calc"))
(recursive-edit)
(bury-buffer "*Gnuplot Trail*")))

View file

@ -50,25 +50,25 @@
(beep))))
(defun calc-help-for-help (arg)
"You have typed `h', the Calc help character. Type a Help option:
"You have typed \\`h', the Calc help character. Type a Help option:
B calc-describe-bindings. Display a table of all key bindings.
H calc-full-help. Display all `?' key messages at once.
\\`B' calc-describe-bindings. Display a table of all key bindings.
\\`H' calc-full-help. Display all \\`?' key messages at once.
I calc-info. Read the Calc manual using the Info system.
T calc-tutorial. Read the Calc tutorial using the Info system.
S calc-info-summary. Read the Calc summary using the Info system.
\\`I' calc-info. Read the Calc manual using the Info system.
\\`T' calc-tutorial. Read the Calc tutorial using the Info system.
\\`S' calc-info-summary. Read the Calc summary using the Info system.
C calc-describe-key-briefly. Look up the command name for a given key.
K calc-describe-key. Look up a key's documentation in the manual.
F calc-describe-function. Look up a function's documentation in the manual.
V calc-describe-variable. Look up a variable's documentation in the manual.
\\`C' calc-describe-key-briefly. Look up the command name for a given key.
\\`K' calc-describe-key. Look up a key's documentation in the manual.
\\`F' calc-describe-function. Look up a function's documentation in the manual.
\\`V' calc-describe-variable. Look up a variable's documentation in the manual.
N calc-view-news. Display Calc history of changes.
\\`N' calc-view-news. Display Calc history of changes.
C-c Describe conditions for copying Calc.
C-d Describe how you can get a new copy of Calc or report a bug.
C-w Describe how there is no warranty for Calc."
\\`C-c' Describe conditions for copying Calc.
\\`C-d' Describe how you can get a new copy of Calc or report a bug.
\\`C-w' Describe how there is no warranty for Calc."
(interactive "P")
(if calc-dispatch-help
(let (key)

View file

@ -216,26 +216,28 @@ Calc user interface as before (either C-x * C or C-x * K; initially C-x * C)."
(defun calc-help ()
(interactive)
(let ((msgs
'("Press `h' for complete help; press `?' repeatedly for a summary"
"Letter keys: Negate; Precision; Yank; Why; Xtended cmd; Quit"
"Letter keys: SHIFT + Undo, reDo; Inverse, Hyperbolic, Option"
"Letter keys: SHIFT + sQrt; Sin, Cos, Tan; Exp, Ln, logB"
"Letter keys: SHIFT + Floor, Round; Abs, conJ, arG; Pi"
"Letter keys: SHIFT + Num-eval; More-recn; eXec-kbd-macro; Keep-args"
"Other keys: +, -, *, /, ^, \\ (int div), : (frac div)"
"Other keys: & (1/x), | (concat), % (modulo), ! (factorial)"
"Other keys: \\=' (alg-entry), = (eval), \\=` (edit); M-RET (last-args)"
"Other keys: SPC/RET (enter/dup), LFD (over); < > (scroll horiz)"
"Other keys: DEL (drop), M-DEL (drop-above); { } (scroll vert)"
"Other keys: TAB (swap/roll-dn), M-TAB (roll-up)"
"Other keys: [ , ; ] (vector), ( , ) (complex), ( ; ) (polar)"
"Prefix keys: Algebra, Binary/business, Convert, Display"
"Prefix keys: Functions, Graphics, Help, J (select)"
"Prefix keys: Kombinatorics/statistics, Modes, Store/recall"
"Prefix keys: Trail/time, Units/statistics, Vector/matrix"
"Prefix keys: Z (user), SHIFT + Z (define)"
"Prefix keys: prefix + ? gives further help for that prefix"
" Calc by Dave Gillespie, daveg@synaptics.com")))
;; FIXME: Change these to `substitute-command-keys' syntax.
(mapcar #'substitute-command-keys
'("Press \\`h' for complete help; press \\`?' repeatedly for a summary"
"Letter keys: Negate; Precision; Yank; Why; Xtended cmd; Quit"
"Letter keys: SHIFT + Undo, reDo; Inverse, Hyperbolic, Option"
"Letter keys: SHIFT + sQrt; Sin, Cos, Tan; Exp, Ln, logB"
"Letter keys: SHIFT + Floor, Round; Abs, conJ, arG; Pi"
"Letter keys: SHIFT + Num-eval; More-recn; eXec-kbd-macro; Keep-args"
"Other keys: +, -, *, /, ^, \\ (int div), : (frac div)"
"Other keys: & (1/x), | (concat), % (modulo), ! (factorial)"
"Other keys: \\=' (alg-entry), = (eval), \\=` (edit); M-RET (last-args)"
"Other keys: \\`SPC'/\\`RET' (enter/dup), LFD (over); < > (scroll horiz)"
"Other keys: \\`DEL' (drop), \\`M-DEL' (drop-above); { } (scroll vert)"
"Other keys: \\`TAB' (swap/roll-dn), \\`M-TAB' (roll-up)"
"Other keys: [ , ; ] (vector), ( , ) (complex), ( ; ) (polar)"
"Prefix keys: Algebra, Binary/business, Convert, Display"
"Prefix keys: Functions, Graphics, Help, J (select)"
"Prefix keys: Kombinatorics/statistics, Modes, Store/recall"
"Prefix keys: Trail/time, Units/statistics, Vector/matrix"
"Prefix keys: Z (user), SHIFT + Z (define)"
"Prefix keys: prefix + ? gives further help for that prefix"
" Calc by Dave Gillespie, daveg@synaptics.com"))))
(if calc-full-help-flag
msgs
(if (or calc-inverse-flag calc-hyperbolic-flag)

View file

@ -109,11 +109,14 @@
(setq n (and (not (eq calc-auto-why t)) (if calc-auto-why t 1))))
(calc-change-mode 'calc-auto-why n nil)
(cond ((null n)
(message "User must press `w' to explain unsimplified results"))
(message (substitute-command-keys
"User must press \\`w' to explain unsimplified results")))
((eq n t)
(message "Automatically doing `w' to explain unsimplified results"))
(message (substitute-command-keys
"Automatically doing \\`w' to explain unsimplified results")))
(t
(message "Automatically doing `w' only for unusual messages")))))
(message (substitute-command-keys
"Automatically doing \\`w' only for unusual messages"))))))
(defun calc-group-digits (n)
(interactive "P")

View file

@ -1621,7 +1621,8 @@ See calc-keypad for details."
(stringp (nth 1 err))
(string-match "max-specpdl-size\\|max-lisp-eval-depth"
(nth 1 err)))
(error "Computation got stuck or ran too long. Type `M' to increase the limit")
(error (substitute-command-keys
"Computation got stuck or ran too long. Type \\`M' to increase the limit"))
(setq calc-aborted-prefix nil)
(signal (car err) (cdr err)))))
(when calc-aborted-prefix

View file

@ -593,15 +593,15 @@ except when using a non-decimal radix mode for input (in this case `e'
will be the hexadecimal digit).
Here are the editing keys:
* `RET' `=' evaluate the current expression
* `C-insert' copy the whole current expression to the `kill-ring'
* `C-return' evaluate, save result the `kill-ring' and exit
* `insert' paste a number if the one was copied (normally)
* `delete' `C-d' clear last argument or whole expression (hit twice)
* `backspace' delete a digit or a previous expression element
* `h' `?' pop-up a quick reference help
* `ESC' `q' exit (`ESC' can be used if `calculator-bind-escape' is
non-nil, otherwise use three consecutive `ESC's)
* \\`RET' \\`=' evaluate the current expression
* \\`C-<insert>' copy the whole current expression to the `kill-ring'
* \\`C-<return>' evaluate, save result the `kill-ring' and exit
* \\`<insert>' paste a number if the one was copied (normally)
* \\`<delete>' \\`C-d' clear last argument or whole expression (hit twice)
* \\`<backspace>' delete a digit or a previous expression element
* \\`h' \\`?' pop-up a quick reference help
* \\`ESC' \\`q' exit (\\`ESC' can be used if `calculator-bind-escape' is
non-nil, otherwise use three consecutive \\`ESC's)
These operators are pre-defined:
* `+' `-' `*' `/' the common binary operators
@ -623,10 +623,10 @@ argument.
hex/oct/bin modes can be set for input and for display separately.
Another toggle-able mode is for using degrees instead of radians for
trigonometric functions.
The keys to switch modes are (both `H' and `X' are for hex):
* `D' switch to all-decimal mode, or toggle degrees/radians
* `B' `O' `H' `X' binary/octal/hexadecimal modes for input & display
* `i' `o' followed by one of `D' `B' `O' `H' `X' (case
The keys to switch modes are (both \\`H' and \\`X' are for hex):
* \\`D' switch to all-decimal mode, or toggle degrees/radians
* \\`B' \\`O' \\`H' \\`X' binary/octal/hexadecimal modes for input & display
* \\`i' \\`o' followed by one of \\`D' \\`B' \\`O' \\`H' \\`X' (case
insensitive) sets only the input or display radix mode
The prompt indicates the current modes:
* \"==\": decimal mode (using radians);
@ -649,17 +649,17 @@ collected data. It is possible to navigate in this list, and if the
value shown is the current one on the list, an indication is displayed
as \"[N]\" if this is the last number and there are N numbers, or
\"[M/N]\" if the M-th value is shown.
* `SPC' evaluate the current value as usual, but also adds
* \\`SPC' evaluate the current value as usual, but also adds
the result to the list of saved values
* `l' `v' computes total / average of saved values
* `up' `C-p' browse to the previous value in the list
* `down' `C-n' browse to the next value in the list
* `delete' `C-d' remove current value from the list (if it is on it)
* `C-delete' `C-c' delete the whole list
* \\`l' \\`v' computes total / average of saved values
* \\`<up>' \\`C-p' browse to the previous value in the list
* \\`<down>' \\`C-n' browse to the next value in the list
* \\`<delete>' \\`C-d' remove current value from the list (if it is on it)
* \\`C-<delete>' \\`C-c' delete the whole list
Registers are variable-like place-holders for values:
* `s' followed by a character attach the current value to that character
* `g' followed by a character fetches the attached value
* \\`s' followed by a character attach the current value to that character
* \\`g' followed by a character fetches the attached value
There are many variables that can be used to customize the calculator.
Some interesting customization variables are:

View file

@ -1989,11 +1989,12 @@ or with the current marker character if MARKER-CHAR is t."
(let* ((overwrite (file-exists-p to))
(dired-overwrite-confirmed ; for dired-handle-overwrite
(and overwrite
(let ((help-form (format-message "\
Type SPC or `y' to overwrite file `%s',
DEL or `n' to skip to next,
ESC or `q' to not overwrite any of the remaining files,
`!' to overwrite all remaining files with no more questions." to)))
(let ((help-form (format-message
(substitute-command-keys "\
Type \\`SPC' or \\`y' to overwrite file `%s',
\\`DEL' or \\`n' to skip to next,
\\`ESC' or \\`q' to not overwrite any of the remaining files,
\\`!' to overwrite all remaining files with no more questions.") to)))
(dired-query 'overwrite-query
"Overwrite `%s'?" to))))
;; must determine if FROM is marked before file-creator
@ -2486,11 +2487,12 @@ Also see `dired-do-revert-buffer'."
;; Optional arg MARKER-CHAR as in dired-create-files.
(let* ((fn-list (dired-get-marked-files nil arg))
(operation-prompt (concat operation " `%s' to `%s'?"))
(rename-regexp-help-form (format-message "\
Type SPC or `y' to %s one match, DEL or `n' to skip to next,
`!' to %s all remaining matches with no more questions."
(downcase operation)
(downcase operation)))
(rename-regexp-help-form (format-message
(substitute-command-keys "\
Type \\`SPC' or \\`y' to %s one match, \\`DEL' or \\`n' to skip to next,
\\`!' to %s all remaining matches with no more questions.")
(downcase operation)
(downcase operation)))
(regexp-name-constructor
;; Function to construct new filename using REGEXP and NEWNAME:
(if whole-name ; easy (but rare) case
@ -2611,11 +2613,12 @@ See function `dired-do-rename-regexp' for more info."
(let ((to (concat (file-name-directory from)
(funcall basename-constructor
(file-name-nondirectory from)))))
(and (let ((help-form (format-message "\
Type SPC or `y' to %s one file, DEL or `n' to skip to next,
`!' to %s all remaining matches with no more questions."
(downcase operation)
(downcase operation))))
(and (let ((help-form (format-message
(substitute-command-keys "\
Type \\`SPC' or \\`y' to %s one file, \\`DEL' or \\`n' to skip to next,
\\`!' to %s all remaining matches with no more questions.")
(downcase operation)
(downcase operation))))
(dired-query 'rename-non-directory-query
(concat operation " `%s' to `%s'")
(dired-make-relative from)

View file

@ -596,7 +596,7 @@ If you have saved a Dired buffer in a file you can use \\[dired-virtual] to
resume it in a later session.
Type \\<dired-mode-map>\\[revert-buffer] \
in the Virtual Dired buffer and answer `y' to convert
in the Virtual Dired buffer and answer \\`y' to convert
the virtual to a real Dired buffer again. You don't have to do this, though:
you can relist single subdirs using \\[dired-do-redisplay]."

View file

@ -345,11 +345,11 @@ When `file', the region marking is based on the file name.
This means don't mark the file if the end of the region is
before the file name displayed on the Dired line, so the file name
is visually outside the region. This behavior is consistent with
marking files without the region using the key `m' that advances
marking files without the region using the key \\`m' that advances
point to the next line after marking the file. Thus the number
of keys used to mark files is the same as the number of keys
used to select the region, e.g. `M-2 m' marks 2 files, and
`C-SPC M-2 n m' marks 2 files, and `M-2 S-down m' marks 2 files.
used to select the region, for example \\`M-2 m' marks 2 files, and
\\`C-SPC M-2 n m' marks 2 files, and \\`M-2 S-<down> m' marks 2 files.
When `line', the region marking is based on Dired lines,
so include the file into marking if the end of the region
@ -4102,9 +4102,9 @@ Type \\[help-command] at that time for help."
(inhibit-read-only t) case-fold-search
dired-unmark-all-files-query
(string (format "\n%c" mark))
(help-form "\
Type SPC or `y' to unmark one file, DEL or `n' to skip to next,
`!' to unmark all remaining files with no more questions."))
(help-form (substitute-command-keys "\
Type \\`SPC' or \\`y' to unmark one file, \\`DEL' or \\`n' to skip to next,
\\`!' to unmark all remaining files with no more questions.")))
(goto-char (point-min))
(while (if (eq mark ?\r)
(re-search-forward dired-re-mark nil t)

View file

@ -215,12 +215,12 @@ The function's value is the number of actions taken."
(action (or (nth 2 help) "act on")))
(concat
(format-message
"\
Type SPC or `y' to %s the current %s;
DEL or `n' to skip the current %s;
RET or `q' to skip the current and all remaining %s;
C-g to quit (cancel the whole command);
! to %s all remaining %s;\n"
(substitute-command-keys "\
Type \\`SPC' or \\`y' to %s the current %s;
\\`DEL' or \\`n' to skip the current %s;
\\`RET' or \\`q' to skip the current and all remaining %s;
\\`C-g' to quit (cancel the whole command);
\\`!' to %s all remaining %s;\n")
action object object objects action objects)
(mapconcat (lambda (elt)
(format "%s to %s;\n"

View file

@ -448,7 +448,8 @@ provided in the Commentary section of this library."
(setq reb-subexp-mode t)
(reb-update-modestring)
(use-local-map reb-subexp-mode-map)
(message "`0'-`9' to display subexpressions `q' to quit subexp mode"))
(message (substitute-command-keys
"\\`0'-\\`9' to display subexpressions \\`q' to quit subexp mode")))
(defun reb-show-subexp (subexp &optional pause)
"Visually show limit of subexpression SUBEXP of recent search.

View file

@ -210,7 +210,8 @@ KEYS is a list of `epa-ks-key' structures, as parsed by
(with-current-buffer buf
(setq tabulated-list-entries entries)
(tabulated-list-print t t))
(message "Press `f' to mark a key, `x' to fetch all marked keys."))))
(message (substitute-command-keys
"Press \\`f' to mark a key, \\`x' to fetch all marked keys.")))))
(defun epa-ks--restart-search ()
(when epa-ks-last-query

View file

@ -2405,7 +2405,8 @@ If ARG is non-nil, show the *erc-protocol* buffer."
(concat "This buffer displays all IRC protocol "
"traffic exchanged with servers."))
(erc-make-notice "Kill it to disable logging.")
(erc-make-notice "Press `t' to toggle."))))
(erc-make-notice (substitute-command-keys
"Press \\`t' to toggle.")))))
(insert (string-join msg "\r\n")))
(use-local-map (make-sparse-keymap))
(local-set-key (kbd "t") 'erc-toggle-debug-irc-protocol))

View file

@ -5806,13 +5806,13 @@ of the directory that was default during command invocation."
(defun save-some-buffers (&optional arg pred)
"Save some modified file-visiting buffers. Asks user about each one.
You can answer `y' or SPC to save, `n' or DEL not to save, `C-r'
You can answer \\`y' or \\`SPC' to save, \\`n' or \\`DEL' not to save, \\`C-r'
to look at the buffer in question with `view-buffer' before
deciding, `d' to view the differences using
`diff-buffer-with-file', `!' to save the buffer and all remaining
buffers without any further querying, `.' to save only the
current buffer and skip the remaining ones and `q' or RET to exit
the function without saving any more buffers. `C-h' displays a
deciding, \\`d' to view the differences using
`diff-buffer-with-file', \\`!' to save the buffer and all remaining
buffers without any further querying, \\`.' to save only the
current buffer and skip the remaining ones and \\`q' or \\`RET' to exit
the function without saving any more buffers. \\`C-h' displays a
help message describing these options.
This command first saves any buffers where `buffer-save-without-query' is

View file

@ -204,7 +204,8 @@ If ARG is non-nil, open it in a new buffer."
(find-file file-name)))
(if (file-symlink-p file-name)
(error "File is a symlink to a nonexistent target")
(error "File no longer exists; type `g' to update Dired buffer"))))
(error (substitute-command-keys
"File no longer exists; type \\`g' to update Dired buffer")))))
(defun gnus-dired-print (&optional file-name print-to)
"In dired, print FILE-NAME according to the mailcap file.
@ -244,9 +245,10 @@ of the file to save in."
(error "MIME print only implemented via Gnus")))
(ps-despool print-to))))
((file-symlink-p file-name)
(error "File is a symlink to a nonexistent target"))
(t
(error "File no longer exists; type `g' to update Dired buffer"))))
(error "File is a symlink to a nonexistent target"))
(t
(error (substitute-command-keys
"File no longer exists; type \\`g' to update Dired buffer")))))
(provide 'gnus-dired)

View file

@ -62,7 +62,7 @@
(defcustom gnus-keep-same-level nil
"Non-nil means that the newsgroup after this one will be on the same level.
When you type, for instance, `n' after reading the last article in the
When you type, for instance, \\`n' after reading the last article in the
current newsgroup, you will go to the next newsgroup. If this variable
is nil, the next newsgroup will be the next from the group
buffer.

View file

@ -2562,16 +2562,17 @@ score in `gnus-newsgroup-scored' by SCORE."
(or (caddr s)
gnus-score-interactive-default-score))
trace))))
(insert
"\n\nQuick help:
(insert
(substitute-command-keys
"\n\nQuick help:
Type `e' to edit score file corresponding to the score rule on current line,
`f' to format (pretty print) the score file and edit it,
`t' toggle to truncate long lines in this buffer,
`q' to quit, `k' to kill score trace buffer.
Type \\`e' to edit score file corresponding to the score rule on current line,
\\`f' to format (pretty print) the score file and edit it,
\\`t' toggle to truncate long lines in this buffer,
\\`q' to quit, \\`k' to kill score trace buffer.
The first sexp on each line is the score rule, followed by the file name of
the score file and its full name, including the directory.")
the score file and its full name, including the directory."))
(goto-char (point-min))
(gnus-configure-windows 'score-trace)))
(set-buffer gnus-summary-buffer)

View file

@ -1467,11 +1467,11 @@ address was listed in gnus-group-split Addresses (see below).")
:variable-group gnus-group-parameter
:parameter-type '(gnus-email-address :tag "To List")
:parameter-document "\
This address will be used when doing a `a' in the group.
This address will be used when doing a \\`a' in the group.
It is totally ignored when doing a followup--except that if it is
present in a news group, you'll get mail group semantics when doing
`f'.
\\`f'.
The gnus-group-split mail splitting mechanism will behave as if this
address was listed in gnus-group-split Addresses (see below).")

View file

@ -4763,23 +4763,25 @@ Valid types are `send', `return', `exit', `kill' and `postpone'."
t
"\
The message size, "
(/ (buffer-size) 1000) "KB, is too large.
(/ (buffer-size) 1000)
(substitute-command-keys "KB, is too large.
Some mail gateways (MTA's) bounce large messages. To avoid the
problem, answer `y', and the message will be split into several
smaller pieces, the size of each is about "
problem, answer \\`y', and the message will be split into several
smaller pieces, the size of each is about ")
(/ message-send-mail-partially-limit 1000)
"KB except the last
(substitute-command-keys
"KB except the last
one.
However, some mail readers (MUA's) can't read split messages, i.e.,
mails in message/partially format. Answer `n', and the message
mails in message/partially format. Answer \\`n', and the message
will be sent in one piece.
The size limit is controlled by `message-send-mail-partially-limit'.
If you always want Gnus to send messages in one piece, set
`message-send-mail-partially-limit' to nil.
")))
"))))
(progn
(message "Sending via mail...")
(if message-send-mail-real-function

View file

@ -1257,7 +1257,9 @@ Otherwise, toggle lock status."
"Unmark all buffers with mark MARK."
(interactive "cRemove marks (RET means all):")
(if (= (ibuffer-count-marked-lines t) 0)
(message "No buffers marked; use `m' to mark a buffer")
(message (substitute-command-keys
"No buffers marked; use \\<ibuffer-mode-map>\
\\[ibuffer-mark-forward] to mark a buffer"))
(let ((fn (lambda (_buf mk)
(unless (eq mk ?\s)
(ibuffer-set-mark-1 ?\s)) t)))

View file

@ -1767,7 +1767,7 @@ is determined non-interactively. The value is queried for in the
minibuffer exactly the same way that `set-variable' does it.
You can see the current value of the variable when the minibuffer is
querying you by typing `C-h'. Note that the format is changed
querying you by typing \\`C-h'. Note that the format is changed
slightly from that used by `set-variable' -- the current value is
printed just after the variable's name instead of at the bottom of the
help window."

View file

@ -2734,7 +2734,7 @@ not active.")
This is only used when the minibuffer area has no active minibuffer.
Note that the minibuffer may change to this mode more often than
you might expect. For instance, typing `M-x' may change the
you might expect. For instance, typing \\`M-x' may change the
buffer to this mode, then to a different mode, and then back
again to this mode upon exit. Code running from
`minibuffer-inactive-mode-hook' has to be prepared to run

View file

@ -1992,7 +1992,8 @@ see the doc of that variable if you want to add names to the list."
(setq set-list (delete (car set-list) set-list)))
(goto-char (point-min))
(insert-before-markers
"Type `t' to select a tags table or set of tags tables:\n\n")
(substitute-command-keys
"Type \\`t' to select a tags table or set of tags tables:\n\n"))
(if desired-point
(goto-char desired-point))
(set-window-start (selected-window) 1 t))

View file

@ -817,7 +817,7 @@ IDL has currently stepped.")
Command history, searching of previous commands, command line
editing are available via the comint-mode key bindings, by default
mostly on the key `C-c'. Command history is also available with
mostly on the key \\`C-c'. Command history is also available with
the arrow keys UP and DOWN.
2. Completion
@ -1327,7 +1327,7 @@ See also the variable `idlwave-shell-input-mode-spells'."
Characters are sent one by one, without newlines. The loop is blocking
and intercepts all input events to Emacs. You can use this command
to interact with the IDL command GET_KBRD.
The loop can be aborted by typing `C-g'. The loop also exits automatically
The loop can be aborted by typing \\[keyboard-quit]. The loop also exits automatically
when the IDL prompt gets displayed again after the current IDL command."
(interactive)
@ -1342,7 +1342,8 @@ when the IDL prompt gets displayed again after the current IDL command."
(funcall errf "No IDL program seems to be waiting for input"))
;; OK, start the loop
(message "Character mode on: Sending single chars (`C-g' to exit)")
(message (substitute-command-keys
"Character mode on: Sending single chars (\\[keyboard-quit] to exit)"))
(message
(catch 'exit
(while t

View file

@ -2402,20 +2402,20 @@ To be added to `context-menu-functions'."
;; It would be nice to use \\[...], but there is no reasonable way
;; to make that display both SPC and Y.
(defconst query-replace-help
"Type Space or `y' to replace one match, Delete or `n' to skip to next,
RET or `q' to exit, Period to replace one match and exit,
Comma to replace but not move point immediately,
C-r to enter recursive edit (\\[exit-recursive-edit] to get out again),
C-w to delete match and recursive edit,
C-l to clear the screen, redisplay, and offer same replacement again,
! to replace all remaining matches in this buffer with no more questions,
^ to move point back to previous match,
u to undo previous replacement,
U to undo all replacements,
E to edit the replacement string.
In multi-buffer replacements type `Y' to replace all remaining
"Type \\`SPC' or \\`y' to replace one match, Delete or \\`n' to skip to next,
\\`RET' or \\`q' to exit, Period to replace one match and exit,
\\`,' to replace but not move point immediately,
\\`C-r' to enter recursive edit (\\[exit-recursive-edit] to get out again),
\\`C-w' to delete match and recursive edit,
\\`C-l' to clear the screen, redisplay, and offer same replacement again,
\\`!' to replace all remaining matches in this buffer with no more questions,
\\`^' to move point back to previous match,
\\`u' to undo previous replacement,
\\`U' to undo all replacements,
\\`E' to edit the replacement string.
In multi-buffer replacements type \\`Y' to replace all remaining
matches in all remaining buffers with no more questions,
`N' to skip to the next buffer without replacing remaining matches
\\`N' to skip to the next buffer without replacing remaining matches
in the current buffer."
"Help message while in `query-replace'.")

View file

@ -8912,7 +8912,7 @@ With a prefix argument, set VARIABLE to VALUE buffer-locally.
When called interactively, the user is prompted for VARIABLE and
then VALUE. The current value of VARIABLE will be put in the
minibuffer history so that it can be accessed with `M-n', which
minibuffer history so that it can be accessed with \\`M-n', which
makes it easier to edit it."
(interactive
(let* ((default-var (variable-at-point))

View file

@ -3120,7 +3120,7 @@ Optional argument CHARS, if non-nil, should be a list of characters;
the function will ignore any input that is not one of CHARS.
Optional argument HISTORY, if non-nil, should be a symbol that
specifies the history list variable to use for navigating in input
history using `M-p' and `M-n', with `RET' to select a character from
history using \\`M-p' and \\`M-n', with \\`RET' to select a character from
history.
If you bind the variable `help-form' to a non-nil value
while calling this function, then pressing `help-char'

View file

@ -2398,24 +2398,24 @@ Global `ispell-quit' set to start location to continue spell session."
Selections are:
DIGIT: Replace the word with a digit offered in the *Choices* buffer.
SPC: Accept word this time.
`i': Accept word and insert into private dictionary.
`a': Accept word for this session.
`A': Accept word and place in `buffer-local dictionary'.
`r': Replace word with typed-in value. Rechecked.
`R': Replace word with typed-in value. Query-replaced in buffer. Rechecked.
`?': Show these commands.
`x': Exit spelling buffer. Move cursor to original point.
`X': Exit spelling buffer. Leaves cursor at the current point, and permits
\\`0'..\\`9' Replace the word with a digit offered in the *Choices* buffer.
\\`SPC' Accept word this time.
\\`i' Accept word and insert into private dictionary.
\\`a' Accept word for this session.
\\`A' Accept word and place in `buffer-local dictionary'.
\\`r' Replace word with typed-in value. Rechecked.
\\`R' Replace word with typed-in value. Query-replaced in buffer. Rechecked.
\\`?' Show these commands.
\\`x' Exit spelling buffer. Move cursor to original point.
\\`X' Exit spelling buffer. Leaves cursor at the current point, and permits
the aborted check to be completed later.
`q': Quit spelling session (Kills ispell process).
`l': Look up typed-in replacement in alternate dictionary. Wildcards okay.
`u': Like `i', but the word is lower-cased first.
`m': Place typed-in value in personal dictionary, then recheck current word.
`C-l': Redraw screen.
`C-r': Recursive edit.
`C-z': Suspend Emacs or iconify frame."
\\`q' Quit spelling session (Kills ispell process).
\\`l' Look up typed-in replacement in alternate dictionary. Wildcards okay.
\\`u' Like \\`i', but the word is lower-cased first.
\\`m' Place typed-in value in personal dictionary, then recheck current word.
\\`C-l' Redraw screen.
\\`C-r' Recursive edit.
\\`C-z' Suspend Emacs or iconify frame."
(if (equal ispell-help-in-bufferp 'electric)
(progn
@ -2428,26 +2428,28 @@ SPC: Accept word this time.
;;(if (< (window-height) 15)
;; (enlarge-window
;; (- 15 (ispell-adjusted-window-height))))
(princ "Selections are:
(princ
(substitute-command-keys
"Selections are:
DIGIT: Replace the word with a digit offered in the *Choices* buffer.
SPC: Accept word this time.
`i': Accept word and insert into private dictionary.
`a': Accept word for this session.
`A': Accept word and place in `buffer-local dictionary'.
`r': Replace word with typed-in value. Rechecked.
`R': Replace word with typed-in value. Query-replaced in buffer. Rechecked.
`?': Show these commands.
`x': Exit spelling buffer. Move cursor to original point.
`X': Exit spelling buffer. Leaves cursor at the current point, and permits
the aborted check to be completed later.
`q': Quit spelling session (Kills ispell process).
`l': Look up typed-in replacement in alternate dictionary. Wildcards okay.
`u': Like `i', but the word is lower-cased first.
`m': Place typed-in value in personal dictionary, then recheck current word.
`C-l': Redraw screen.
`C-r': Recursive edit.
`C-z': Suspend Emacs or iconify frame.")
\\`0'..\\`9' Replace the word with a digit offered in the *Choices* buffer.
\\`SPC' Accept word this time.
\\`i' Accept word and insert into private dictionary.
\\`a' Accept word for this session.
\\`A' Accept word and place in `buffer-local dictionary'.
\\`r' Replace word with typed-in value. Rechecked.
\\`R' Replace word with typed-in value. Query-replaced in buffer. Rechecked.
\\`?' Show these commands.
\\`x' Exit spelling buffer. Move cursor to original point.
\\`X' Exit spelling buffer. Leaves cursor at the current point, and permits
the aborted check to be completed later.
\\`q' Quit spelling session (Kills ispell process).
\\`l' Look up typed-in replacement in alternate dictionary. Wildcards okay.
\\`u' Like \\`i', but the word is lower-cased first.
\\`m' Place typed-in value in personal dictionary, then recheck current word.
\\`C-l' Redraw screen.
\\`C-r' Recursive edit.
\\`C-z' Suspend Emacs or iconify frame."))
nil)))
@ -3883,8 +3885,8 @@ Don't check spelling of message headers except the Subject field.
Don't check included messages.
To abort spell checking of a message region and send the message anyway,
use the `x' command. (Any subsequent regions will be checked.)
The `X' command aborts sending the message so that you can edit the buffer.
use the \\`x' command. (Any subsequent regions will be checked.)
The \\`X' command aborts sending the message so that you can edit the buffer.
To spell-check whenever a message is sent, include the appropriate lines
in your init file:

View file

@ -148,8 +148,10 @@ No active TAGS table is required."
(erase-buffer)
(insert " MULTIPLE LABELS IN CURRENT DOCUMENT:\n")
(insert
" Move point to label and type `r' to run a query-replace on the label\n"
" and its references. Type `q' to exit this buffer.\n\n")
(substitute-command-keys
" Move point to label and type \\`r' to run a query-replace on the label\n")
(substitute-command-keys
" and its references. Type \\`q' to exit this buffer.\n\n"))
(insert " LABEL FILE\n")
(insert " -------------------------------------------------------------\n")
(use-local-map (make-sparse-keymap))

View file

@ -392,19 +392,19 @@ that the *toc* window fills half the frame."
(defcustom reftex-toc-include-file-boundaries nil
"Non-nil means, include file boundaries in *toc* buffer.
This flag can be toggled from within the *toc* buffer with the `F' key."
This flag can be toggled from within the *toc* buffer with the \\`F' key."
:group 'reftex-table-of-contents-browser
:type 'boolean)
(defcustom reftex-toc-include-labels nil
"Non-nil means, include labels in *toc* buffer.
This flag can be toggled from within the *toc* buffer with the `l' key."
This flag can be toggled from within the *toc* buffer with the \\`l' key."
:group 'reftex-table-of-contents-browser
:type 'boolean)
(defcustom reftex-toc-include-index-entries nil
"Non-nil means, include index entries in *toc* buffer.
This flag can be toggled from within the *toc* buffer with the `i' key."
This flag can be toggled from within the *toc* buffer with the \\`i' key."
:group 'reftex-table-of-contents-browser
:type 'boolean)
@ -422,14 +422,14 @@ changed."
(defcustom reftex-toc-include-context nil
"Non-nil means, include context with labels in the *toc* buffer.
Context will only be shown when labels are visible as well.
This flag can be toggled from within the *toc* buffer with the `c' key."
This flag can be toggled from within the *toc* buffer with the \\`c' key."
:group 'reftex-table-of-contents-browser
:type 'boolean)
(defcustom reftex-toc-follow-mode nil
"Non-nil means, point in *toc* buffer will cause other window to follow.
The other window will show the corresponding part of the document.
This flag can be toggled from within the *toc* buffer with the `f' key."
This flag can be toggled from within the *toc* buffer with the \\`f' key."
:group 'reftex-table-of-contents-browser
:type 'boolean)
@ -1627,14 +1627,14 @@ to that section."
(defcustom reftex-index-include-context nil
"Non-nil means, display the index definition context in the index buffer.
This flag may also be toggled from the index buffer with the `c' key."
This flag may also be toggled from the index buffer with the \\`c' key."
:group 'reftex-index-support
:type 'boolean)
(defcustom reftex-index-follow-mode nil
"Non-nil means, point in *Index* buffer will cause other window to follow.
The other window will show the corresponding part of the document.
This flag can be toggled from within the *Index* buffer with the `f' key."
This flag can be toggled from within the *Index* buffer with the \\`f' key."
:group 'reftex-table-of-contents-browser
:type 'boolean)
@ -1863,10 +1863,11 @@ of the regular expressions in this list, that file is not parsed by RefTeX."
(defcustom reftex-enable-partial-scans nil
"Non-nil means, re-parse only 1 file when asked to re-parse.
Re-parsing is normally requested with a \\[universal-argument] prefix to many RefTeX commands,
or with the `r' key in menus. When this option is t in a multifile document,
or with the \\`r' key in menus. When this option is t in a multifile document,
we will only parse the current buffer, or the file associated with the label
or section heading near point in a menu. Requesting re-parsing of an entire
multifile document then requires a \\[universal-argument] \\[universal-argument] prefix or the capital `R' key
multifile document then requires a \\[universal-argument] \
\\[universal-argument] prefix or the capital \\`R' key
in menus."
:group 'reftex-optimizations-for-large-documents
:type 'boolean)
@ -1912,7 +1913,7 @@ when new labels in its category are added. See the variable
When a new label is defined with `reftex-label', all selection buffers
associated with that label category are emptied, in order to force an
update upon next use. When nil, the buffers are left alone and have to be
updated by hand, with the `g' key from the label selection process.
updated by hand, with the \\`g' key from the label selection process.
The value of this variable will only have any effect when
`reftex-use-multiple-selection-buffers' is non-nil."
:group 'reftex-optimizations-for-large-documents
@ -1964,7 +1965,7 @@ instead or as well. The variable may have one of these values:
both Both cursor and mouse trigger highlighting.
Changing this variable requires rebuilding the selection and *toc* buffers
to become effective (keys `g' or `r')."
to become effective (keys \\`g' or \\`r')."
:group 'reftex-fontification-configurations
:type '(choice
(const :tag "Never" nil)

View file

@ -343,7 +343,7 @@ Switches from the 1 to 5 to 15 minute load average, and then back to 1."
"Update the `display-time' info for the mode line.
However, don't redisplay right now.
This is used for things like Rmail `g' that want to force an
This is used for things like Rmail \\`g' that want to force an
update which can wait for the next redisplay."
(let* ((now (current-time))
(time (current-time-string now))

View file

@ -39,10 +39,6 @@
(define-error 'file-locked "File is locked" 'file-error)
(defun userlock--fontify-key (key)
"Add the `help-key-binding' face to string KEY."
(propertize key 'face 'help-key-binding))
;;;###autoload
(defun ask-user-about-lock (file opponent)
"Ask user what to do when he wants to edit FILE but it is locked by OPPONENT.
@ -68,12 +64,9 @@ in any way you like."
(match-string 0 opponent)))
opponent))
(while (null answer)
(message "%s locked by %s: (%s, %s, %s, %s)? "
short-file short-opponent
(userlock--fontify-key "s")
(userlock--fontify-key "q")
(userlock--fontify-key "p")
(userlock--fontify-key "?"))
(message (substitute-command-keys
"%s locked by %s: (\\`s', \\`q', \\`p', \\`?'? ")
short-file short-opponent)
(if noninteractive (error "Cannot resolve lock conflict in batch mode"))
(let ((tem (let ((inhibit-quit t)
(cursor-in-echo-area t))
@ -88,12 +81,9 @@ in any way you like."
(?? . help))))
(cond ((null answer)
(beep)
(message "Please type %s, %s, or %s; or %s for help"
(userlock--fontify-key "q")
(userlock--fontify-key "s")
(userlock--fontify-key "p")
;; FIXME: Why do we use "?" here and "C-h" below?
(userlock--fontify-key "?"))
;; FIXME: Why do we use "?" here and "C-h" below?
(message (substitute-command-keys
"Please type \\`q', \\`s', or \\`p'; or \\`?' for help"))
(sit-for 3))
((eq (cdr answer) 'help)
(ask-user-about-lock-help)
@ -106,17 +96,14 @@ in any way you like."
(with-output-to-temp-buffer "*Help*"
(with-current-buffer standard-output
(insert
(format
(substitute-command-keys
"It has been detected that you want to modify a file that someone else has
already started modifying in Emacs.
You can <%s>teal the file; the other user becomes the
You can <\\`s'>teal the file; the other user becomes the
intruder if (s)he ever unmodifies the file and then changes it again.
You can <%s>roceed; you edit at your own (and the other user's) risk.
You can <%s>uit; don't modify this file."
(userlock--fontify-key "s")
(userlock--fontify-key "p")
(userlock--fontify-key "q")))
You can <\\`p'>roceed; you edit at your own (and the other user's) risk.
You can <\\`q'>uit; don't modify this file."))
(help-mode))))
(define-error 'file-supersession nil 'file-error)
@ -169,14 +156,11 @@ The buffer in question is current when this function is called."
(discard-input)
(save-window-excursion
(let ((prompt
(format "%s changed on disk; \
really edit the buffer? (%s, %s, %s or %s) "
(file-name-nondirectory filename)
(userlock--fontify-key "y")
(userlock--fontify-key "n")
(userlock--fontify-key "r")
;; FIXME: Why do we use "C-h" here and "?" above?
(userlock--fontify-key "C-h")))
;; FIXME: Why do we use "C-h" here and "?" above?
(format (substitute-command-keys
"%s changed on disk; \
really edit the buffer? (\\`y', \\`n', \\`r' or \\`C-h') ")
(file-name-nondirectory filename)))
(choices '(?y ?n ?r ?? ?\C-h))
answer)
(when noninteractive
@ -205,22 +189,18 @@ really edit the buffer? (%s, %s, %s or %s) "
(with-output-to-temp-buffer "*Help*"
(with-current-buffer standard-output
(insert
(format
(substitute-command-keys
"You want to modify a buffer whose disk file has changed
since you last read it in or saved it with this buffer.
If you say %s to go ahead and modify this buffer,
If you say \\`y' to go ahead and modify this buffer,
you risk ruining the work of whoever rewrote the file.
If you say %s to revert, the contents of the buffer are refreshed
If you say \\`r' to revert, the contents of the buffer are refreshed
from the file on disk.
If you say %s, the change you started to make will be aborted.
If you say \\`n', the change you started to make will be aborted.
Usually, you should type %s to get the latest version of the
file, then make the change again."
(userlock--fontify-key "y")
(userlock--fontify-key "r")
(userlock--fontify-key "n")
(userlock--fontify-key "r")))
Usually, you should type \\`r' to get the latest version of the
file, then make the change again."))
(help-mode))))
;;;###autoload

View file

@ -227,7 +227,9 @@ the value of this variable and the variables `ediff-help-message-*' in
((string= cmd "s") (re-search-forward "^['`]s[']"))
((string= cmd "+") (re-search-forward "^['`]\\+[']"))
((string= cmd "=") (re-search-forward "^['`]=[']"))
(t (user-error "Undocumented command! Type `G' in Ediff Control Panel to drop a note to the Ediff maintainer")))
(t (user-error (substitute-command-keys
"Undocumented command! Type \\`G' in Ediff Control \
Panel to drop a note to the Ediff maintainer"))))
) ; let case-fold-search
))

View file

@ -615,8 +615,8 @@ Actually, Ediff restores the scope of visibility that existed at startup.")
(defcustom ediff-keep-variants t
"Nil means prompt to remove unmodified buffers A/B/C at session end.
Supplying a prefix argument to the quit command `q' temporarily reverses the
meaning of this variable."
Supplying a prefix argument to the quit command \\`q' temporarily
reverses the meaning of this variable."
:type 'boolean
:group 'ediff)

View file

@ -415,7 +415,9 @@ other files, enter `/dev/null'.
(with-output-to-temp-buffer ediff-msg-buffer
(ediff-with-current-buffer standard-output
(fundamental-mode))
(princ (format-message "
(with-current-buffer standard-output
(insert (format-message
(substitute-command-keys "
Ediff has inferred that
%s
%s
@ -423,10 +425,10 @@ are two possible targets for applying the patch.
Both files seem to be plausible alternatives.
Please advise:
Type `y' to use %s as the target;
Type `n' to use %s as the target.
"
file1 file2 file1 file2)))
Type \\`y' to use %s as the target;
Type \\`n' to use %s as the target.
")
file1 file2 file1 file2))))
(setcar session-file-object
(if (y-or-n-p (format "Use %s ? " file1))
(progn
@ -823,7 +825,8 @@ you can still examine the changes via M-x ediff-files"
ediff-patch-diagnostics patch-diagnostics))
(bury-buffer patch-diagnostics)
(message "Type `P', if you need to see patch diagnostics")
(message (substitute-command-keys
"Type \\`P', if you need to see patch diagnostics"))
ctl-buf))
(defun ediff-multi-patch-internal (patch-buf &optional startup-hooks)

View file

@ -700,7 +700,7 @@ where PREFIX is a prefix key and MODIFIERS is either a list of modifiers or
a single modifier.
If PREFIX is `none', no prefix is used. If MODIFIERS is `none',
the keybindings are directly bound to the arrow keys.
Default value of PREFIX is `C-x' and MODIFIERS is `shift'."
Default value of PREFIX is \\`C-x' and MODIFIERS is `shift'."
(interactive)
(unless prefix (setq prefix '(?\C-x)))
(when (eq prefix 'none) (setq prefix nil))