¿La mejor manera de hacer que el vim de MacVim (consola, no mvim) sea el predeterminado en lugar del vim de Mac OS X?


101

Instalé MacVim usando homebrew. ( brew install macvim) Si llamo mvimdesde cmd, se abre la GUI MacVim.

Me gustaría vimllamar al Vim ( /Users/user/Applications/MacVim.app/Contents/MacOS/Vim) de MacVim en lugar del /usr/bin/vimvim del sistema ( ). ¿Cuál es la mejor manera de hacerlo? Sé que puedo hacer un alias vim="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim"pero no sé si es el mejor enfoque ...

EDITAR : Chicos, gracias por todas sus respuestas, pero de hecho, como ya estoy usando homebrew, usar esta --override-system-vimes la forma elegante de lograr lo que necesito.


¿Cuál es la diferencia entre la consola vim de MacVim y solo vim regular en Terminal?
hobbes3

2
@ hobbes3, el vim que se incluye con osx no tiene soporte para ruby ​​o python compilado. El vim de MacVim sí. Lo cual es necesario si desea usar complementos como Command-T
asgeo1

El vim que se incluye con OS X tampoco es compatible con el portapapeles.
Thanatos

Respuestas:


136

Creo que esto es lo que estás buscando:

brew install macvim --with-override-system-vim

Esto creará enlaces simbólicos vim, vimdiff, etc. a mvim en / usr / local / bin / vim, y mientras / usr / local / bin esté antes de / usr / bin en su RUTA, obtendrá los resultados. que estas buscando.

Las versiones anteriores de brew usaban el interruptor --override-system-vimque estaba en desuso.


3
Como dije que ya estoy usando homebrew, creo que esta es la mejor opción: no sabía que esta opción era posible. ¡Gracias!
Alguien todavía te usa MS-DOS el

2
Técnicamente, esta es una joya escondida en la fórmula vim, en lugar de la cerveza casera. :)
kejadlen

Me pregunto, ¿qué pasa si hago una preparación para eliminar macvim, eliminará eso macvim y dejará el vim original? ¿O eso también se habrá ido?
Seds

44
Aparentemente, esto necesita instalar el Xcode completo a través de la tienda de aplicaciones (y no solo las herramientas de línea de comandos).
ScoBe

3
Esto ya no funciona, porque homebrew ha eliminado todas las opciones de fórmulas en el futuro. discurso.brew.sh/t/…
Fadecomic


17

Puede crear un alias en su ~/.bash_profile, solo agregue esta línea a ese archivo:

alias vim="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim"

En realidad, lo sería alias vim="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim", ya que quiero vincular a la consola vim de MacVim y no a la versión gui.
Alguien todavía te usa MS-DOS el

Ahh, esta bien. ¡Fijo!
Wuffers

Desde vim es una aplicación interactiva, haciendo un alias que anula Vim del sistema no va a ser tan perjudicial, supongo ...
Alguien que todavía utiliza MS-DOS

1
Para mí esto estaba en / Aplicaciones. Buen alias!
user72923

4

brew install macvim --override-system-vimes obsoleto. Deberías usar brew install macvim --with-override-system-vimen su lugar.


Ya no funciona
JESii

3

Para cambiar el editor predeterminado del sistema, agregue lo siguiente a su .bash_profile

export EDITOR=/usr/local/Cellar/macvim/<version>/bin/mvim 

Cambiar esto debería permitirle usar MacVim para el editor predeterminado (incluso para la aplicación que inicia automáticamente el editor)

EDITAR
Para el uso normal en la terminal, aún tendría que usar 'mvim' para editar un archivo. Si todavía desea escribir 'vi' en el terminal, sugeriría agregar también el alias al .bash_profile.

EDITAR 2
Después de ver la edición del OP, puede anteponer la ruta del vim de MacVim a la ruta del sistema. Tenga en cuenta que no creo que esta sea la mejor manera porque podría afectar también a otras llamadas del sistema al hacer llamadas en el terminal. Entonces, si realmente solo quiere que cambie cuando escribe 'vim' en la línea de comando, entonces el uso de un alias creo que es lo más limpio y seguro .

PATH="/Users/user/Applications/MacVim.app/Contents/MacOS/Vim:${PATH}"
export PATH

Pruebe su configuración utilizando which vimen la terminal.


2
No quiero hacer mvim por defecto. Quiero llamar a vim ( /Users/user/Applications/MacVim.app/Contents/MacOS/Vim) de MacVim cuando escribo vim en la terminal en lugar de vim ( /usr/bin/vim) del sistema .
Alguien todavía te usa MS-DOS el

@Alguien aún te usa MS-DOS: lo siento, entendí mal tu intención (hace un poco más desde ahora viendo tu edición).
Adam Lewis

Hum, pero que me dio una idea: si el enlace simbólico vima /usr/local/biny utilizando el $PATHenfoque, es posible que funcione.
Alguien todavía te usa MS-DOS

@Alguien aún te usa MS-DOS: Ten cuidado al hacer un enlace simbólico a un directorio que ya tiene vim ... Puede ser difícil saber qué vim vas a obtener.
Adam Lewis

1
:) Mi mente saltó al peor de los casos (local eliminado). Deberías estar bien con el usuario local.
Adam Lewis

2

Editar: solo instale homebrew (¡vale la pena!) Y brew install vim

Mi vieja respuesta está abajo:


No quiero instalar xcode solo por esto, tampoco quiero usar alias o método de preparación (que también requiere xcode), así que hago esto:

  1. Primero descargo MacVim desde la página de lanzamientos ,
  2. Luego instalo MacVim arrastrándolo a mi carpeta de aplicaciones,
  3. Para el uso del terminal, también hay una aplicación de terminal en el zip, llamada mvim, la instalo ejecutando este comando:

    sudo mv mvim / usr / local / bin / vim

  4. Y luego, vuelvo a mostrar el entorno hash -r(o cierro y vuelvo a abrir el terminal).

  5. Finalmente, cuando ejecuto vimdesde mi terminal veo el actualizado "en la consola".

Espero que esto ayude a alguien.


Yo uso homebrew para muchas cosas. Vale la pena la molestia. Tener XCode instalado pero poder instalar todo lo que necesito simplemente llamando brew installes genial.
Alguien todavía te usa MS-DOS

1

Mis dos centavos, ejecuto esto cada vez que actualicé mi python homebrew.

brew reinstall vim --HEAD --with-cscope --with-lua --override-system-vim
brew reinstall macvim --HEAD --with-cscope --with-lua --override-system-vim
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.