How to specify shell for vim?
17,029
Solution 1
Add or change the following line in ~/.vimrc
:
set shell=/path/to/zsh
Solution 2
Not enough reputation for adding a comment, this is meant as a response to @BlackSheep comment in the accepted answer:
Despite the similar syntax, the set shell=/bin/bash
does not apply to shell variables, but to variables that are internal to vi, so you can run a shell even if the system's shell for the active user is not a real one.
Also you can use :set shell=/bin/bash
then :sh
if you don't want to modify ~/.vimrc
Related videos on Youtube
Comments
-
neezer over 1 year
Can I specify my shell for vim? I'm running OS X and have zsh installed via Homebrew and am using MacVim. When I type
shell
in MacVim, the shell opens up asbash
. How can I have it open aszsh
?-
mkomitee almost 13 yearsvim will by default use your system configured shell. I suspect you're running zsh somewhere in your profile or your bash profile. Try running
chsh
to change your shell on your mac. -
TheDudeAbides over 4 years@mkomitee I wish it did, and vanilla Vim, run from a terminal, does just fine with that. But straight-up, I have MacPorts' Bash set as my shell (verified with
chsh
), yet MacVim was using/bin/sh
when I:sh
elled out. I thought it could be some weird app security / sandboxing thing with recent versions of macOS, but here is this question from 2011.
-
-
Daniel Kats about 7 yearsThis doesn't work for me. I specify
set shell=/bin/bash
in ~/.vimrc, but when I execute:shell
and typeecho $SHELL
output is/bin/zsh
. -
elquimista over 5 years
:sh
works for my case. -
ikegami almost 4 years@Daniel Kats, The
SHELL
env var doesn't indicate what shell is being used; it specifies what shell to use for interactive shells.