Zaktualizuj wbudowany vim na Mac OS X

Wiem, że może to być bardziej odpowiednie w Ask Different, ale gdy próbowałem dodać tam Tagi, nie było vim znacznika, tylko macvim. Więc pomyślałem, że znajdę tu lepszą publiczność.

W Terminalu wykonuję następujące czynności

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

When I browse to http://www.vim.org , widzę wiadomość

Vim 7.3 wydany!

Jak zaktualizować wbudowany vim? Bardzo bym chciał to zrobić czysto (tzn. bez duplikatów instalacji, ani żadnych dodatkowych pliki do pobrania, brak macportów itp.)

Rozważałem użycie Mercurialu (ponieważ używam go już do innych rzeczy), zgodnie z instrukcją tutaj.

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

Ale myślę, że zrobiłoby to duplikat instalacji. Pomimo mojego" czystego " wymogu, jak wspomniano powyżej," nieczyste " rozwiązania są również mile widziane, ponieważ może naprawdę nie ma innego sposobu.

 103
Author: rmoestl, 2011-08-27

7 answers

Nie nadpisuj wbudowanego Vima.

Zamiast tego, zainstaluj go ze źródła w innej lokalizacji lub przez Homebrew lub MacPorts w ich domyślnej lokalizacji, a następnie dodaj tę linię do twojego .bashrc lub .profil:

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

I / lub zmienić swoje $PATH tak, aby spojrzał na swoją lokalizację przed domyślną lokalizacją.

Najlepszą rzeczą do zrobienia, moim zdaniem, jest po prostu pobrać najnowszy MacVim, który jest wyposażony w bardzo kompletny plik wykonywalny Vima i użyć go w Terminalu.aplikacja jak więc.

alias vim='/Applications/MacVim.app/Contents/MacOS/Vim' # or something like that, YMMV
 112
Author: romainl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-16 05:23:34

Jeśli dobrze rozumiem, chcesz zainstalować na swoim istniejącym Vimie, na dobre i na złe : -) to jest zły pomysł i nie jest to "czysty" sposób, aby to zrobić.Dlaczego? Cóż, OS X oczekuje, że nic się nigdy nie zmieni w /usr/bin, więc za każdym razem, gdy nadpisujesz tam coś, ryzykujesz złamanie jakiejś skomplikowanej współzależności. Załóżmy, że coś zepsujesz. nie da się tego" cofnąć". Będziesz smutna i samotna. Być może trzeba będzie ponownie zainstalować system operacyjny X.

Część 1: lepszy pomysł

"czystym" sposobem jest instalacja w oddzielnym miejscu i nadanie nowemu binarnemu priorytetowi w $PATH. Oto jak to polecam:

$ # 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! Teraz, gdy użyjemy Vima, będziemy używać starego. Ale, aby wrócić do naszej starej konfiguracji w przypadku ogromnych f*ckups, możemy po prostu usunąć katalog / 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
Zobacz, jakie to czyste.

Zalecam, aby nie instalować w /usr / local / bin, gdy chcesz nadpisać binaria w /usr / bin, ponieważ domyślnie OS X stawia /usr / bin wyższy priorytet w $PATH niż/usr / local / bin, a wkręcanie z tym otwiera własną puszkę robaków.... Więc to właśnie powinieneś zrobić.

Część 2: "poprawna" odpowiedź (ale zły pomysł)

Zakładając, że jesteś na to nastawiony, jesteś na dobrej drodze. Aby zainstalować aktualną instalację, musisz ustawić katalog "prefix". To się robi tak:
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

Możesz przekazać "configure" kilka inne opcje też, jeśli chcesz. Do "./ configure --help", aby je zobaczyć. Mam nadzieję, że masz wsparcie, zanim to zrobisz, na wypadek, gdyby coś poszło nie tak....

 119
Author: Robert Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-29 10:19:19

Tak jak Eric, użyłem homebrew, ale użyłem domyślnego przepisu. Więc:

brew install mercurial
brew install vim

I po ponownym uruchomieniu terminala vim homebrew powinien być domyślny. Jeśli nie, należy zaktualizować $PATH tak, że /usr/local/bin jest przed /usr/bin. Np. Dodaj do swojego .profile:

export PATH=/usr/local/bin:$PATH
 47
Author: Koen.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-24 22:27:17

Uwaga na odpowiedź romainla: aliasy nie współpracują z sudo, ponieważ na aliasach sprawdzane jest tylko pierwsze słowo. Aby to zmienić, Dodaj inny alias do swojego .profil / bashrc:

alias sudo='sudo '

Z tą zmianą sudo vim będzie zachowywać się zgodnie z oczekiwaniami!

 6
Author: jayeff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-15 15:10:50

Na Yosemite zainstaluj Vima za pomocą opcji brew i override-system-vi. Spowoduje to automatyczne zainstalowanie Vima z funkcjami ' ogromnego ' Vima.

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

Wyjście tego polecenia pokaże ci, gdzie brew zainstalował Vima. W tym folderze przejdź do /bin/vim, aby uruchomić Vima. To jest twoje polecenie do uruchomienia Vima z dowolnego folderu:

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

Następnie nazwij to polecenie, dodając następujący wiersz w Twoim .bashrc:

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

EDIT: Flaga Brew --override-system-vi została deprecated. Zmieniono na --with-override-system-vi. Źródło: https://github.com/Shougo/neocomplete.vim/issues/401

 6
Author: Private,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-02 10:25:28

brew install vim --override-system-vi

 1
Author: Toothrot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-18 19:11:45

Ten wpis na blogu był dla mnie pomocny. Użyłem rozwiązania "Homebrew built Vim", które w moim przypadku zapisało nową wersję w /usr / local / bin. W tym momencie post zasugerował ukrycie systemowego Vima, który nie działał dla mnie, więc użyłem aliasu.

$ brew install vim
$ alias vim='/path/to/new/vim
$ which vim
vim: aliased to /path/to/new/vim
 1
Author: kkelleey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-30 16:46:10