Quiero editar el .vimrcarchivo de Vim y aplicarlo sin reiniciar Vim.
Respuestas:
Sí, solo use el :so %comando mientras edita su .vimrc.
Si desea que vim recargue automáticamente su configuración, debe agregar los siguientes comandos:
augroup myvimrchooks
au!
autocmd bufwritepost .vimrc source $MYVIMRC
augroup END
la agrupación de autocomando está aquí para evitar la recarga "exponencial" si guarda varias veces su configuración.
Function Inc already exist, add ! to replace it.
autocmd! bufwritepost .vimrc source ~/.vimrc? Incluso si el grupo es necesario por alguna razón, ¿no se podría omitir la línea 2 si la línea 3 se reescribe para empezar autocmd!?
Aquí hay una versión compatible más multiplataforma 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 observa todos los *vimrcarchivos potenciales y cuando uno cambia, vuelve a cargar elvimrc archivo seguido de gvimrcsi la GUI se está ejecutando.
:help gvimrc
$GVIMRCexiste, porque a veces no es así. if has('gui_running') && filereadable($MYGVIMRC)
au BufWritePost $MYVIMRCo au BufWritePost $MYVIMRC,$MYGVIMRC?
" 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 vimrc, se recargará automáticamente.
caracteristicas:
:messages)fugitive://diferencia)vim-tinyPor supuesto, la recarga automática solo ocurrirá si edita su vimrcarchivo in vim.
vimen la que estoy editando $MYVIMRC. Si están en una terminal diferente, por ejemplo, todavía tengo que buscar manualmente $MYVIMRC. ¿Hay alguna forma de evitar esto?
vimescribe el archivo. Puede ser posible monitorear el mtime en el propio archivo, pero no está seguro de cómo hacerlo sin un sondeo asincrónico.
gvimrco si se llama a su archivo_vimrcovimrc, o si edita un archivo llamado.vimrcen otro directorio. Vea mi respuesta para abordar estos problemas.