Обновление встроенного vim в Mac OS X
Я знаю, что это может быть более уместно в Ask Different, но поскольку я пытался добавлять теги там, не было тега vim
, только macvim
. Поэтому я подумал, что могу получить лучшую аудиторию здесь.
В терминале я делаю следующее
$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jan 31 2010 13:33:49)
Когда я просматриваю http://www.vim.org, я вижу новостной элемент
Vim 7.3 выпущен!
Как обновить встроенный vim? Я бы очень хотел сделать это чисто (т.е. Не дублировать установки или каких-либо дополнительных загрузок, нет macports и т.д.)
Я рассматривал использование Mercurial (поскольку я уже использовал его для других вещей), в соответствии с инструкциями здесь.
$ hg clone https://vim.googlecode.com.hg/ vim
$ cd vim/src
$ make
Но я думаю, что это сделает дубликат установки. Несмотря на мое "чистое" требование, как упоминалось выше, "нечистые" решения также приветствуются, поскольку, возможно, другого способа не существует.
Ответы
Ответ 1
Не перезаписывайте встроенный Vim.
Вместо этого установите его из источника в другом месте или через Homebrew или MacPorts в своем местоположении по умолчанию, затем добавьте эту строку в ваш .bashrc или .profile:
alias vim='/path/to/your/own/vim'
и/или измените свой $PATH
так, чтобы он смотрел на его местоположение до местоположения по умолчанию.
Лучше всего, на мой взгляд, просто загрузить последнюю версию MacVim, которая поставляется с очень полным исполняемым файлом vim и использовать его в Terminal.app так.
alias vim='/Applications/MacVim.app/Contents/MacOS/Vim' # or something like that, YMMV
Ответ 2
Если я правильно понимаю, вы хотите установить поверх своего существующего Vim, лучше или хуже:-) Это плохая идея, и это не "чистый" способ сделай это. Почему? Ну, OS X ожидает, что ничто не изменится в /usr/bin без ведома, поэтому в любое время, когда вы перезаписываете материал там, вы рискуете нарушить сложную взаимозависимость. И, пусть говорят, что вы что-то сломаете - нет способа "отменить" этот урон. Вы будете грустны и одиноки. Возможно, вам придется переустановить OS X.
Часть 1: Лучшая идея
"Чистый" способ - установить в отдельном месте и сделать новый двоичный более высокий приоритет в $PATH. Вот как я рекомендую это сделать:
$ # 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! Теперь, когда мы используем vim, мы будем использовать старый. Но, чтобы вернуться к нашей старой конфигурации в случае огромных f * ckups, мы можем просто удалить каталог /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
Посмотрите, насколько это чисто.
Я рекомендую не устанавливать в /usr/local/bin, если вы хотите переопределить двоичные файлы в /usr/bin, потому что по умолчанию OS X ставит /usr/bin более высокий приоритет в $PATH, чем /usr/local/bin, и завинчивание с этим открывает свою собственную банку червей.... Итак, что вы ДОЛЖНЫ делать.
Часть 2: "правильный" ответ (но плохая идея)
Предполагая, что вы настроены на это, вы определенно находитесь на пути. Чтобы установить поверх текущей установки, вам нужно установить каталог "префикс". Это делается следующим образом:
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
Если вы захотите, вы можете передать "configure" еще несколько вариантов. Сделайте "./configure --help", чтобы увидеть их. Надеюсь, у вас есть резервная копия, прежде чем вы это сделаете, если на что-то пойдет не так....
Ответ 3
Как и Эрик, я использовал доморощенный, но я использовал рецепт по умолчанию. Итак:
brew install mercurial
brew install vim
И после перезапуска терминала homebrew vim должен быть по умолчанию. Если нет, вы должны обновить свой $PATH
, чтобы /usr/local/bin
был до /usr/bin
. Например. добавьте следующее в .profile
:
export PATH=/usr/local/bin:$PATH
Ответ 4
Примечание для ответа romainl: псевдонимы не работают вместе с sudo, потому что только одно слово проверяется на псевдонимах. Чтобы изменить это, добавьте еще один псевдоним в ваш .profile/.bashrc:
alias sudo='sudo '
С этим изменением sudo vim
будет вести себя так, как ожидалось!
Ответ 5
В Yosemite установите vim с помощью brew
и override-system-vi
. Это автоматически установит vim с функциями "огромный" vim.
brew install vim --with-override-system-vi
Результат этой команды покажет вам, где brew установлен vim. В этой папке перейдите в /bin/vim
, чтобы запустить vim. Это ваша команда для запуска vim из любой папки:
/usr/local/Cellar/vim/7.4.873/bin/vim
Затем выполните псевдоним этой команды, добавив следующую строку в ваш .bashrc:
alias vim="/usr/local/Cellar/vim/7.4.873/bin/vim"
EDIT: флаг brew --override-system-vi
устарел. Изменено для --with-override-system-vi
. Источник: https://github.com/Shougo/neocomplete.vim/issues/401
Ответ 6
brew install vim --override-system-vi
Ответ 7
Это сообщение в блоге было полезно для меня. Я использовал решение "Homebrew built Vim", которое в моем случае сохранила новую версию в /usr/local/bin. На этом этапе сообщение предложило скрывать систему vim, которая не работала для меня, поэтому я использовал вместо нее псевдоним.
$ brew install vim
$ alias vim='/path/to/new/vim
$ which vim
vim: aliased to /path/to/new/vim