当我在大型 C 文件(大约 8000 行)中使用语法时 完成 ctrl-p 和 ctrl-n 非常慢(超过 20)。当我关闭语法时,完成只需不到一秒钟。
我找到了重现此行为的最小方法。使用一个空的 .vim 文件夹并创建一个仅包含这些行的 .vimrc:
set syntax on
set foldmethod=syntax
当您打开一个大的 C 文件时,完成(甚至一般编辑)变得非常慢。
编辑:
此行为是由于我使用的是测试版。我不确定我是否应该完全删除这个问题,或者保留它以便如果其他人有同样的问题可以得到一些线索。
最佳答案
由于 foldmethod=syntax
来自:帮助待办事项:
- Slow combination of folding and PHP syntax highlighting. Script to reproduce it. Caused by "syntax sync fromstart" in combination with patch 7.2.274. (Christian Brabandt, 2010 May 27) Generally, folding with 'foldmethod' set to "syntax" is slow. Do profiling to find out why.
FastFold plugin使得折叠仅在保存时重新计算(因此您始终使用 foldmethod=manual
- 但折叠是使用 foldmethod=syntax
或您之前设置的任何内容计算的).
这解决了我的问题。现在我可以在我的 5000 行 C++ 文件中使用 compl-whole-line 完成,它是即时和快速的,而不是花费几分钟和 react 迟钝。
关于c - 在具有大型 C 文件的 vim 中启用语法和语法折叠会使完成变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2916887/