首页 > 解决方案 > 如何调试按 'o' 冻结 Vim

问题描述

我的 Vim 正常工作,但有时会进入奇怪的状态。

当它发生时,o在正常模式下按下会导致 Vim 挂起。然后我可以通过按Ctrl+使其脱离该状态c。我希望光标向下移动一行并进入insert模式。

有趣的是,一旦它进入这种状态,我每次都可以复制它。再次按下o将再次挂起,直到我按下Ctrl+ c

很难调试它是否是一个特定的插件,因为它不会每次都发生。如果我禁用了一个插件,我不能确定是这个插件导致了这个问题,因为 Vim 通常可以工作,所以它可能每隔几天就会出现一次。

另外,我没有任何映射到o. map o返回No mapping found

我不确定如何调试它;有人有什么想法吗?

标签: vim

解决方案


因为当我进入这个奇怪的状态时我可以复制这个问题,我可以分析这个问题。

profile start freezing_debug.txt
profile func * 
profile file *

我设法发现GetLastRealCodeLNum在 Vim 包中是根本原因。搜索 Google 帮助我发现已经创建了一个票证,我可能需要做的就是更新我的 Vim 版本以获取此更改。


推荐阅读