branch: externals/vertico commit 59e2e97373fcaf8d7ae961198a4200fd61926fd2 Author: Daniel Mendler <m...@daniel-mendler.de> Commit: Daniel Mendler <m...@daniel-mendler.de>
Document keymap support for vertico-multiform-mode --- CHANGELOG.org | 5 +++++ README.org | 19 +++++++++++++++++-- extensions/vertico-directory.el | 13 +++++++++++-- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.org b/CHANGELOG.org index 1fd580c541..ee7236a82c 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -2,6 +2,11 @@ #+author: Daniel Mendler #+language: en +* Development + +- =vertico-multiform-mode=: Add =:keymap= setting per command or completion + category. Either specify a list of key bindings or a keymap directly. + * Version 2.3 (2025-06-10) - =vertico-multiform-mode=: Add context menu to change display mode. First enable diff --git a/README.org b/README.org index 65b39ab891..dcf07be8a1 100644 --- a/README.org +++ b/README.org @@ -340,11 +340,13 @@ Furthermore you can tune buffer-local settings per command or category. ;; Change the default sorting function. ;; See `vertico-sort-function' and `vertico-sort-override-function'. (setq vertico-multiform-commands - '((describe-symbol (vertico-sort-function . vertico-sort-alpha)))) + '((describe-symbol (vertico-sort-function . vertico-sort-alpha)) + (execute-extended-command (:keymap "X" execute-extended-command-for-buffer)))) (setq vertico-multiform-categories '((symbol (vertico-sort-function . vertico-sort-alpha)) - (file (vertico-sort-function . sort-directories-first)))) + (file (vertico-sort-function . sort-directories-first) + (:keymap . vertico-directory-map)))) ;; Sort directories before files (defun sort-directories-first (files) @@ -353,6 +355,19 @@ Furthermore you can tune buffer-local settings per command or category. (seq-remove (lambda (x) (string-suffix-p "/" x)) files))) #+end_src +Key maps or key bindings can be set per command or category. + +#+begin_src emacs-lisp +;; Bind "X" to `execute-extended-command-for-buffer' in M-x. +(setq vertico-multiform-commands + '((execute-extended-command (:keymap "X" execute-extended-command-for-buffer)))) + +;; Bind directory commands for all commands in file category. +(setq vertico-multiform-categories + '((file (vertico-sort-function . sort-directories-first) + (:keymap . vertico-directory-map)))) +#+end_src + Combining these features allows us to fine-tune the completion display even more by adjusting the ~vertico-buffer-display-action~. We can for example reuse the current window for commands of the ~consult-grep~ category (~consult-grep~, diff --git a/extensions/vertico-directory.el b/extensions/vertico-directory.el index f417af0292..55c5c11f6a 100644 --- a/extensions/vertico-directory.el +++ b/extensions/vertico-directory.el @@ -28,12 +28,21 @@ ;; This package is a Vertico extension, which provides Ido-like ;; directory navigation commands. The commands can be bound in the -;; `vertico-map'. Furthermore a cleanup function for shadowed file -;; paths is provided. +;; `vertico-map'. ;; ;; (keymap-set vertico-map "RET" #'vertico-directory-enter) ;; (keymap-set vertico-map "DEL" #'vertico-directory-delete-char) ;; (keymap-set vertico-map "M-DEL" #'vertico-directory-delete-word) +;; +;; Alternatively use `vertico-directory-map' together with +;; `vertico-multiform-mode'. +;; +;; (setq vertico-multiform-categories +;; '((file (:keymap . vertico-directory-map))) +;; (vertico-multiform-mode) +;; +;; Furthermore a cleanup function for shadowed file paths is provided. +;; ;; (add-hook 'rfn-eshadow-update-overlay-hook #'vertico-directory-tidy) ;;; Code: