it-swarm.com.de

Aktualisieren Sie die integrierte Version von Mac OS X

Ich weiß, dass dies bei Ask Different möglicherweise angemessener ist, aber als ich dort Tags hinzugefügt habe, gab es keinen vim-Tag, nur macvim. Ich dachte mir, ich könnte hier ein besseres Publikum finden.

Im Terminal mache ich Folgendes

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

Wenn ich zu http://www.vim.org browse, sehe ich eine Nachricht

Vim 7.3 veröffentlicht!

Wie aktualisiere ich mein integriertes vim? Ich würde es sehr gerne sauber machen (d. H. Keine doppelten Installationen oder zusätzliche Downloads, keine Macports usw.).

Ich habe in Erwägung gezogen, Mercurial zu verwenden (da ich es bereits für andere Dinge benutze), gemäß den Anweisungen hier .

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

Aber ich denke, das würde eine doppelte Installation ergeben. Trotz meiner oben genannten "sauberen" Anforderung sind auch "unreine" Lösungen willkommen, da es vielleicht keinen anderen Weg gibt.

105
Kit

Überschreiben Sie nicht das eingebaute Vim.

Installieren Sie es stattdessen von der Quelle an einem anderen Ort oder über Homebrew oder MacPorts an ihrem Standardspeicherort und fügen Sie diese Zeile zu Ihrem .bashrc oder .profile hinzu:

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

und/oder ändern Sie Ihren $PATH so, dass er vor dem Standardspeicherort in seinen Speicherort sieht.

Meiner Meinung nach ist es das Beste, einfach das neueste MacVim herunterzuladen, das mit einer sehr vollständigen vim-Programmdatei geliefert wird, und es in Terminal.app zu verwenden.

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

Wenn ich die Dinge richtig verstehe, willst du über deinen bestehenden Vim installieren, zum Guten oder Schlechteren :-) Dies ist ein schlechte Idee und es ist nicht der "saubere" Weg, es zu tun. Warum? Nun, OS X erwartet, dass sich in/usr/bin nichts ändert, ohne dass es bekannt ist. Wenn Sie also Sachen dort überschreiben, riskieren Sie, eine komplizierte Interdependenz zu brechen. Nehmen wir an, Sie brechen etwas - es gibt keine Möglichkeit, diesen Schaden "rückgängig zu machen". Du wirst traurig und allein sein. Möglicherweise müssen Sie OS X erneut installieren.

Teil 1: Eine bessere Idee

Der "saubere" Weg ist, an einem anderen Ort zu installieren und die neue Binärdatei in $ PATH mit höherer Priorität zu versehen. So empfehle ich das:

$ # 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! Wenn wir nun vim verwenden, werden wir das neue verwenden. Um jedoch bei sehr großen Fehlern zu unserer alten Konfiguration zurückzukehren, können Sie einfach das Verzeichnis/opt löschen.

$ 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

Sehen Sie, wie sauber das ist.

Ich empfehle die Installation in/usr/local/bin nicht, wenn Sie Binärdateien in/usr/bin überschreiben möchten, da OS X standardmäßig/usr/bin in $ PATH höhere Priorität einnimmt als/usr/local/bin und das Verschrauben mit das öffnet seine eigene Wurmdose ... Also, das tun Sie SOLL.

Teil 2: Die "richtige" Antwort (aber eine schlechte Idee)

Vorausgesetzt, Sie sind bereit, das zu tun, sind Sie definitiv auf Kurs. Um die Installation über Ihrer aktuellen Installation zu installieren, müssen Sie das "Präfix" -Verzeichnis festlegen. Das geht so:

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

Wenn Sie möchten, können Sie auch einige andere Optionen "configure" übergeben. Machen Sie "./configure --help", um sie anzuzeigen. Ich hoffe, dass Sie eine Sicherung haben, bevor Sie es tun, falls etwas schief geht.

123
Robert Martin

Wie Eric habe ich Homebrew verwendet, aber ich habe das Standardrezept verwendet. So:

brew install Mercurial
brew install vim

Nach dem Neustart des Terminal-Homebrews sollte vim der Standard sein. Wenn nicht, sollten Sie Ihren $PATH so aktualisieren, dass /usr/local/bin vor /usr/bin steht. Z.B. füge folgendes zu deinem .profile hinzu: 

export PATH=/usr/local/bin:$PATH
49
Koen.

Anmerkung zur Antwort von romainl: Aliase funktionieren nicht mit Sudo zusammen, da nur das erste Wort auf Aliase geprüft wird. Um dies zu ändern, fügen Sie einen anderen Alias ​​zu Ihrem .profile/.bashrc hinzu:

alias Sudo='Sudo '

Mit dieser Änderung wird sich Sudo vim wie erwartet verhalten!

7
jayeff

Installieren Sie auf Yosemite vim mithilfe von brew und der Option override-system-vi. Dadurch wird vim automatisch mit den Funktionen von 'huge' vim install installiert.

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

Die Ausgabe dieses Befehls zeigt Ihnen, wo brew vim installiert wurde. Gehen Sie in diesem Ordner in /bin/vim, um vim tatsächlich auszuführen. Dies ist Ihr Befehl, um vim von einem beliebigen Ordner aus auszuführen:

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

Dann geben Sie diesem Befehl einen Alias ​​an, indem Sie die folgende Zeile in Ihre .bashrc einfügen:

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

BEARBEITEN: Das Brew-Flag --override-system-vi ist veraltet. Geändert für --with-override-system-vi. Quelle: https://github.com/Shougo/neocomplete.vim/issues/401

6
Private

Dieser Blogbeitrag war hilfreich für mich. Ich habe die Lösung "Homebrew built Vim" verwendet, die in meinem Fall die neue Version in/usr/local/bin gespeichert hat. An diesem Punkt schlug der Post vor, das System vim zu verbergen, was für mich nicht funktionierte, deshalb verwendete ich stattdessen einen 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

Ich habe gerade vim installiert von:

brew install vim

auf das neue Vim wird jetzt von vim und das alte Vim (eingebaute Vim) von vi zugegriffen.

0
MIA