2010-03-08 11 views

Respuesta

54

Sí, sólo tiene que utilizar el comando :so % durante la edición de su .vimrc.

Si desea vim para auto-recarga de la configuración, debe agregar los siguientes comandos:

augroup myvimrchooks 
    au! 
    autocmd bufwritepost .vimrc source ~/.vimrc 
augroup END 

la agrupación de AutoCommand está aquí para evitar la "exponencial" recarga si guarda varias veces su configuración.

+0

Tenga en cuenta que esto no funciona con 'gvimrc' o si su archivo se llama' _vimrc' o 'vimrc', o si edita un archivo llamado' .vimrc' en otro directorio. Vea mi respuesta para abordar estos problemas. –

20

fuente de su archivo vimrc :source ~/.vimrc

+1

en windows, solo: so ~/_vimrc –

38

Aquí es una versión compatible con plataformas más si se ejecuta en Mac/Windows/Linux y gvimrc:

augroup myvimrc 
    au! 
    au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif 
augroup END 

El autocmd relojes todas las posibles *vimrc archivos y cuando uno cambia, se vuelve a cargar el archivo vimrc seguido de gvimrc si la GUI se está ejecutando.

+0

No recibí tu comando. ¿Dónde se define $ MYGVIMRC? –

+5

Se establece cuando se inicia GUI Vim.ver ': ayuda gvimrc' – matpie

+3

FANTÁSTICO, gracias. Si haces esto, evita el pedo cerebral que acabo de cometer ... Abrí gvim, agregué esto a mi vimrc, y luego traté de confirmar que funcionó. No ... 20 minutos después me doy cuenta de que OLVIDÉ FUENTES EL ARCHIVO UNA VEZ DESPUÉS DE QUE SE AGREGÓ EL AUTOCMD. Una vez que hice eso, por supuesto, todo funcionó. Supongo que fue un poco demasiado meta para mí, y tuve un "desbordamiento de pila" mental. –

1

autocmd! bufwritepost _vimrc origen%

esto recarga automática toda config en el archivo _vimrc al guardar

3
" Quickly edit/reload this configuration file 
nnoremap gev :e $MYVIMRC<CR> 
nnoremap gsv :so $MYVIMRC<CR> 

Para automáticamente recarga a guardar, añada lo siguiente a su $MYVIMRC:

if has ('autocmd') " Remain compatible with earlier versions 
augroup vimrc  " Source vim configuration upon save 
    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 

y luego por última vez, escriba:

:so % 

La próxima vez que guarde su vimrc, se volverá a cargar automáticamente.

Características:

  • le dice al usuario lo que ha sucedido (también el registro en :messages)
  • gestiona diferentes nombres para los archivos de configuración
  • asegura que sólo duraran coincide con el archivo de configuración actual (ignora copias en otros directorios, o un fugitive:// diff)
  • No generará un error si usa vim-tiny

Por supuesto, la recarga automática solo ocurrirá si edita su vimrc en vim.

+0

Esto solo parece funcionar cuando los archivos están todos abiertos en la misma instancia de 'vim' en la que estoy editando' $ MYVIMRC'. Si están en un terminal diferente, por ejemplo, aún tengo que obtener manualmente '$ MYVIMRC'. ¿Hay alguna forma de evitar esto? –

+1

No es que yo sepa, esto funciona capturando cuando el 'vim' actual escribe el archivo. Es posible controlar el mtime en el archivo en sí, pero no está seguro de cómo hacerlo sin un sondeo asincrónico. –

Cuestiones relacionadas