Могу ли я указать свою оболочку для vim? Я использую OS X и установил zsh через Homebrew и использую MacVim. Когда я shellнабираю в MacVim, оболочка открывается как bash. Как я могу открыть это как zsh?
По умолчанию vim будет использовать настроенную оболочку вашей системы. Я подозреваю, что вы используете zsh где-то в вашем профиле или в вашем профиле bash. Попробуйте запустить, chshчтобы изменить вашу оболочку на вашем Mac.
Мкомитее
@mkomitee Я хотел бы, чтобы это произошло , и ванильный Vim, запущенный из терминала, прекрасно справляется с этим. Но, прямо chshскажем, у меня в качестве оболочки установлена Bash MacPorts (проверено с помощью ), но MacVim использовал, /bin/shкогда я :shвышел из игры. Я думал, что это может быть какой-то странной проблемой безопасности приложений / песочницы в последних версиях macOS, но вот этот вопрос от 2011 года .
TheDudeAbides
Ответы:
17
Добавьте или измените следующую строку в ~/.vimrc:
Это не работает для меня. Я указываю set shell=/bin/bashв ~ / .vimrc, но когда я выполняю :shellи echo $SHELLвывод типа есть /bin/zsh.
Даниэль Кац
3
Недостаточно репутации для добавления комментария, это подразумевается как ответ на комментарий @BlackSheep в принятом ответе:
Несмотря на схожий синтаксис, set shell=/bin/bashпеременная применяется не к переменным оболочки, а к переменным, которые являются внутренними по отношению к vi, поэтому вы можете запустить оболочку, даже если системная оболочка для активного пользователя не является реальной.
Также вы можете использовать :set shell=/bin/bashтогда, :shесли вы не хотите изменять~/.vimrc
chsh
чтобы изменить вашу оболочку на вашем Mac.chsh
скажем, у меня в качестве оболочки установлена Bash MacPorts (проверено с помощью ), но MacVim использовал,/bin/sh
когда я:sh
вышел из игры. Я думал, что это может быть какой-то странной проблемой безопасности приложений / песочницы в последних версиях macOS, но вот этот вопрос от 2011 года .Ответы:
Добавьте или измените следующую строку в
~/.vimrc
:источник
set shell=/bin/bash
в ~ / .vimrc, но когда я выполняю:shell
иecho $SHELL
вывод типа есть/bin/zsh
.Недостаточно репутации для добавления комментария, это подразумевается как ответ на комментарий @BlackSheep в принятом ответе:
Несмотря на схожий синтаксис,
set shell=/bin/bash
переменная применяется не к переменным оболочки, а к переменным, которые являются внутренними по отношению к vi, поэтому вы можете запустить оболочку, даже если системная оболочка для активного пользователя не является реальной.Также вы можете использовать
:set shell=/bin/bash
тогда,:sh
если вы не хотите изменять~/.vimrc
источник
:sh
работает для моего случая.