无需重启 Vim 即可重新加载 .vimrc

无需重启 Vim 即可重新加载 .vimrc

当我写入某些内容时.vimrc,我必须先关闭它,然后打开它才能应用我的更改,这让我很烦恼。有没有办法在.vimrc不关闭它的情况下在 Vim 中重新加载?

例如,我已经添加了set nu~/.vimrc并且我希望所有窗口和缓冲区都显示行号。

答案1

:source ~/.vimrc

从 vim 内部运行该程序,它将应用你的.vimrc

交替

:source $MYVIMRC

答案2

:so %

如果当前正在编辑 .vimrc

答案3

这是留给后人的一个。将以下内容添加到你的 .vimrc 中:

map <leader>vimrc :tabe ~/.vim/.vimrc<cr>
autocmd bufwritepost .vimrc source $MYVIMRC

第一行意味着您可以从任何 vim 缓冲区打开 vimrc,方法是输入领导者,然后输入“vimrc”。例如,我的领导者设置为逗号,因此如果我在编辑模式下输入“,vimrc”,它会在新选项卡中打开我的 vimrc。

第二行会在你保存并关闭 vimrc 时自动将更改加载到 vimrc 中。这太神奇了。

答案4

" 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

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

相关内容