2015-10-24 6 views
8

Ich sehe etwas sehr merkwürdig, und ehrlich gesagt bin ich ratlos.Apples Vim verwendet immer anstelle von Homebrew

Die Version von vim, die mit Mac kommt, ist veraltet (7.3 statt 7.4). Ich versuche, Vim von Homebrew zu installieren, und ich möchte diesen statt der Standard-Apple-Version verwenden.

Ich lief "brew install vim". Es wurde korrekt in /usr/local/bin/vim installiert. Alles gut.

Wenn ich "which vim" starte, druckt es "/usr/local/bin/vim". Die Apple-Version von vim ist unter /usr/bin/vim installiert. Der Befehl sagt mir, dass ich die Homebrew-Version von vim verwende.

Allerdings, wenn ich vim tatsächlich laufen, es läuft immer noch die Apple-Version

$ vim --version 
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul 9 2015 23:58:42) 
Compiled by [email protected] 
... 

Wenn ich die Homebrew-Version explizit ausgeführt, sehe ich:

$ /usr/local/bin/vim --version 
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 23 2015 18:16:35) 
MacOS X (unix) version 
Included patches: 1-898 
Compiled by Homebrew 
... 

Ich habe sogar versucht /usr/bin/vim zu bewegen /usr/bin/vim73 versuchen, die Verwendung der Homebrew-Version erzwingen. Aber wenn ich das tat, hier ist, was ich sehe, wenn ich versuche, vim zu starten:

$ vim --version 
-bash: /usr/bin/vim: No such file or directory 
$ 

Was ist los? Wie kann ich die Homebrew-Version von vim ausführen?

+0

Haben Sie einen Alias? Verwenden Sie 'type' anstelle von' which', um zu überprüfen. In der Bash ist 'which' keine eingebaute Shell, sondern' type' ist. – janm

+0

Das andere offensichtliche Problem ist die Hash-Tabelle, wenn Sie Ihre Shell nicht neu gestartet haben: 'hash -l' zeigt den Inhalt der Hash-Tabelle in bash an. – janm

+0

Ah danke! Wenn ich "type vim" eintippe, sehe ich "vim is hashed (/ usr/bin/vim)". Wenn ich "hash -l" eintippe, sehe ich vim in der Liste. – kgreenek

Antwort

15
eine neue Shell-Sitzung starten

und es wird funktionieren.

Bash speichert die Pfade der ausführbaren Dateien, so dass Sie vimPATH ausführen, um die erste ausführbare Datei mit diesem Namen zu finden. Es speichert es und das zweite Mal, dass Sie vim ausführen erinnert es vim ist eigentlich /usr/bin/vim und führen Sie das.

Da Sie Ihre Bash-Sitzung nicht neu gestartet haben, ist ihr Cache immer noch derselbe; daher der Fehler, den Sie sehen. Es hat nichts damit zu tun, wie Sie vim installiert haben.

+0

Dies löste es für mich. Danke @bfontaine - du bist der echte MVP. – jhliberty

+0

Perfekt. Genau was ich brauchte, um meine vim + Zwischenablage auf OSX zu reparieren! – Dan

2

Sie haben vergessen, ein Argument:

$ brew install vim --override-system-vi 
+0

Diese Option existiert nicht. – bfontaine

+0

@bfontaine, ja es tut: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/vim.rb#L14. Entschuldigung für den Tippfehler. – romainl

+0

Ich glaube nicht, dass es nicht das tut, was Sie denken. '--override-system-vi' lässt die Formel eine' vi' Binärdatei installieren, die ein Symlink zu 'vim' ist. Technisch überschreibt es nichts; Wir sollten es wahrscheinlich umbenennen: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/vim.rb # L99 – bfontaine