2011-01-24 19 views

Respuesta

8

Suponiendo que tiene activada la sintaxis, Vim detecta los mensajes de confirmación de git como un tipo de archivo. Esto debería ser obvio al resaltar. La parte mucho menos obvia es que también tiene un complemento de tipo de archivo para las confirmaciones de git (y otras cosas de git). Asegúrese de tener esos habilitados (filetype plugin on), y luego habrá un útil comando definido: DiffGitCached. Solo ejecuta eso, y lanzará un diff en una ventana de vista previa.

Un comentario junto a la definición de ese comando en el plugin:

diffing automáticamente se puede hacer con:

autocmd FileType gitcommit DiffGitCached | wincmd p

Los plugins de tipo de archivo se almacenan en/vimXX/ftplugin/git * .vim, por ejemplo /usr/share/vim/vim70/ftplugin/gitcommit.vim, si tiene curiosidad por echar un vistazo!

+0

Haciendo un 'diff commit' y en vim': set ft = gitdiff' luego ': DiffGitCached', tengo una ventana abierta, pero sin ninguna información en ella. –

+0

@Alexis: No debería tener que establecer un tipo de archivo. Git debería detectarlo y habilitar el complemento automáticamente, siempre y cuando tengas 'filetype plugin on' en tu vimrc. Y, realmente no necesitas saber esto, pero el tipo de archivo para los mensajes de commit de git es 'gitcommit', no' gitdiff'. – Cascabel

+0

incluso sin especificar el tipo de archivo (y puedo ver que el tipo de archivo es detectado por vim, con respecto al resaltado), el 'DiffGitCached' no parece funcionar. Extraño. –

2

He modificado el guión HGEDITOR.SH para apoyar Git, puede clonar aquí:

git clone git://github.com/dharrigan/giteditor.git 

Enjoy!

+0

¡Hola David! :) ¡Justo lo que estaba buscando! (Alessandro) –

1

Recomiendo encarecidamente el plugin vim-fugitive de tpopes para trabajar con git.

Se puede encontrar here

0

utilizo Pierre Habouzit's git.vim de www.vim.org. Ponlo en ~/.vim/ftplugin y debes tener todo listo (asumiendo el filetype plugin indent on habitual en tu ~/.vimrc).

0

Si está utilizando git 2.9 y superior, puede obtener este comportamiento ejecutando git config --global commit.verbose true.

Fuente: this answer.

Cuestiones relacionadas