2

我们将一些服务器从 CentOS 5 升级到 CentOS 6。在所有 CentOS 6 服务器上,Vim(vim 7.2 和 7.3 上的相同错误)通常可以正常运行几个小时,但不可避免地会开始非常缓慢地插入字符。

起初,我输入的字符只需要一两秒钟的时间就会出现,但是一旦速度很慢,每个字符所用的时间就会成倍增加。输入十几个字符后,实际上不可能再插入更多。您仍然可以一次插入一个字符,方法是键入一个字符,然后键入Ctrl-c,然后您键入的字符将出现。非插入模式仍然可以正常工作。

设置fdm=manual没有效果。只有超过 100K 的源代码文件才会出现此问题。我在工作中只编辑 Perl 源代码文件。它不会在退出和重新启动 vim 时消失,但总是在第二天消失,在工作几个小时后重新出现。

设置:syntax off解决问题!但是后来我没有语法突出显示。

Vim 在运行 CentOS 5 的机器上的相同文件上仍然可以正常工作。没有其他软件有这个问题。
有没有其他人看到过类似的行为?有什么想法或解决方案吗?

4

1 回答 1

1

Vim 语法高亮在一系列 .vim 文件中定义,通常在 vimXX/syntax 下,其中 XX 是 vim 的版本。这些文件包含定义语法高亮类的正则表达式(例如“注释”或“流控制”)。我猜测减速是由失控的正则表达式引起的。CentOS 6 可能以这样一种方式修改了 syntax/perl.vim,即添加单个字符可能会导致正则表达式引擎内部某处的组合爆炸。

您可以尝试在 CentOS 5 中用相同的文件替换 syntax/perl.vim,看看问题是否仍然存在。

于 2013-05-29T11:50:43.183 回答