2010-12-10 8 views

Respuesta

12

Trate vcscommand plug-in, utilice :VCSVimDiff para ver differencies con la versión actual (soporta tanto hg y git, probablemente algunos otros sistemas SCM también) e interna :bdelete (:bd) (en la memoria intermedia abierta por supuesto, no en ya existente) a deja de diferir Si está utilizando gentoo, está disponible en el repositorio: app-vim/vcscommand.

+1

Aceptando este porque funciona en git y hg (y otros también). Sin embargo, me gusta más el fugitivo de Tim Pope para git. –

5

un método consiste en hacer lo siguiente:

:!git diff

Esto mostrará los cambios (a todos los archivos) en comparación con HEAD

hacer un solo archivo :!git diff path/to/file

esta es una manera rápida de hacerlo sin cambiar diferentes aplicaciones ni instalar ningún complemento (lo cual no siempre es fácil de hacer en algunos sistemas que no tiene) control sobre).

no le dará resaltado 'en línea' pero debería funcionar bien.

Otra forma de hacerlo rápido es hacer un :r !git diff eche un vistazo a los cambios y escriba u para deshacer la adición. Esto funciona muy bien también, especialmente si quieres tirar un texto de HEAD

+0

Para el archivo actual simplemente haz ':! Git diff%' o ':! Hg diff%'. –

17

Mira el plugin de Tim Pope fugitive.vim.

Soy un git purista y por lo general me meto en la línea de comando para git, pero cuando estoy en vim encuentro que esto hace la mayor parte de lo que necesito hacer y aún puedo llamar comandos git directamente.

+0

Me gusta más el fugitivo que el plugin vcscommand, pero necesito compatibilidad con hg, así que acepté la otra respuesta. ¡Gracias por convertirme en fugitivo! –

+0

Contento me gusta. No estaba seguro hasta que un amigo me sugirió que lo intentara yo mismo, y ahora me parece que hace lo que necesito. – Abizern

+1

@Abizern, lo siento, me doy cuenta de que esta es una vieja pregunta, pero ¿cómo se usa fugitivo para resaltar las líneas modificadas como la pregunta del OP? –

4

¿Qué tal esto (no obligatorio): plugins

:new | r ! hg annotate -un # 

Este plazo hg annotate en el nombre de archivo del búfer en uso, entonces descarga la salida en un nuevo buffer.

Esta forma de comando obviamente no es específica de git y hg. Puede capturar los resultados de cualquier comando de shell de esta manera.

13

Hay un nuevo complemento que hace esto: vim-gitgutter. Pone los cambios en el canal de Vim cada vez que guardas el archivo.Esto es lo que se ve como en la acción:

enter image description here

+1

Agradable. Yo aceptaría esto si la pregunta fuera solo sobre Git. Justo lo que quiero. –

+0

+1 La versión Sublime es agradable :) –

+1

Solo la he usado por un tiempo y ha sido muy útil. Hace ver muy fácilmente qué partes del archivo han cambiado. Un buen proyecto podría ser portarlo para incluir cambios hg. –

1

Para mercurial, un equivalente de fugitive es lawrencium: http://bolt80.com/lawrencium

Es compatible tanto con el lado -by-side diff y una vista de diff resaltada (básicamente lo que obtienes de hg diff <file>.

(descargo de responsabilidad: soy el autor)

Cuestiones relacionadas