Rudy’s OBTF Rudolf Adamkovič

Home / Emacs / Project


Integrate with Vterm

Make C-x p [p..] t launch, or switch to, an in-project Vterm buffer.

(defun my-project-vterm ()
  "Start Vterm in the current project's root directory.
Modeled after `project-eshell', which see."
  (interactive)
  (defvar vterm-buffer-name)
  (let* ((default-directory (project-root (project-current t)))
         (vterm-buffer-name (project-prefixed-buffer-name "vterm"))
         (vterm-buffer (get-buffer vterm-buffer-name)))
    (if (and vterm-buffer (not current-prefix-arg))
        (pop-to-buffer-same-window vterm-buffer)
      (vterm t))))
(with-eval-after-load 'project
  (keymap-set project-prefix-map "t" #'my-project-vterm))

© 2025 Rudolf Adamkovič under GNU General Public License version 3.
Made with Emacs and secret alien technologies of yesteryear.