2010-04-17 14:18:40 +0000 2010-04-17 14:18:40 +0000
545
545

如何在不重启Vim的情况下重新加载你的.vimrc文件?

你可以编辑你的.vimrc文件,在不重启Vim的情况下重新加载吗?

答案 (4)

681
681
681
2010-04-17 14:24:51 +0000

如果你正在编辑它,可以用以下方法重新加载它:

:so %

%代表当前文件名(见:h current-file),:so:source的缩写,它读取指定文件的内容,并将其作为Vim代码处理。

一般来说,要重新加载当前活动的.vimrc,可以用以下方法(见每日Vim):

:so $MYVIMRC
79
79
79
2012-04-28 09:32:28 +0000

更棒的是,你把Vim配置成监视你的.vimrc中的变化,并自动重新加载配置。

augroup myvimrc
    au!
    au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif
augroup END

来源。这个答案在SO上

注意:这个特殊的方法可以观察到Vim配置文件名的许多变化,所以它可以兼容GUI Vim、Windows Vim等。

11
11
11
2016-09-02 14:12:06 +0000

关键映射

" 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

不会产生错误。

5
5
5
2015-06-17 10:36:59 +0000

记忆/键入:so $MYVIMRC的另一个选择是这些映射。它可以让你快速编辑vimrc (ev) 或源vimrc (sv)。