(use-package multi-vterm :ensure t :after (consult) :config (setq vterm-source `(:name "VTerm Buffer" :category buffer :narrow ?t :face 'consult-buffer :action ,#'consult--buffer-action :items (lambda () (mapcar #'buffer-name (seq-filter (lambda (x) (eq (buffer-local-value 'major-mode x) 'vterm-mode)) (buffer-list)))))) (setq consult-vterm-buffer-sources (list `(:hidden nil :narrow ?t ,@vterm-source))) (setq vterm-max-scrollback 100000) (defun consult-vterm-buffer () "Switch to a vterm buffer" (interactive) (consult-buffer consult-vterm-buffer-sources)) (bind-key "C-x b" 'consult-vterm-buffer vterm-mode-map) (add-to-list 'consult-buffer-sources 'vterm-source 'append) (add-hook 'vterm-mode-hook 'goto-address-mode) )