当我对.vimrc进行更改时,通常会退出Vim并再次将其打开。是否有更简单的方法来重新加载新的.vimrc更改?

#1 楼

在Vim内运行:

:source $MYVIMRC


重新加载vimrc文件。或者,使用更短的版本:

:so $MYVIMRC


,如kenorb的评论中所述。

您可能还发现映射其中任何一个都很有用形成一个关键。例如:

nnoremap <Leader>r :source $MYVIMRC<CR>


评论


快捷方式::so $ MYVIMRC。

– Kenorb
15年2月20日在22:43

@kenorb:我添加了这种可能性;感谢您提到它!

– Paul Gessler
2015年2月21日在4:34

:so $ m ←超捷径

–亚伦·托马
15年5月31日在21:46

使用:so%保存另外两次击键。 %设置为您编辑的缓冲区的当前文件名,在这种情况下为$ MYVIMRC

–cbaumhardt
15年8月24日在21:30

到目前为止,最简单的方法是在保存时自动重新加载vimrc-检查其他答案。

–汤姆·黑尔
16年8月6日在8:25

#2 楼

如果您只是想偶尔重新加载文件,如Paul所写,那是正确的。如果最终要经常更改vimrc,则可以在vimrc文件中添加以下内容:

:source $MYVIMRC


这将在您写入文件时重新加载文件(从该文件中vim会话)

评论


johannes:我们是否需要通过vim编辑.vimrc才能使该命令自动获取文件?

– Sai Manoj Kumar Yadlapati
2015年2月3日在18:25



请注意,vimrc文件也可以称为其他名称:例如vimrc(如果在〜/ .vim中)。

–user50136
15年2月4日在6:09

@SaiManojKumarYadlapati是的,AS表示这必须是相同的vom会议。当vom执行写操作时会触发Bufwritepost

–约翰内斯
2015年2月4日,11:01

与此有关的问题:(1)在.vim / vimrc中不起作用,(2)将创建重复的autocmds,因此每次后续保存都将变慢,因为文件将被多次加载,(3)在vim-tiny中不起作用它没有autocmd,在某些Linux发行版中仍是默认设置。请参阅我的答案以解决这些问题。

–汤姆·黑尔
16年8月6日在4:14

#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:// diff)
如果使用vim-tiny不会产生错误


当然,只有在vim中编辑vimrc时,才会自动重装。