Buscar..


Observaciones

autocmd envolventes autocmd

autocmd es un comando aditivo, y probablemente no desee este comportamiento de forma predeterminada.

Por ejemplo, si redistribuye su .vimrc varias veces mientras lo edita, vim puede disminuir la velocidad.

Aquí está la prueba:

:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save

Si ahora escribe :autocmd BufWritePost * , verá ambas líneas en la salida, no solo una. Ambos son ejecutados.

Para evitar este comportamiento, rodee todos sus autocmd s de la siguiente manera:

if has ('autocmd')       " Remain compatible with vi which doesn't have autocmd
  augroup MyDiffUpdate   " A unique name for the group.  DO NOT use the same name twice!
      autocmd!           " Clears the old autocommands for this group name
      autocmd BufWritePost * if &diff | diffupdate | endif   " Update diff after save
      " ... etc ...
  augroup END
endif

Fuente automática .vimrc después de guardar

Agregue esto a su $MYVIMRC :

" Source vim configuration file whenever it is saved
if has ('autocmd')          " Remain compatible with earlier versions
 augroup Reload_Vimrc       " Group name.  Always use a unique name!
    autocmd!                " Clear any preexisting autocommands from this group
    autocmd! BufWritePost $MYVIMRC source % | echom "Reloaded " . $MYVIMRC | redraw
    autocmd! BufWritePost $MYGVIMRC if has('gui_running') | so % | echom "Reloaded " . $MYGVIMRC | endif | redraw
  augroup END
endif " has autocmd

caracteristicas:

  • echom le dice al usuario lo que ha sucedido (y también se registra en :messages ).
  • $MYVIMRC y $MYGVIMRC manejan nombres específicos de la plataforma para los archivos de configuración,
  • y solo coinciden con los archivos de configuración reales (ignorando copias en otros directorios, o un fugitive:// diff)
  • has() evitará un error si utiliza versiones incompatibles, como vim-tiny .
  • autocmd! evita la acumulación de múltiples autocomandos idénticos si este archivo se obtiene de nuevo. (Borra todos los comandos del grupo nombrado, por lo que el nombre del grupo es importante).

Actualice las vistas de vimdiff si un archivo se guarda en otra ventana

:autocmd BufWritePost * if &diff | diffupdate | endif 


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow