Vuelva a cargar .vimrc en Vim sin reiniciar

93

Me molesta cuando escribí algo .vimrcy primero tengo que cerrarlo y abrirlo para que se apliquen mis cambios. ¿Hay alguna forma de recargar .vimrcen Vim sin cerrarlo?

Por ejemplo, he añadido set nua ~/.vimrcy quiero números de línea a aparecer por todas mis ventanas y tampones.

Nemoden
fuente

Respuestas:

129

:source ~/.vimrc

Ejecuta eso desde adentro de vim, eso aplicará tu .vimrc

Alternativamente

:source $MYVIMRC

pensador libre
fuente
18

Aquí hay uno para la posteridad. Agregue lo siguiente a su .vimrc:

map <leader>vimrc :tabe ~/.vim/.vimrc<cr>
autocmd bufwritepost .vimrc source $MYVIMRC

La primera línea significa que puede abrir su vimrc desde cualquier búfer vim escribiendo su líder y luego escribiendo "vimrc". Por ejemplo, mi líder está configurado en coma, por lo que si estoy en modo de edición y escribo ", vimrc", se abre mi vimrc en una nueva pestaña.

La segunda línea obtiene automáticamente los cambios en su vimrc cuando lo guarda y lo cierra. Es magia.

Decano
fuente
1
Idealmente, ¿no map <leader>vimrc :tabe $MYVIMRC<cr>coincidirías con el autocmd?
Nick Bisby
@NickBisby Para mí ~/.vimrces solo un trozo que genera fuentes ~/.vim/.vimrcpara que pueda mantener todo bajo control de fuente. Para la mayoría de las personas tiene razón, lo sería :tabe $MYVIMRC<cr>.
Dean
1
Alternativamente, podría usar un enlace simbólico a su archivo .vimrc real en lugar de que sea un trozo.
Spoike
¿Cómo puedo volver a cargar vimrc sin cambiar la posición de mi cursor?
SergioAraujo
15

:so %

si actualmente está editando .vimrc

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

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.

Tom Hale
fuente