How to setup emacs tramp to open remote files while local shell is fish? More precisely is how to ask tramp to use bash shell instead of one named in SHELL environment variable?

  • 1
    Why do you want to use another shell? Tramp is also able to cooperate with the fish shell; see the Tramp manual for setup hints. – Michael Albinus Jun 9 '17 at 8:42

Not sure if I understand your question correct, but you can set the variable explicit-shell-file-name to "bash".


explicit-shell-file-name's value is nil

If non-nil, is file name to use for explicitly requested inferior shell.

The answer referring to explicit-shell-file-name is incorrect. Tramp invokes the copy command locally (for those tramp methods that use this mechanism) By calling start-process-shell-command with shell-file-name as the shell.

That variable is initialised from the environment Emacs is started from, so will usually be the user's login shell.

You can customize this variable to "/bin/sh" to get tramp (and no doubt other Emacs packages) to work as expected.

  • Please replace "the answer above" by a link to the answer or some better description of it. Answers change locations - "above" means nothing. – Drew Jul 5 '18 at 22:32

Your Answer

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

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