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:

Reply via email to