top plugin color code best awesome vim vim-fugitive

plugin - Diff de versión actual y anterior usando vim-fugitive



vim color plugin (9)

Sé que :Glog llenará la lista de soluciones rápidas con todas las versiones del archivo en el búfer actual y que puedo presionar <enter> en estas para ver el archivo en esa versión en particular, pero hay una manera fácil de ver la diferencia de una versión particular con la versión anterior (para ver fácilmente qué ha cambiado)?

EDITAR: Lo que busco es ver cada uno de estos cambios en una diferencia vertical en vim: git log -p -- path/to/file.txt .


Para diferenciar con su versión anterior, sigue estos pasos:

  1. usa Glog
  2. navega a la versión deseada
  3. tipo C , que abre el commit
  4. vaya a la línea que contiene diff --git a/you/file b/you/file y presione <cr>

Además, para diferenciar una versión anterior con la versión en índice (la versión de trabajo), puede hacer esto:

  1. usa Glog
  2. navega a la versión deseada
  3. Usa Gdiff en esta nueva ventana sin parámetro. ¡Hecho!

Gdiff sin parámetro diferenciará el búfer actual con el del índice , que es exactamente lo que desea

También puede considerar el uso del complemento vim-unimpaired , que proporciona dos mapas ]q y [q para navegar por la lista de soluciones rápidas. (También ]Q y [Q )


Creo que es tan simple como:

:vert diffsplit #


Cuando use :Glog , simplemente presione <cr> en la línea que comienza diff --git . Se abrirá el diff. Es posible que también desee mirar en :Gdiff . Es posible que desee ver las vimcasts Drew Neil, The Fugitive Series .

Para más ayuda ver

:h fugitive :h :Glog :h :Gdiff


En primer lugar, abra el archivo que desea diferenciar.

Si se confirma el cambio, ingrese :Gdiff HEAD~1 .
Si el cambio NO está confirmado, ingrese :Gdiff HEAD .


Escribí una función que te permite diferenciar una revisión previa del archivo actual. Lo uso para ver la diferencia entre la copia de trabajo y las revisiones "n" veces atrás.

Aquí está el código para poner en tu .vimrc (requiere https://github.com/tpope/vim-fugitive ):

"Diff the current file against n revision (instead of n commit) function! Diffrev(...) let a:target = @% "check argument count if a:0 == 0 "no revision number specified let a:revnum=0 else "revision number specified let a:revnum=a:1 endif let a:hash = system(''git log -1 --skip=''.a:revnum.'' --pretty=format:"%h" '' . a:target) execute ''Gdiff'' . a:hash endfunc

Puede llamar a la función de esta manera (el ejemplo siguiente difiere contra la tercera revisión posterior):

:call Diffrev(2)


Esto es lo que uso:

:Gdiff [revision]

Ver :help Gdiff para otras opciones también (divisiones verticales frente a horizontales, etc.).

Por ejemplo:

:Gdiff HEAD

o si tiene un número de revisión (es decir, aaffdfdstsdgssetds):

:Gdiff aaffdfds


No conseguí que el fugitivo hiciera lo que quiero (o bien no lo hace o no sé cómo usarlo), pero encontré el complemento que da el comportamiento deseado: https://github.com/kablamo/vim-git-log .

(no muestra la diferencia en la lista de soluciones rápidas, sino en un búfer de tamaño completo, lo cual está bien)


Puedes lograr esto siguiendo estos pasos:

  1. Cambie el enfoque a la ventana de corrección rápida y navegue a la línea correspondiente al compromiso que le interesa.
  2. Encuentre el hash de confirmación en la línea y tire de él (el hash está ahora en el registro 0 .
  3. Cierre el búfer de corrección rápida y haga :Gdiff <Cr>0 .

Eso debería encender el diff apropiado.

Puede automatizar los pasos 2 y 3 agregando esta asignación a su archivo .vimrc :

nnoremap <Leader>gd //.git<CR>wwwyw<Esc>:cclose<CR>:Gdiff <C-r>0<CR>

Observe que la asignación asume que su cursor está al principio de la línea (antes de la parte .git// ).


Una forma de ver la diferencia de un commit es esta:

:Gedit [revision]