¿Vim usa una configuration no estándar cuando se llama desde `git commit`?

Me he dado count de que git parece usar diferentes configuraciones de vim cada vez que escribo un post de confirmación. Tengo instalado git+svn en Macports, y he comprobado la variable $MYVIMRC : está configurada en el file correcto. Aún así, cada vez que voy a enviar un post, tengo una restricción de 80 caracteres por línea, búsqueda sensible a mayúsculas y minúsculas y ninguno de los complementos que he instalado.

Probablemente sea algo tonto. Agradecería un puntero sobre lo que es.

EDITAR: En realidad acabo de comprobar: mis complementos funcionan. Es solo el ancho de columna de 80 caracteres lo que milagrosamente cobra vida cuando escribo posts de confirmación.

¡Eso no es un error, es una característica!

Vim conoce muchos types de files, incluidos los commit de git (y las rebases interactivas, y la configuration …). Hay definiciones de syntax y ftplugins (plugins activados por tipo de file) para cada uno de estos. Una de las configuraciones en commit ftplugin es textwidth=72 . Esto se hace para que la salida del logging de git se vea bien en un terminal de ancho estándar. Si realmente quieres cambiarlo, puedes editar el plugin, pero realmente te recomiendo que lo guardes.

El complemento debe estar en <vim-directory>/vimXX/ftplugin/gitcommit.vim . El XX es el número de versión, por ejemplo 72 para la versión 7.2, y el componente principal es generalmente algo así como /usr/share/vim .

PS El complemento también define un command DiffGitCached, que abrirá el diff para comprometerse en una window de vista previa. ¡Práctico!

:verbose set textwidth? formattingptions? le dirá los valores de estas opciones y qué script las estableció por última vez. El text solo está envuelto mientras se escribe si 'textwidth' no es cero y 'formattingptions' contiene la configuration t . Es probable que el complemento de tipo de file gitcommit ( ftplugin/gitcommit.vim ) esté cambiando una o ambas de estas opciones porque tiene habilitados los plugins de tipo de file ( :filetype muestra el plugin:ON ).

Respuesta parcial, tal vez útil …

De acuerdo con ps aux , git inicia vim con este command:

 vim .git/COMMIT_EDITMSG 

Esto activa el modo de syntax gitcommit , que en mi sistema Ubuntu vive en

 /usr/share/vim/vimcurrent/syntax/gitcommit.vim 

y se carga desde

 /usr/share/vim/vimcurrent/filetype.vim 

FWIW, tuve un problema similar: Vim estaba deshabilitando mi configuration de textwidth en files .txt porque uno de los plugins de tipo de file que se llamaba tenía la línea "formattingptions – = t"

En lugar de editar los complementos (lo que me hizo sentir incómodo), eludí el problema añadiendo la línea ": filetype plugins off" a mi file ~ / .vimrc. La solución fue detallada aquí – http://peox.net/articles/vimconfig.html

(Originalmente pensé que el problema estaba relacionado con git, pero después de probarlo en un directory que no era git, encontré que se debía a la extensión de file .txt).