From 6724728e4b9608b98052b6690f659a355b2865e6 Mon Sep 17 00:00:00 2001 From: Spencer Baugh Date: Mon, 3 Jul 2023 09:59:04 -0400 Subject: [PATCH] Mention minibuffer-next-completion in completion-help Now that it's not necessary to switch to the *Completions* buffer to switch between and choose completions, we should make that clear in the help text. Let's also make the bindings uniform both in and outside the *Completions* buffer so users don't have to think about the difference. In working with new users, they've assumed that since the help text in *Completions* says "Click on a completion to select it", that that's the only way to select a completion. This text should help clarify that. * doc/emacs/mini.texi (Completion Commands): Document new bindings. * lisp/simple.el (completion-list-mode-map): Bind minibuffer-{next,previous,choose}-completion. (completion-setup-function): Mention bindings for minibuffer-{next,previous,choose}-completion. (Bug#64425) --- doc/emacs/mini.texi | 4 ++-- lisp/simple.el | 15 ++++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index a760ad19f2d..1080c3b6d27 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -399,7 +399,7 @@ Completion Commands @findex minibuffer-choose-completion @item M-@key{DOWN} @itemx M-@key{UP} -While in the minibuffer, @kbd{M-@key{DOWN}} +While in the minibuffer or in the completion list buffer, @kbd{M-@key{DOWN}} (@code{minibuffer-next-completion} and @kbd{M-@key{UP}} (@code{minibuffer-previous-completion}) navigate through the completions and displayed in the completions buffer. When @@ -419,7 +419,7 @@ Completion Commands @itemx @key{prior} Typing @kbd{M-v}, while in the minibuffer, selects the window showing the completion list (@code{switch-to-completions}). This paves the -way for using the commands below. @key{PageUp}, @key{prior} and +way for also using the commands below. @key{PageUp}, @key{prior} and @kbd{M-g M-c} does the same. You can also select the window in other ways (@pxref{Windows}). diff --git a/lisp/simple.el b/lisp/simple.el index 406f1008df3..2b1a015f517 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -9697,6 +9697,9 @@ completion-list-mode-map (define-key map [right] 'next-completion) (define-key map [?\t] 'next-completion) (define-key map [backtab] 'previous-completion) + (define-key map [M-up] 'minibuffer-previous-completion) + (define-key map [M-down] 'minibuffer-next-completion) + (define-key map "\M-\r" 'minibuffer-choose-completion) (define-key map "z" 'kill-current-buffer) (define-key map "n" 'next-completion) (define-key map "p" 'previous-completion) @@ -10091,11 +10094,13 @@ completion-setup-function ;; Maybe insert help string. (when completion-show-help (goto-char (point-min)) - (if (display-mouse-p) - (insert "Click on a completion to select it.\n")) - (insert (substitute-command-keys - "In this buffer, type \\[choose-completion] to \ -select the completion near point.\n\n")))))) + (insert (substitute-command-keys + (if (display-mouse-p) + "Click or type \\[minibuffer-choose-completion] on a completion to select it.\n" + "Type \\[minibuffer-choose-completion] on a completion to select it.\n"))) + (insert (substitute-command-keys + "Type \\[minibuffer-next-completion] or \\[minibuffer-previous-completion] \ +to move point between completions.\n\n")))))) (add-hook 'completion-setup-hook #'completion-setup-function) -- 2.39.3