1

我想在.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吗?

4

1 回答 1

4

您需要编写一个自定义:Reload命令来解析您的for 函数/命令/.vimrc映射定义,并:delfunction// s 它们。这是一项相当大的努力,而且仍然不太可能涵盖所有情况。而所有这些都是为了避免重启 Vim?!:delcommand:unmap

仔细想想你是否真的需要这个(我无法想象任何理由)。我们谈论的是几秒钟的启动时间,最多。如果您担心必须重新打开文件等,您可以使用内置的:mksession(但再次必须小心会话本身持续存在的内容!)

于 2013-09-27T15:55:27.327 回答