web-dev-qa-db-fra.com

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

Je sais que cela pourrait être plus approprié chez Ask Different, mais comme j'ai essayé d'ajouter des balises, il n'y avait pas de balise vim, seulement macvim. J'ai donc pensé que je pourrais avoir un meilleur public ici.

Dans le terminal, je fais ce qui suit

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

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

Vim 7.3 publié!

Comment mettre à jour mon vim intégré? J'aimerais beaucoup le faire proprement (c'est-à-dire, aucune installation en double, aucun téléchargement supplémentaire, aucun macport, etc.)

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

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

Mais je pense que cela ferait une installation en double. En dépit de mon exigence "propre" mentionnée ci-dessus, les solutions "impures" sont également les bienvenues, car peut-être n'y a-t-il pas d'autre moyen.

105
Kit

Ne pas écraser le Vim intégré.

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

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

et/ou changez votre $PATH afin qu’il vérifie son emplacement avant l’emplacement par défaut.

La meilleure chose à faire, à mon avis, est simplement de télécharger le dernier MacVim, livré avec un exécutable très complet, et de l’utiliser dans Terminal.app.

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

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 c'est pas la manière «propre» de le faire. Pourquoi? Eh bien, OS X s'attend à ce que rien ne change jamais dans/usr/bin à l'insu de lui, donc chaque fois que vous écrasez des éléments, vous risquez de casser une interdépendance complexe. Et, disons que vous cassez quelque chose - il n'y a aucun moyen de "réparer" ces dégâts. Tu seras triste et seul. Vous devrez peut-être réinstaller OS X.

Partie 1: Une meilleure idée

La méthode "propre" consiste à installer à un endroit distinct et à donner au nouveau chemin binaire une priorité plus élevée dans le $ PATH. Voici comment je recommande de faire cela:

$ # Create the directories you need
$ Sudo mkdir -p /opt/local/bin
$ # Download, compile, 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, lorsque nous utiliserons vim, nous utiliserons le nouveau. Mais, pour revenir à notre ancienne configuration en cas d’énormes f * ckups, 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, compiled 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 souhaitez remplacer les fichiers binaires de/usr/bin, car par défaut, OS X donne à/usr/bin une priorité plus élevée dans $ PATH que/usr/local/bin et que 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 soyez prêt à le faire, vous êtes définitivement sur la bonne voie. Pour installer au-dessus de votre installation actuelle, vous devez définir le répertoire "prefix". C'est fait 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 également passer "configurer" quelques autres options, si vous le souhaitez. Faites "./configure --help" pour les voir. J'espère que vous avez une copie de sauvegarde avant de le faire, cependant, en cas de problème ...

123
Robert Martin

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 le redémarrage du terminal, vim de homebrew 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
49
Koen.

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 .profile/.bashrc:

alias Sudo='Sudo '

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

7
jayeff

Sur Yosemite, installez vim en utilisant brew et l’option override-system-vi. Cela installera automatiquement vim avec les fonctionnalités de 'énorme' vim install.

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

La sortie de cette commande vous montrera où vim a été installé. Dans ce dossier, descendez dans /bin/vim pour exécuter vim. Ceci est votre commande pour exécuter vim depuis n'importe quel dossier:

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

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

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

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

6
Private

Cet article de blog m'a été utile. J'ai utilisé la solution "Homebrew built Vim" qui, dans mon cas, a sauvegardé la nouvelle version dans/usr/local/bin. À ce stade, le message suggérait de cacher le système vim, ce qui ne fonctionnait pas pour moi. J'ai donc utilisé un alias.

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

brew install vim --override-system-vi

1
Toothrot

Je viens d'installer vim par:

brew install vim

maintenant le nouveau vim est accessible par vim et l'ancien vim (vim intégré) par vi

0
MIA