plug open nerd vim git-diff vimdiff vim-fugitive

open - ¿Cómo puedo ver git diff para cualquier confirmación usando vim-fugitive?



vim surround (5)

Agregando a la respuesta anterior:

Si desea obtener un diff, de un archivo particular de otra rama

Gdiff branch_name:path/to/dir/filename.txt

vim-fugitive side-by-side git diff es ideal para ver diferencias de archivos sin grabar.

¿Cómo puedo usar vim-fugitive para git diff?

  • archivos escalonados?
  • cualquier revisión git?

Diferencia entre el archivo actual y el índice

:Gdiff :0

Diferencia entre el archivo actual y alguna otra [revisión]

:Gdiff [revision]

La diferencia entre el archivo actual y el archivo actual 3 confirma hace:

:Gdiff ~3


La ayuda que necesita de la línea de comando vim:

h fugitivo-revisión


Puede usar :Glog para obtener los cambios en el historial de estos archivos. Puede usar :cnext o :cprevious para moverse entre cambios. Cuando :Gdiff la versión que quieres comparar, puedes usar :Gdiff Puedes salir de vimdiff cerrando el búfer :q salir del registro de historial con :Gedit

Esta es mi configuración de teclado .vimrc

nnoremap <leader>gs :Gstatus<CR> nnoremap <leader>gc :Gcommit -v -q<CR> nnoremap <leader>ga :Gcommit --amend<CR> nnoremap <leader>gt :Gcommit -v -q %<CR> nnoremap <leader>gd :Gdiff<CR> nnoremap <leader>ge :Gedit<CR> nnoremap <leader>gr :Gread<CR> nnoremap <leader>gw :Gwrite<CR><CR> nnoremap <leader>gl :silent! Glog<CR> nnoremap <leader>gp :Ggrep<Space> nnoremap <leader>gm :Gmove<Space> nnoremap <leader>gb :Git branch<Space> nnoremap <leader>go :Git checkout<Space> nnoremap <leader>gps :Dispatch! git push<CR> nnoremap <leader>gpl :Dispatch! git pull<CR>

Recomiendo usar el plugin de Tim Pope unimpaired.vim .

Con esa configuración, mi flujo de trabajo es:

<leader>gl para ver el historial

]q y [q para moverse entre las versiones (unimpaired.vim)

<leader>gd para abrir diff

:q para terminar diff

<leader>ge para regresar a mi copia de trabajo.


Simplemente coloco aquí la forma en que veo un diff si se :Glog -- o :Glog -- % (para el archivo actual):

  1. :Glog --
  2. :cw para abrir una lista de confirmaciones
  3. Navegue a una confirmación y se muestra su información, así como los archivos afectados.
  4. Centrarse en una ruta de archivo
  5. <cw>gf y el diff se abre en una nueva pestaña
  6. :tabclose para cerrar la pestaña y obtener el estado anterior antes del diff