使用大型C文件在vim中启用语法和语法折叠会使完成变慢
当我在大C文件(大约8000)行中使用语法时,完成ctrl-p和ctrl-n非常慢(超过20)。 当我关闭语法时,完成只需不到一秒钟。
我想出了一种重现这种行为的最小方法。 使用空的.vim文件夹并创建仅包含以下行的.vimrc:
set syntax on set foldmethod=syntax
当您打开一个大型C文件时,完成(甚至一般编辑)变得非常慢。
编辑:
这种行为是由于我使用的是测试版。 我不确定是否应该完全删除这个问题,或者如果其他人有同样的问题可以留下它可以有一些线索。
我猜测你的完成正在通过语法高亮文件进行调整。 要查看是否是这种情况,并且无论如何都要精简和快速完成,请尝试
:set complete=.
这将使完成只使用当前文件。
阅读更多关于完整选项的信息
:help 'complete'
由于foldmethod=syntax
Vim有时在大文件中很慢(特别是对于ins-completion)
来自:help todo:
- 折叠和PHP语法高亮的缓慢组合。 脚本来重现它。 由“语法同步fromstart”和补丁7.2.274引起。 (Christian Brabandt,2010年5月27日)一般来说,将’foldmethod’设置为“syntax”的折叠很慢。 做剖析以找出原因。
FastFold插件使得折叠仅在保存时重新计算(因此您总是使用foldmethod=manual
– 但折叠是使用foldmethod=syntax
或之前设置的任何内容计算的)。
这解决了我的问题。 现在我可以在我的5000行C ++文件中使用compl-whole-line完成,它是即时且快速的,而不是花费几分钟而且没有响应。