Mettre à jour vim intégré sur Mac OS X

Je sais que cela pourrait être plus approprié à Ask Different, mais comme j’ai essayé d’append des tags, il n’y avait pas de tag vim , seulement macvim . Donc j’ai pensé que je pourrais avoir un meilleur public ici.

Dans le terminal, je fais les choses suivantes

 $ vim --version VIM - Vi IMproved 7.2 (2008 Aug 9, comstackd Jan 31 2010 13:33:49) 

Lorsque je navigue sur http://www.vim.org , je vois une nouvelle

Vim 7.3 publié!

Comment puis-je mettre à jour mon vim intégré? Je voudrais beaucoup le faire proprement (c.-à-d. Pas d’installations en double, ni de téléchargements supplémentaires, pas de macports, etc.)

J’ai envisagé d’utiliser Mercurial (comme je l’utilise déjà pour d’autres choses), conformément aux instructions fournies ici .

 $ hg clone https://vim.googlecode.com.hg/ vim $ cd vim/src $ make 

Mais je pense que cela ferait une installation en double. Malgré mon exigence “propre” comme mentionné ci-dessus, les solutions “impures” sont également les bienvenues, car il n’y a peut-être pas d’autre solution.

Ne pas écraser le Vim intégré.

Au lieu de cela, installez-le depuis la source dans un emplacement différent ou via Homebrew ou MacPorts dans leur emplacement par défaut, puis ajoutez cette ligne à votre fichier .bashrc ou .profile:

 alias vim='/path/to/your/own/vim' 

et / ou modifiez votre $PATH pour qu’il se place à l’emplacement avant l’emplacement par défaut.

La meilleure chose à faire, à mon avis, est de simplement télécharger la dernière version de MacVim fournie avec un exécutable vim très complet et de l’utiliser dans Terminal.app comme ça.

 alias vim='/Applications/MacVim.app/Contents/MacOS/Vim' # or something like that, YMMV 

Si je comprends bien les choses, vous voulez installer sur votre Vim existant, pour le meilleur ou pour le pire 🙂 C’est une mauvaise idée et ce n’est pas la façon “propre” de le faire. Pourquoi? Eh bien, OS X s’attend à ce que rien ne change jamais dans / usr / bin, donc chaque fois que vous écrasez des éléments, vous risquez de rompre une interdépendance complexe. Et, disons que vous casser quelque chose – il n’y a aucun moyen de “défaire” ce dommage. Vous serez sortingste et seul. Vous devrez peut-être réinstaller OS X.

Partie 1: Une meilleure idée

La méthode “propre” consiste à installer dans un endroit distinct et à rendre la nouvelle priorité binary plus élevée dans $ PATH. Voici comment je recommande de le faire:

 $ # Create the directories you need $ sudo mkdir -p /opt/local/bin $ # Download, comstack, and install the latest Vim $ cd ~ $ hg clone https://bitbucket.org/vim-mirror/vim or git clone https://github.com/vim/vim.git $ $ cd vim $ ./configure --prefix=/opt/local $ make $ sudo make install $ # Add the binary to your path, ahead of /usr/bin $ echo 'PATH=/opt/local/bin:$PATH' >> ~/.bash_profile $ # Reload bash_profile so the changes take effect in this window $ source ~/.bash_profile 

Voila! Maintenant, quand nous utilisons vim, nous utiliserons l’ancien. Mais, pour revenir à notre ancienne configuration en cas de gros problèmes, nous pouvons simplement supprimer le répertoire / opt.

 $ which vim /opt/local/bin/vim $ vim --version | head -n 2 VIM - Vi IMproved 7.3 (2010 Aug 15, comstackd Aug 27 2011 20:55:46) MacOS X (unix) version 

Voyez comme c’est propre.

Je recommande de ne pas installer dans / usr / local / bin lorsque vous voulez remplacer les fichiers binarys dans / usr / bin, car par défaut, OS X place la priorité / usr / bin plus élevée dans $ PATH que dans / usr / local / bin et cela ouvre sa propre boîte de Pandore … Alors, c’est ce que vous devriez faire.

Partie 2: La réponse “correcte” (mais une mauvaise idée)

En supposant que vous êtes prêt à le faire, vous êtes définitivement sur la bonne voie. Pour installer sur votre installation actuelle, vous devez définir le répertoire “prefix”. C’est comme ça:

 hg clone https://bitbucket.org/vim-mirror/vim or git clone https://github.com/vim/vim.git cd vim ./configure --prefix=/usr make sudo make install 

Vous pouvez passer “configure” à quelques autres options, si vous le souhaitez. Faites “./configure –help” pour les voir. J’espère que vous avez une sauvegarde avant de le faire, cependant, si quelque chose ne va pas …

Comme Eric, j’ai utilisé l’homebrew, mais j’ai utilisé la recette par défaut. Alors:

 brew install mercurial brew install vim 

Et après avoir redémarré le terminal homebrew’s vim devrait être la valeur par défaut. Sinon, vous devriez mettre à jour votre $PATH pour que /usr/local/bin soit avant /usr/bin . Par exemple, ajoutez ce qui suit à votre .profile :

 export PATH=/usr/local/bin:$PATH 

Une note à la réponse de romainl: les alias ne fonctionnent pas avec sudo car seul le premier mot est vérifié sur les alias. Pour changer cela, ajoutez un autre alias à votre fichier .profile / .bashrc:

alias sudo='sudo '

Avec ce changement, sudo vim se comportera comme prévu!

Sur Yosemite, installez vim à l’aide de brew et de l’option override-system-vi . Cela installera automatiquement vim avec les fonctionnalités de la «grande» installation de vim .

 brew install vim --with-override-system-vi 

La sortie de cette commande vous montrera où armser installé vim. Dans ce dossier, allez dans /bin/vim pour lancer réellement vim. Ceci est votre commande pour exécuter vim à partir de n’importe quel dossier:

 /usr/local/Cellar/vim/7.4.873/bin/vim 

Ensuite, alias cette commande en ajoutant la ligne suivante dans votre .bashrc:

 alias vim="/usr/local/Cellar/vim/7.4.873/bin/vim" 

EDIT: le drapeau Brew --override-system-vi est devenu obsolète. Changé pour --with-override-system-vi . Source: https://github.com/Shougo/neocomplete.vim/issues/401

brew install vim --override-system-vi

Cet article de blog m’a été utile. J’ai utilisé la solution “Homebrew built Vim”, qui dans mon cas a enregistré la nouvelle version dans / usr / local / bin. À ce stade, le post proposait de cacher le vim du système, ce qui ne fonctionnait pas pour moi, alors j’ai utilisé un alias à la place.

 $ brew install vim $ alias vim='/path/to/new/vim $ which vim vim: aliased to /path/to/new/vim