如何在不关闭 Vim 的情况下重置其设置(包括插件和 .vimrc 文件)?

9

我已经使用Vim两年了,使用“pathogen”来管理插件。我正在寻求一种在不关闭Vim的情况下重置所有Vim设置(包括插件、.vimrc文件)的方法。有什么想法吗?

附:在某些情况下,重新加载vimrc不能完全像重新打开vim一样工作,因此我想要重新加载整个状态,就像重新打开vim一样。


2
你为什么想要重新加载 Vim 的状态而不是重新打开 Vim?为什么不重新打开 Vim?通过 :mksession 创建会话并通过 vim -S session.vim 重新启动 Vim 是否足够好?重新加载插件真的有必要吗? - Peter Rincker
2个回答

8

From :h set

:se[t] all&             Set all options, except terminal options, to their
                            default value.  The values of 'term', 'lines' and
                            'columns' are not changed. {not in Vi}

2
重置所有选项后,您可能想要执行 :source $MYVIMRC:runtime! plugin/**/*.vim。基本上,按照 :help startup 中描述的步骤进行操作。 - benjifisher
2
@benjifisher 我怀疑大多数插件都无法真正重新加载。 现在普遍的做法是添加一个守卫来防止这种情况发生。 您可以使用类似 scriptease:Runtime 命令“解除”守卫,然后执行 :runtime!。 然而,我的担忧并不止于此,因为还有许多其他需要被拆除和重建的东西,例如 autocmd、映射、函数和命令等。 - Peter Rincker

0

不清楚为什么要避免重新启动Vim。

如果问题是丢失选项卡、窗口和缓冲区的当前状态,最好创建一个会话来保存重要内容,然后重新加载其他内容。

在Peter Rincker的建议基础上,有一个很棒的插件叫做session.vim,它使管理会话变得非常容易。它还创建了Restart命令

此命令保存您当前的编辑会话,重新启动Vim并恢复您的编辑会话。当您调试无法使用更轻量级方法重新加载的Vim脚本时,这可能非常方便/安全。

:Restart命令在这里运行得非常好,所以我从未测试过其他“轻量级方法”的插件。但是,如果完全重新启动Vim不是一个选项,您可以尝试它。


2
我非常理解作者为什么避免重新启动 Vim,可能是因为作者想要添加新的 Vim 插件或其他一些东西,这也困扰了我很长时间。 - alexzzp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接