I have two eshell buffers: esh1 and esh2.

In esh1, I want to use a particular Node version, say 6.0.0. In esh2, I want to use a different Node version, say 8.0.0.

Using a node version manager called 'n', I check the versions in both eshells. They're both 6.0.0.

So I go to esh2 and n 8.0.0 which will change the working version of node. I check to ensure it's been updated.

However, when I go to esh1, it now also has version 8.0.0.

So it appears that eshell saves variables across all instances. This seems to support that: https://www.gnu.org/software/emacs/manual/html_node/eshell/Variables.html

Are there any work arounds for this?

Note 1: I haven't tried other version managers, like nvm, or rvm (for ruby), because I've had issues using them with eshell, but my guess is that I'd see the same problem. If I can get them working with eshell, I'll edit to confirm.

Note 2: I'm not interested in solutions like use "shell", "ansi-term", or "iterm".

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.