¿Cómo recargo mi vimrc sin salir de Vim?


50

Cuando hago un cambio en mi .vimrc, generalmente salgo de Vim y lo abro nuevamente. ¿Hay alguna manera más fácil de recargar los nuevos .vimrccambios?

Respuestas:


47

Correr:

:source $MYVIMRC

dentro de Vim para recargar el vimrcarchivo. O, una versión más corta:

:so $MYVIMRC

como se menciona en un comentario de kenorb .

También puede resultarle útil asignar cualquiera de estos formularios a una clave. Por ejemplo:

nnoremap <Leader>r :source $MYVIMRC<CR>

2
Atajo: :so $MYVIMRC.
kenorb

@kenorb: he agregado esta posibilidad; gracias por mencionarlo!
Paul Gessler

:so $m<Tab> ← atajo extra
Aaron Thoma

3
Ahorre dos pulsaciones de teclas más con :so %. %está configurado con el nombre de archivo actual del búfer que edita, en este caso$MYVIMRC
cbaumhardt

1
Con mucho, la forma más fácil de hacer esto es volver a cargar automáticamente el vimrc al guardar: verifique las otras respuestas.
Tom Hale

20

Si solo quieres volver a cargar el archivo de vez en cuando

:source $MYVIMRC

como Paul escribió es correcto. Si termina cambiando su vimrc con frecuencia, puede agregar algo como esto a su archivo vimrc:

autocmd BufWritePost .vimrc,_vimrc source $MYVIMRC

Esto volverá a cargar el archivo cuando lo escriba (desde esa sesión vim)


1
johannes: ¿Necesitamos editar el .vimrc a través de vim para que este comando obtenga automáticamente el archivo?
Sai Manoj Kumar Yadlapati

55
tenga en cuenta que un archivo vimrc también se puede llamar de otras formas: por ejemplo vimrc (si está en ~ / .vim).
user50136

1
@SaiManojKumarYadlapati Sí, AS dijo que esta debe ser la misma sesión de vom. Bufwritepost se activa cuando vom hace la escritura
johannes

Problemas con esto: (1) no funciona .vim/vimrc, (2) creará duplicados autocmd, por lo que cada guardado posterior será más lento ya que el archivo se volverá a cargar varias veces, (3) no se comporta con vim-tiny que no tiene autocmd y sigue siendo el valor predeterminado en algunas distribuciones de Linux. Vea mi respuesta para abordar estos problemas.
Tom Hale

2
" 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.

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.