映射/函数删除后的源.vimrc

时间:2013-09-27 15:05:17

标签: vim

我想重新加载.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实现这种行为吗?

1 个答案:

答案 0 :(得分:3)

您需要编写一个自定义:Reload命令来解析.vimrc的函数/命令/映射定义,以及:delfunction / :delcommand / :unmap他们。这是一项相当大的努力,但仍不太可能捕获所有案例。还有什么可以避免重启Vim?!

认真思考你是否真的需要这个(我无法想象任何理由)。我们谈论的是启动时间的几秒,最大值。如果您担心不得不重新打开文件等,可以使用内置的:mksession(但必须要小心会话本身的内容!)