大多数情况下,Vim中的自动完成功能对我来说很好,但有时它似乎在扫描当前文件引用的文件,然后它变得非常缓慢,有时需要几秒钟才能释放焦点回到我的身边。Vim的自动完成速度很慢
有时Vim的告诉我简单地认为它是“扫描”其他时候,它说:“扫描标签”
我只有这一点在Ruby文件,并且它发生主要是当有文件中的要求。
我的猜测是,这是某种功能,它会检查相关文件的自动完成选项,但我并不真的需要这种功能,并且希望更快地自动完成。
大多数情况下,Vim中的自动完成功能对我来说很好,但有时它似乎在扫描当前文件引用的文件,然后它变得非常缓慢,有时需要几秒钟才能释放焦点回到我的身边。Vim的自动完成速度很慢
有时Vim的告诉我简单地认为它是“扫描”其他时候,它说:“扫描标签”
我只有这一点在Ruby文件,并且它发生主要是当有文件中的要求。
我的猜测是,这是某种功能,它会检查相关文件的自动完成选项,但我并不真的需要这种功能,并且希望更快地自动完成。
正如我在评论中提到的,我有同样的问题。这是我发现的;
有一个设置告诉VIM在哪里寻找完成,称为complete
。
:set complete
complete=.,w,b,u,t,i
这是默认值。我的问题是(实际上是)'我',它扫描所有包含的文件。这里有两个问题,第一个,找到所有这些文件可能需要相当长的时间,特别是如果你像我一样,有
:set path=**
问题二,一旦发现,他们需要被读取,如果你如果使用网络文件系统(我是清晰的),发现并读取所有这些文件可能会触发缓存未命中,使其变得非常缓慢。
我已经删除了我现在,因为我有一个标签,文件,往往不是,我也有我的缓冲区(加载或卸载)相关的文件将被搜索“B的结果' 和你'。
使用
set complete-=i
从列表中删除我,注意,这是本地缓存。
非常感谢。这是'insert.txt'帮助中未提及的其中一个曝光不足的相关配置选项 – sehe
您有正在使用的项目的标签文件吗?如果不尝试使用exuberant-ctags生成一个,Vim应该使用taglist pluglin来获取它。
ctags -R 在您的项目根目录中;是你的命令,如果你在linux上 – gustavgans
从升级到Vim 7.3(从7.2开始)有一个非常类似的问题:我使用(出色的)ACP plugin,在较长的源文件(C文件,1700 LOC)中,弹出窗口花费时间跳过这些建议当我在文件底部附近进行编辑时。
使用PerformanceValidator(从Softwareverify),我发现了一些折叠方法进行了一次又一次打来电话,导致非常高的处理器负载和缓慢完成。
我的解决方法是将foldmethod
(fdm
)设置为manual
。这解决了它...
您真是太棒了。对于我来说,在Ruby文件中完成的速度非常慢,文件大小很小(大约100 LOC)。解决不了。然后我读了这个。我将Ruby缓冲区中的foldmethod更改为除“语法”之外的任何内容,并立即完成完成。 现在,为什么在Vim执行自动完成时,foldmethod被称为疯狂? – Legion
这也适用于我。再说一遍,“为什么在Vim做自动完成时,foldmethod被称为疯狂?”! – Jason
如果可以的话,我会给+5。大声呼吁[这个博客](http://economyofeffort.com/2012/03/01/fixing-slow-vim-auto-completion-with-ruby-files/)指向我在这里。 – Kelvin
你使用了什么样的完整功能? –
我有同样的问题,但在C++中。你有没有受到控制?我尝试过使用和不使用标签文件,但是它会以递归方式持续扫描当前目录(我将它放大,看看它在做什么,并且一直在调用它可以找到的所有文件的统计信息)。这是一个清晰的环境== slooooow。 – falstro