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
    Commented 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.
    – Kevin E
    Commented 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. Commented 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
    Commented 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
    Commented Sep 2, 2018 at 20:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .