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?
Asked
Active
Viewed 2.1k times
18
neezer
- 703
- 2
- 7
- 18
-
4vim 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 '11 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 `: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**. – TheDudeAbides Nov 26 '19 at 16:39
2 Answers
24
Add or change the following line in ~/.vimrc:
set shell=/path/to/zsh
Andrejs Cainikovs
- 2,820
- 22
- 22
-
1This 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`. – Daniel Kats Apr 11 '17 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 '20 at 19:31
7
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
zeiky.dev
- 71
- 1
- 1