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

Share:
17,029

Related videos on Youtube

neezer
Author by

neezer

Gotta love learning!

Updated on September 18, 2022

Comments

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

    • mkomitee
      mkomitee almost 13 years
      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.
    • TheDudeAbides
      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 :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.
  • Daniel Kats
    Daniel Kats about 7 years
    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.
  • elquimista
    elquimista over 5 years
    :sh works for my case.
  • ikegami
    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.