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 as bash. How can I have it open as zsh?

  • 4
    vim 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.
    – mkomitee
    May 29, 2011 at 18:19
  • @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 :shelled out. I thought it could be some weird app security / sandboxing thing with recent versions of macOS, but here is this question from 2011. Nov 26, 2019 at 16:39

2 Answers 2


Add or change the following line in ~/.vimrc:

set shell=/path/to/zsh
  • 1
    This doesn't work for me. I specify set shell=/bin/bash in ~/.vimrc, but when I execute :shell and type echo $SHELL output is /bin/zsh. Apr 11, 2017 at 23:32
  • 2
    @Daniel Kats, The SHELL env var doesn't indicate what shell is being used; it specifies what shell to use for interactive shells.
    – ikegami
    Jun 27, 2020 at 19:31

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

  • :sh works for my case.
    – elquimista
    Sep 2, 2018 at 20:55

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.