在vim中搜索我的python完成必杀技时,我真的很喜欢< C-x> < C-i>:“当前和包含文件中的关键字”。这几乎总是让我从另一个完成的模块中得到一个令人讨厌的名字,这很棒。
(Omni-completion显然更好,当它工作,但它经常报告它找不到任何匹配。好吧,Python不是Java,我明白了)
这个多文件完成的唯一问题是它非常慢:在我的上网本上,每次点击< C-x>时,具有合理进口集的文件最多需要4或5秒才能解析。 c为C-i的取代。每次点击< C-x>时,似乎都会加载每个导入的文件。 c为C-i的取代。有没有办法缓存文件或加快这个过程?使用标签完成会更快吗?
答案 0 :(得分:6)
如果您正在处理具有多个源文件的项目,则此过程很可能需要一些时间(vim需要解析所有包含的源文件以查找更多包含的源文件并构建单词列表。)您可以使用tag-completion,它使用ctags的输出几乎相同,但你需要运行一些测试来判断速度差异。
我个人在插入模式下使用完成完成(<C-P>
或<C-N>
。)默认情况下,它匹配中的所有字词所有缓冲区(甚至已卸载的缓冲区,即已关闭的文件),但速度非常快。尽管如此,即使你在2-3个字符后激活它,我发现完成工作仍然非常准确。