git - salir - Actualizar todos los archivos en el búfer del disco en vim
vim español (4)
El comando para actualizar un archivo de la versión en el disco es :e!
¿Cómo puedo hacer lo mismo con todos los archivos en el buffer?
Antecedentes: lo necesito porque estoy usando git con múltiples ramas con un vim abierto que contiene un buffer. Cuando pago una sucursal, me gustaría tener vim refresh.
De :help autoread
:
Cuando se ha detectado que un archivo se ha modificado fuera de Vim y no se ha modificado dentro de Vim, vuelva a leerlo automáticamente. Cuando el archivo ha sido eliminado, esto no está hecho.
Si, como yo, solo quieres volver a cargar de forma pasiva buffers obsoletos pero no modificados, parece que debería hacer el trabajo.
Sin embargo, el último detalle es cuando vim nota el buffer obsoleto. Eso puede ser forzado con el tiempo de checktime
. Si tiene configurados los eventos de enfoque , entonces podemos ejecutar el tiempo de checktime
cada vez que obtengamos el foco de la siguiente manera:
set autoread
autocmd FocusGained * checktime
Esta respuesta también tiene algunos detalles interesantes.
El :checkt[ime]
está diseñado para este propósito.
Le pedirá que vuelva a cargar los búferes que hayan cambiado; si desea omitir el aviso, puede hacer lo siguiente :set autoread
antemano (aún recibirá un mensaje de aviso sobre los búferes con cambios locales no guardados).
También evita el problema de resaltado de sintaxis mencionado por Steven Lu en la respuesta aceptada; :bufdo
desactiva el resaltado de sintaxis por diseño .
Encontrado a través de: http://vim.1045645.n5.nabble.com/Bug-report-bufdo-e-breaking-syntax-highlighting-on-displayed-buffers-tp1209995p1209998.html
Esto es lo que terminé poniendo en mi .vimrc:
fun! PullAndRefresh()
set noconfirm
!git pull
bufdo e!
set confirm
endfun
nmap <leader>gr call PullAndRefresh()
Lea la documentación de bufdo
, debería hacer lo que quiera.