我想重新加载.vimrc
而不重新启动vim
;显而易见的答案是:source $MYVIMRC
,但仅在我编写新功能/键盘图时才有效,如果我删除则会失败。例如:
" empty .vimrc
" to which I've added L()
function! Temp()
echo "ABC"
endfunc
:w | so ~/.vimrc
现在,:call Temp()
将按预期产生“ABC”。
" now, I've deleted Temp()
:w | so ~/.vimrc
... :call Temp()
仍会生成“ABC”。但是,退出并重新打开我的.vimrc会完全从内存中删除该函数。我可以使用:source
实现这种行为吗?
答案 0 :(得分:3)
您需要编写一个自定义:Reload
命令来解析.vimrc
的函数/命令/映射定义,以及:delfunction
/ :delcommand
/ :unmap
他们。这是一项相当大的努力,但仍不太可能捕获所有案例。还有什么可以避免重启Vim?!
认真思考你是否真的需要这个(我无法想象任何理由)。我们谈论的是启动时间的几秒,最大值。如果您担心不得不重新打开文件等,可以使用内置的:mksession
(但必须要小心会话本身的内容!)