2010-10-28 17 views
8

Estoy tratando de usar MacVim como editor predeterminado (en mi Mac, obviamente). Me gustaría tener MacVim para editar los mensajes de confirmación cuando yo hg ci. Desafortunadamente cuando lo hago (ya sea configurando EDITOR=mvim o alias vi='mvim') MacVim aparece con un mensaje vacío (es decir, ninguno de la plantilla en la mitad inferior), y cuando guardo ese mensaje de confirmación aparece el mensaje "abortar: mensaje de confirmación vacío" .MacVim y Mercurial check-in

¿Existe alguna manera de utilizar MacVim (presumiblemente a través de mvim) para editar los mensajes de confirmación al registrar cambios con Mercurial?

Gracias por leer, y espero leer las respuestas.

Brian

+0

¿Lo está configurando en ur hgrc o simplemente env variable? – Kasumi

+0

variable bash env. –

+0

Tenga en cuenta que los alias son internos al shell; los programas ejecutados por el shell no pueden acceder a ellos. –

Respuesta

11

Conjunto EDITOR='mvim -f', por la punta de la FAQ para hacer que funcione con Git:

¿Cómo puedo usar para editar MacVim Git cometer mensajes?

Añada la siguiente línea al archivo ~/.profile:

export EDITOR='mvim -f -c "au VimLeave * !open -a Terminal"' 

La última parte se asegura de que la terminal se centran de nuevo después de cerrar el mensaje de confirmación. (Tenga en cuenta que debe poner el script mvim en su ruta para que esto funcione).

+0

Así que la respuesta fue realmente usar Git. Claramente tiene las preguntas frecuentes superiores. jeje. –

+0

Por cierto, el 'export EDITOR = '...'' se expande a 'mvim -f -c" au VimLeave Desktop Documentos Descargas Biblioteca Películas Música Sitios públicos bin! Open -a Terminal "'. No estoy seguro si ese es el comportamiento anticipado/deseado. Agregué 'set -f' al script justo antes de' export' para evitar el glob. –

+1

@Roger Pate: estoy de acuerdo, parece bastante extraño. Empecé una nueva pregunta para ver si la respuesta puede eliminarse: http://stackoverflow.com/questions/4052593/mac-os-x-bash-default-pathname-expansion-or-bug –

0

Si tiene varios SCM en una máquina (por ejemplo, tiene que trabajar con Subversion y Mercurial, como yo), puede diferenciar el editor utilizando HGEDITOR en lugar del EDITOR más genérico env. Por ejemplo, tengo las siguientes variables de entorno establecidas:

export HGEDITOR='mvim -f -c "au VimLeave * !open -a Terminal"' 
export SVN_EDITOR='mvim -f -c "au VimLeave * !open -a Terminal"' 

En este caso es una especie de sentido porque la configuración es la misma, pero esto es sólo para ilustrar el punto.

Eso también, por supuesto, plantea el punto de que puede configurar el EDITOR y obtenerlo como el predeterminado para sus diversas aplicaciones que usan eso, y luego anularlo con una variable específica de la aplicación para aquellas aplicaciones que necesitan algo diferente. Tiendo a usar las variables específicas de la aplicación solo para ser ... completo, supongo (algunos lo llamarían algo más :).