I use Emacs’ builtin project management and really like it, but am also a vterm user and would like this to be the shell that opens when I run project-shell. Is there a way to set this, or else would someone be able to provide an alternative bit of elisp that will do the trick?

1 Answer 1


Not without editing the source. If you look at the definition of project-shell in project.el you will see that it calls the shell function. The shell function starts shells, not vterms. If you look a few lines down you will find the project-eshell function, which calls eshell instead. eshell doesn’t start vterms either, but you should be able to recognize the pattern

Perhaps you should write a project-vterm function and add it to your init file. Make it call vterm for you, with the working directory set to the root directory of the project that the current buffer is in (you’ll see that the other two functions call (project-root (current-project t)) to find out what that directory is, so presumably you would do the same).

Once you’ve done that, consider sending it off to the emacs-devel mailing list as an enhancement to be included in future releases.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.