【发布时间】:2020-07-05 02:35:22
【问题描述】:
我想从 Vim 编辑 .vimrc 文件并在不重新启动 Vim 的情况下应用它们。
【问题讨论】:
标签: vim
我想从 Vim 编辑 .vimrc 文件并在不重新启动 Vim 的情况下应用它们。
【问题讨论】:
标签: vim
是的,只需在编辑 .vimrc 时使用 :so % 命令。
如果你想让 vim 自动重新加载你的配置,你必须添加以下命令:
augroup myvimrchooks
au!
autocmd bufwritepost .vimrc source $MYVIMRC
augroup END
自动命令的分组是为了避免“指数”重新加载,如果你保存了几次你的配置。
【讨论】:
gvimrc,或者如果您的文件名为_vimrc 或vimrc,或者如果您在另一个目录中编辑名为.vimrc 的文件。请参阅我的回答以解决这些问题。
Function Inc already exist, add ! to replace it之类的错误。
autocmd! bufwritepost .vimrc source ~/.vimrc吗?即使出于某种原因需要该组,如果将第 3 行重写为以 autocmd! 开头,难道不能省略第 2 行吗?
如果您在 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 文件,当其中一个文件发生更改时,如果 GUI 正在运行,它会重新加载 vimrc 文件,然后是 gvimrc。
【讨论】:
:help gvimrc
$GVIMRC 是否存在,因为有时它不存在。 if has('gui_running') && filereadable($MYGVIMRC)
au BufWritePost $MYVIMRC 或au BufWritePost $MYVIMRC,$MYGVIMRC?
获取你的 vimrc 文件 :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
然后最后一次输入:
:so %
下次保存vimrc时,它会自动重新加载。
特点:
:messages)fugitive:// diff)vim-tiny,不会产生错误
当然,只有在 vim 中编辑 vimrc 时才会自动重新加载。
【讨论】:
$MYVIMRC 的vim 的同一实例中打开时才有效。例如,如果它们在不同的终端中,那么我仍然必须手动获取$MYVIMRC。有没有办法解决这个问题?
vim 写出文件的时间来工作。可能可以监视文件本身的 mtime,但不确定如何在没有异步轮询的情况下做到这一点。
自动命令! bufwritepost _vimrc 源码 %
这将在您保存时自动重新加载 _vimrc 文件中的所有配置
【讨论】: