Kann ich meine Shell für vim angeben? Ich verwende OS X und habe zsh über Homebrew installiert und verwende MacVim. Wenn ich shellMacVim eingebe, wird die Shell als geöffnet bash. Wie kann ich es als geöffnet haben zsh?
vim verwendet standardmäßig die vom System konfigurierte Shell. Ich vermute, Sie führen zsh irgendwo in Ihrem Profil oder Ihrem Bash-Profil aus. Versuchen Sie zu laufen chsh, um Ihre Shell auf Ihrem Mac zu ändern.
mkomitee
@mkomitee Ich wünschte, es wäre so , und Vanilla Vim, die von einem Terminal aus läuft, macht das ganz gut. Aber auf Anhieb habe ich MacPorts 'Bash als meine Shell festgelegt (verifiziert mit chsh), aber MacVim hat es verwendet, /bin/shals ich :shausfiel. Ich dachte, es könnte eine seltsame Sache mit App-Sicherheit / Sandboxing mit neueren Versionen von macOS sein, aber hier ist diese Frage aus dem Jahr 2011 .
TheDudeAbides
Antworten:
17
Fügen Sie die folgende Zeile hinzu oder ändern Sie sie ~/.vimrc:
Das funktioniert bei mir nicht. Ich set shell=/bin/bashgebe in ~ / .vimrc an, aber wenn ich die Ausgabe ausführe :shellund tippe, echo $SHELList /bin/zsh.
Daniel Kats
3
Der Ruf, einen Kommentar hinzuzufügen, reicht nicht aus. Dies ist als Antwort auf den @ BlackSheep-Kommentar in der akzeptierten Antwort gedacht:
Trotz der ähnlichen Syntax gilt set shell=/bin/bashdies nicht für Shell-Variablen, sondern für Variablen, die innerhalb von vi liegen, sodass Sie eine Shell ausführen können, auch wenn die Shell des Systems für den aktiven Benutzer keine echte ist.
Sie können :set shell=/bin/bashdann auch verwenden, :shwenn Sie nicht ändern möchten~/.vimrc
chsh
, um Ihre Shell auf Ihrem Mac zu ändern.chsh
), aber MacVim hat es verwendet,/bin/sh
als ich:sh
ausfiel. Ich dachte, es könnte eine seltsame Sache mit App-Sicherheit / Sandboxing mit neueren Versionen von macOS sein, aber hier ist diese Frage aus dem Jahr 2011 .Antworten:
Fügen Sie die folgende Zeile hinzu oder ändern Sie sie
~/.vimrc
:quelle
set shell=/bin/bash
gebe in ~ / .vimrc an, aber wenn ich die Ausgabe ausführe:shell
und tippe,echo $SHELL
ist/bin/zsh
.Der Ruf, einen Kommentar hinzuzufügen, reicht nicht aus. Dies ist als Antwort auf den @ BlackSheep-Kommentar in der akzeptierten Antwort gedacht:
Trotz der ähnlichen Syntax gilt
set shell=/bin/bash
dies nicht für Shell-Variablen, sondern für Variablen, die innerhalb von vi liegen, sodass Sie eine Shell ausführen können, auch wenn die Shell des Systems für den aktiven Benutzer keine echte ist.Sie können
:set shell=/bin/bash
dann auch verwenden,:sh
wenn Sie nicht ändern möchten~/.vimrc
quelle
:sh
funktioniert für meinen Fall.