Tengo un archivo de configuración que mantengo abierto en vim, pero que a veces se cambia en el disco, sin que estos cambios se reflejen en el terminal. ¿Puedo actualizar el contenido en la pantalla sin cerrar y volver a abrir el archivo? ¿Si es así, cómo?
362
Respuestas:
Puede usar el
:edit
comando, sin especificar un nombre de archivo, para volver a cargar el archivo actual. Si ha realizado modificaciones en el archivo, puede usarlo:edit!
para forzar la recarga del archivo actual (perderá sus modificaciones).El comando
:edit
puede ser abreviado por:e
. La edición forzada puede ser realizada por:e!
fuente
:e!
.:edit
y:edit!
puedes usar:e
y:e!
respectivamente.u
el:e!
.:bufdo e
Además de actualizar manualmente el archivo con
:edit
, puede poner en su~/.vimrc
para hacer que Vim actualice automáticamente cualquier archivo que no haya sido editado por Vim. También vea
:checktime
.fuente
git pull
tenga en cuenta que podría perder sus cambios no guardados en la pantalla de manera no intencional.gvim
o ejecutar comandos externos.:checktime
autoread
puede activarse automáticamente X segundos después de que el cursor deja de moverse, vea esta respuesta .TL; DR
Vaya al
Wrap-up
encabezado de lasvimrc
líneas para agregar para mejorar su vida.A mano
correr
:checktime
Automáticamente
Para cargar cambios automáticamente, agregue su
vimrc
:set autoread
Esta respuesta agrega una advertencia:
Sigue leyendo para encontrar soluciones.
Se dispara cuando el cursor deja de moverse
Añadir a su
vimrc
:De manera predeterminada, CursorHold se activa después de que el cursor permanezca quieto durante 4 segundos y se puede configurar a través del tiempo de actualización .
Disparador en el cambio de búfer o foco de terminal
Agregue lo siguiente a su
vimrc
para activarautoread
cuando cambie los búferes mientras está dentro de vim:Capturar el foco de la ventana de terminal dentro de vim simple
Para que
FocusGained
(ver arriba) funcione en vim simple, dentro de un emulador de terminal (Xterm, tmux, etc.) instale el complemento: vim-tmux-focus-eventsEn las versiones tmux> 1.9, deberá agregar
.tmux.conf
:Envolver
Notificaciones cuando los
autoread
disparadores también son posibles .Aquí están mis
vimrc
líneas para implementar todo lo anterior:Gracias a ErichBSchulz por señalarme en la dirección correcta
au CursorHold
.fuente