是否可以应用vimconfiguration而不重新启动?
我想从Vim编辑.vimrc
文件,并在不重新启动Vim的情况下应用它们。
是的,只需在编辑.vimrc时使用:so %
命令即可。
如果你想让vim自动重载你的configuration,你必须添加下面的命令:
augroup myvimrchooks au! autocmd bufwritepost .vimrc source ~/.vimrc augroup END
自动命令的分组是在这里,以避免“指数”重新加载,如果你保存几次你的configuration。
如果你在Mac / Windows / Linux和gvimrc
上运行,这是一个更跨平台兼容的版本:
augroup myvimrc au! au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif augroup END
autocmd监视所有潜在的*vimrc
文件,当其中一个改变时,它重新加载vimrc
文件,如果GUI正在运行,则加载gvimrc
。
input你的vimrc文件:source ~/.vimrc
source〜 :source ~/.vimrc
" Quickly edit/reload this configuration file nnoremap gev :e $MYVIMRC<CR> nnoremap gsv :so $MYVIMRC<CR>
要保存时自动重新加载,请将以下内容添加到$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
然后在最后一次input:
:so %
下一次你保存你的vimrc
,它会自动重新加载。
特征:
- 告诉用户发生了什么事情(也logging到
:messages
) - 处理configuration文件的各种名称
- 确保它只会匹配实际的configuration文件(忽略其他目录中的副本或者
fugitive://
diff) - 如果使用
vim-tiny
不会产生错误
当然,只有在vim中编辑vimrc
,才会自动重新加载。
自动命令! bufwritepost _vimrc源码%
这会在保存时自动重新加载_vimrc文件中的所有configuration