Puis-je spécifier mon shell pour vim? J'utilise OS X et ai zsh installé via Homebrew et j'utilise MacVim. Lorsque je tape shelldans MacVim, le shell s'ouvre en tant que bash. Comment puis-je l'ouvrir comme zsh?
vim utilisera par défaut votre shell configuré par le système. Je soupçonne que vous exécutez zsh quelque part dans votre profil ou votre profil bash. Essayez de courir chshpour changer votre shell sur votre mac.
mkomitee
@mkomitee Je souhaite que ce soit le cas , et vanilla Vim, exécuté à partir d'un terminal, s'en sort très bien. Mais tout de suite, j'ai Bash de MacPorts défini comme mon shell (vérifié avec chsh), mais MacVim utilisait /bin/shquand je me suis :shexclu. Je pensais que cela pourrait être quelque chose de sécurité / sandboxing bizarre avec les versions récentes de macOS, mais voici cette question de 2011 .
TheDudeAbides
Réponses:
17
Ajoutez ou modifiez la ligne suivante dans ~/.vimrc:
Ça ne marche pas pour moi. Je spécifie set shell=/bin/bashdans ~ / .vimrc, mais lorsque j'exécute et que je :shelltape la echo $SHELLsortie, c'est /bin/zsh.
Daniel Kats
3
Pas assez de réputation pour ajouter un commentaire, cela se veut une réponse au commentaire @BlackSheep dans la réponse acceptée:
Malgré la syntaxe similaire, le set shell=/bin/bashne s'applique pas aux variables shell, mais aux variables internes à vi, vous pouvez donc exécuter un shell même si le shell du système pour l'utilisateur actif n'est pas réel.
Vous pouvez également utiliser :set shell=/bin/bashensuite :shsi vous ne souhaitez pas modifier~/.vimrc
chsh
pour changer votre shell sur votre mac.chsh
), mais MacVim utilisait/bin/sh
quand je me suis:sh
exclu. Je pensais que cela pourrait être quelque chose de sécurité / sandboxing bizarre avec les versions récentes de macOS, mais voici cette question de 2011 .Réponses:
Ajoutez ou modifiez la ligne suivante dans
~/.vimrc
:la source
set shell=/bin/bash
dans ~ / .vimrc, mais lorsque j'exécute et que je:shell
tape laecho $SHELL
sortie, c'est/bin/zsh
.Pas assez de réputation pour ajouter un commentaire, cela se veut une réponse au commentaire @BlackSheep dans la réponse acceptée:
Malgré la syntaxe similaire, le
set shell=/bin/bash
ne s'applique pas aux variables shell, mais aux variables internes à vi, vous pouvez donc exécuter un shell même si le shell du système pour l'utilisateur actif n'est pas réel.Vous pouvez également utiliser
:set shell=/bin/bash
ensuite:sh
si vous ne souhaitez pas modifier~/.vimrc
la source
:sh
fonctionne pour mon cas.