;; 2023-08-29 ;; minibuffer keybindings ;; from emacs 29.1, minibuffer.el ;;; Key bindings. (let ((map minibuffer-local-map)) (define-key map "\C-g" 'abort-minibuffers) (define-key map "\M-<" 'minibuffer-beginning-of-buffer) ;; Put RET last so that it is shown in doc strings in preference to ;; C-j, when using the \\[exit-minibuffer] notation. (define-key map "\n" 'exit-minibuffer) (define-key map "\r" 'exit-minibuffer)) (defvar-keymap minibuffer-local-completion-map :doc "Local keymap for minibuffer input with completion." :parent minibuffer-local-map "TAB" #'minibuffer-complete "" #'minibuffer-complete ;; M-TAB is already abused for many other purposes, so we should find ;; another binding for it. ;; "M-TAB" #'minibuffer-force-complete "SPC" #'minibuffer-complete-word "?" #'minibuffer-completion-help "" #'switch-to-completions "M-v" #'switch-to-completions "M-g M-c" #'switch-to-completions "M-" #'minibuffer-previous-completion "M-" #'minibuffer-next-completion "M-RET" #'minibuffer-choose-completion) (defvar-keymap minibuffer-local-must-match-map :doc "Local keymap for minibuffer input with completion, for exact match." :parent minibuffer-local-completion-map "RET" #'minibuffer-complete-and-exit "C-j" #'minibuffer-complete-and-exit) (defvar-keymap minibuffer-local-filename-completion-map :doc "Local keymap for minibuffer input with completion for filenames. Gets combined either with `minibuffer-local-completion-map' or with `minibuffer-local-must-match-map'." "SPC" nil) (defvar-keymap minibuffer-local-ns-map :doc "Local keymap for the minibuffer when spaces are not allowed." :parent minibuffer-local-map "SPC" #'exit-minibuffer "TAB" #'exit-minibuffer "?" #'self-insert-and-exit)