#+title: Completion: Vertico, Consult, Embark #+date: [2024-06-10 Mon] #+filetags: :emacs:completion: #+identifier: 20240610T160000 * The modern completion stack The recommended combination for Emacs 29+: | Package | Role | |------------+-------------------------------------------| | Vertico | Vertical minibuffer completion UI | | Orderless | Space-separated fuzzy matching | | Marginalia | Annotations in the minibuffer | | Consult | Enhanced commands (search, buffer switch) | | Embark | Act on completion candidates | * Setup #+begin_src emacs-lisp (use-package vertico :init (vertico-mode)) (use-package orderless :config (setq completion-styles '(orderless basic))) (use-package marginalia :init (marginalia-mode)) (use-package consult :bind (("C-s" . consult-line) ("C-x b" . consult-buffer) ("M-g g" . consult-goto-line))) (use-package embark :bind (("C-." . embark-act) ("C-;" . embark-dwim))) #+end_src * Key workflows - =C-s= searches the current buffer with live preview. - =C-x b= switches buffers with file preview. - =C-.= on any candidate opens a contextual action menu.