VIM中的字/代码完成

时间:2009-06-28 15:10:52

标签: vim code-completion

我知道我可以通过CTRL+N& CTRL+P并通过带有CTRL+X CTRL+O的omnifunc完成代码。我另外尝试了Supertab(非常好),因为我已经习惯了TAB完成。这一切都很好。我想在我打字的时候看到可能的比赛,所以我也试过autocomplpop.vim,女巫就是这么做的。

我想要完成的是,两者结合起来还有一点点扭曲:我希望看到我输入时弹出的建议(就像autocompop一样)但是当我使用{{1 这个词应该扩展到最大的公共匹配

TAB

在第二行输入foo bar testor booze test baz teter te<TAB> 后,弹出窗口应显示tetestteter

当我按testor时,它应该什么都不做,因为没有比TAB更常见的基础。在我输入其他te并按s后,它应该将TAB扩展为tes(因为它是最小的共同点),并且在test之后第二testor

修改:我试着更清楚......

  • TAB
    • 应该什么也不做,因为“我们”不知道't'(te t er)还是's'(te s t,te < em> s tor)应该遵循。
  • te<TAB>
    • 应该扩展到tes<TAB>(因为这适用于 - test和testor - 并且teter不再是可能的匹配)。
  • test
    • 应扩展为test<TAB>(仅可能匹配)。

好吧,建议弹出窗口只是奖金,但我真的很想看到testor行为。希望我在这里不要深奥,你可以帮助我用一些脚本技巧或插件来驯服VIM来做到这一点。

1 个答案:

答案 0 :(得分:6)

:set completeopt=longest,menu,preview

可能?

(我不确定你的陈述是否

  

“当我按TAB时,它应该什么都不做,因为没有比te更多的共同点”

与您之后的陈述冲突

  

“在第二次TAB之后对testor。”

在我看来,那时没有比“测试”更常见的了......除非你的意思是第一个标签进入最长的共同点,然后随后的标签循环通过其他匹配,在这种情况下你跟我上面的东西......)