¿Cómo se recarga el archivo .vimrc sin reiniciar vim?


533

¿Puedes editar tu .vimrcarchivo y volver a cargarlo sin tener que reiniciar Vim?

Respuestas:


660

Si lo está editando, puede volver a cargarlo con:

:so %

%significa nombre de archivo actual (ver :h current-file) y :soes la abreviatura de :source, que lee el contenido del archivo especificado y lo trata como código Vim.

En general, para volver a cargar el .vimrc actualmente activo, use lo siguiente (vea Daily Vim ):

:so $MYVIMRC


36
y :so ~/.vimrcdebería funcionar también en Unix
Yab

3
: entonces ~ / _vimrc funciona en Windows. Por supuesto, mantengo mi _vimrc en mi directorio de inicio de Windows, o esto no funcionará. Para ver lo que Vim considera su directorio de inicio, use :echo expand("~").
Daniel Miladinov

3
Tenga en cuenta que si las asignaciones de teclado ya estaban en su lugar, entonces no se borrarán incluso si se eliminan del nuevo vimrc
Phani

O :so ~/.vim/gvimrcdonde sea que lo pongas, por supuesto
NeilG

79

Aún mejor, configura Vim para ver los cambios en su .vimrcy recargar automáticamente la configuración.

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

Fuente: esta respuesta en SO

Nota: este método en particular observa las muchas variaciones de los nombres de archivo de configuración de Vim para que sea compatible con GUI Vim, Windows Vim, etc.


2
¿Qué tan efectivo es este método?
Alexej Magura

Me parece que usar este tipo de comando a veces cuelga mi nvim durante unos segundos o más.
jdhao

11

Mapeos clave

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

Solución completamente automatizada

Para recargar automáticamente al guardar, agregue 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 archivo vimrc, se volverá a cargar automáticamente.

caracteristicas:

  • Le dice al usuario lo que sucedió (también iniciando sesión :messages)
  • Maneja varios nombres para los archivos de configuración
  • Asegura que solo coincidirá con el archivo de configuración real (ignora las 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 editas tu vimrcen vim.


5

Una alternativa para recordar / escribir :so $MYVIMRCson estas asignaciones. Le permite editar rápidamente vimrc ( ev) o fuente vimrc ( sv).

" Quickly open/reload vim
nnoremap <leader>ev :split $MYVIMRC<CR>  
nnoremap <leader>sv :source $MYVIMRC<CR>     
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.