2010-03-08 105 views

回答

54

是,只需要使用:so %命令而编辑的.vimrc。

如果你想Vim自动重新加载您的配置,您必须添加以下命令:

augroup myvimrchooks 
    au! 
    autocmd bufwritepost .vimrc source ~/.vimrc 
augroup END 

自动命令的分组是在这里,以避免“指数”重装,如果你多次保存您的配置。

+0

注意,这对'gvimrc'不起作用,或者如果你的文件被称为'_vimrc'或'vimrc',或者你编辑另一个名为'.vimrc'的文件目录。请参阅我的答案以解决这些问题。 – 2016-09-04 02:57:37

20

源vimrc文件:source ~/.vimrc

+1

在windows上,只是:so〜/ _vimrc – 2017-11-08 17:15:13

38

这里有一个更多的跨平台兼容的版本,如果你在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 

自动命令监视所有潜在*vimrc文件,当一个人改变,它重新加载vimrc文件之后如果GUI正在运行,则为gvimrc

+0

我没有得到你的命令。 $ MYGVIMRC在哪里定义? – 2010-06-18 14:18:09

+5

当GUI Vim启动时它被设置。请参阅::help gvimrc' – matpie 2010-06-21 16:54:30

+3

FANTASTIC,谢谢。如果你这样做,避免我刚刚犯下的大脑放屁...我打开gvim,将其添加到我的vimrc,然后试图确认它工作。没有... 20分钟后,我意识到自从忘记添加AUTOCMD之后,忘了文件的来源。一旦我这样做了,当然,一切都奏效了。我想这对我来说太过分了,我有一个心理上的“堆栈溢出”。 – 2010-12-05 05:50:30

1

autocmd! BufWritePost里_vimrc源%

这将自动重装在_vimrc文件中的所有配置在您保存

3
" 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://差异)
  • 如果使用vim-tiny
  • 0将不会生成错误

当然,只有在vim中编辑你的vimrc才会发生自动重载。

+0

这似乎只在文件全部打开的'vim'的同一个实例中编辑'$ MYVIMRC'时才起作用。例如,如果他们在不同的终端中,那么我仍然需要手动发送'$ MYVIMRC'。有没有办法解决这个问题? – 2017-02-04 02:31:50

+1

不是我所知道的 - 当当前的'vim'写出文件时,这种方法是有效的。可能会监视文件本身的mtime,但不确定如何在不进行异步轮询的情况下执行此操作。 – 2017-02-04 04:26:57

相关问题