110 votos

Actualizar vim incorporado en Mac OS X

Sé que esto podría ser más apropiado para hacer Diferentes, pero como he intentado añadir etiquetas allí, no había vim etiqueta, sólo macvim. Así que pensé que podría conseguir una mejor audiencia aquí.

En la Terminal, hago lo siguiente

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

Cuando me vaya a http://www.vim.orgyo veo una noticia

Vim 7.3 lanzado!

¿Cómo puedo actualizar mi construido-en vim? Me gustaría mucho hacerlo de forma limpia (es decir, sin duplicar las instalaciones, o cualquier otras descargas, no macports, etc.)

He pensado en usar Mercurial (como yo ya lo use para otras cosas), como por las instrucciones aquí.

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

Pero creo que hacer un duplicado de la instalación. A pesar de mi "limpio" requisito como se mencionó anteriormente, "inmundo" soluciones también son bienvenidos, ya que tal vez no hay otra manera.

126voto

Robert Martin Puntos 5480

Si entiendo las cosas correctamente, que desea instalar encima de lo que ya Vim, para bien o para mal :-) Esta es una mala idea y es que no la forma "limpia" para hacerlo. Por qué? Bueno, OS X espera de que nada va a cambiar en /usr/bin sin saberlo, así que en cualquier momento se sobrescribe cosas allí se arriesga a romper algunos intrincados de la interdependencia. Y, digamos que si se rompe algo, no hay manera de "deshacer" que daño. Usted va a estar triste y solo. Puede que tenga que volver a instalar OS X.

Parte 1: Una mejor idea

La forma "limpia" es para instalar en un lugar separado, y hacer que el nuevo binario de mayor prioridad en el $PATH. Aquí es cómo yo recomiendo hacer eso:

$ # Create the directories you need
$ sudo mkdir -p /opt/local/bin
$ # Download, compile, and install the latest Vim
$ cd ~
$ hg clone https://code.google.com/p/vim/
$ 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! Ahora, cuando hacemos uso de vim, estaremos utilizando el viejo. Pero, para volver a nuestra antigua configuración en el caso de la gran f*ckups, podemos borrar el directorio /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

A ver cómo limpiar esto es.

Recomiendo no instalar en /usr/local/bin cuando se desea reemplazar los archivos binarios en /usr/bin, porque por defecto de OS X pone /usr/bin mayor prioridad en el $PATH que /usr/local/bin, y atornillar con que se abre su propia lata de gusanos.... Así que, eso es lo que DEBE hacer.

Parte 2: La respuesta "correcta" (pero una mala idea)

Suponiendo que usted está listo para hacer eso, usted está definitivamente en el camino. Para instalar en la parte superior de su instalación actual, es necesario establecer el "prefijo" directorio. Que se hace así:

hg clone https://code.google.com/p/vim/
cd vim
./configure --prefix=/usr
make
sudo make install

Usted puede pasar "configurar" un par de otras opciones también, si quieres. Hacer "./configure --help" para ver. Tengo la esperanza de que tienes una copia de seguridad antes de hacerlo, a pesar de que, en caso de que algo va mal....

119voto

romainl Puntos 55506

No sobrescribir la incorporada en el Vim.

En su lugar, instalar desde el código fuente en una ubicación diferente o a través de Homebrew o MacPorts en su ubicación predeterminada, a continuación, añadir esta línea a su .bashrc o .perfil:

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

y/o cambiar su $PATH por lo que se ve en su ubicación antes de la ubicación predeterminada.

La mejor cosa a hacer, en mi opinión, es simplemente para descargar la última MacVim que viene con una muy completa vim ejecutable y utilizarlo en la Terminal.la aplicación como tal.

alias vim='/Applications/MacVim.app/Content/MacOS/vim' # or something like that, YMMV

51voto

Koen. Puntos 3570

Como Eric, usé homebrew, pero usé la receta por defecto. Así que:

brew install mercurial
brew install vim

Y después de reiniciar vim del homebrew terminal debe ser el valor predeterminado. Si no, deberá actualizar su $PATH para que /usr/local/bin antes de /usr/bin . Por ejemplo, agregue lo siguiente a tu .profile :

export PATH=/usr/local/bin:$PATH

7voto

jayeff Puntos 476

Una nota de respuesta de romainl: alias no funcionan junto con sudo porque sólo la primera palabra es revisada el alias. Para cambiar esto añadir otro alias a tu .profile / bashrc:

alias sudo='sudo '

Con este cambio sudo vim se comporta como se esperaba.

0voto

Eric Brotto Puntos 11383

Esta solución simple trabajó para mí. Aunque puede que necesites instalar Homebrew para luego instalar Mercurial previamente.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X