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