【发布时间】:2009-06-28 15:10:52
【问题描述】:
我知道我可以通过CTRL+N 和CTRL+P 完成单词,并通过带有CTRL+X CTRL+O 的omnifunc 完成代码。我还尝试了Supertab(非常好),因为我习惯了 TAB 完成。这一切都很好。我想在打字时查看可能的匹配项,所以我也尝试了autocomplpop.vim,女巫就是这样做的。
不过,我想完成的是,将两者结合起来并稍作改动:我希望在我输入时看到建议弹出(就像autocompop)但是当我使用TAB 单词应该仅扩展到最大的共同匹配:
foo bar testor booze test baz teter
te<TAB>
我在第二行输入te后,弹出窗口应该提示test、teter和testor。
当我按下TAB 时,它应该什么都不做,因为没有比te 更多的共同点。在我输入额外的s 并按TAB 后,它应该将tes 扩展为test(因为它是最小的共同点)并在第二个TAB 之后扩展为testor。
编辑:我尽量说得更清楚...
-
te<TAB>- 应该什么都不做,因为“我们”不知道是 't' (teter) 还是 's' (test, testor) 应遵循。
-
tes<TAB>- 应该扩展到
test(因为这对测试和测试者都有效,并且teter不再是可能的匹配项)。
- 应该扩展到
-
test<TAB>- 应扩展为
testor(仅可能匹配)。
- 应扩展为
好吧,建议弹出窗口只是奖励,但我真的很想看到TAB 的行为。希望我在这里没有深奥,你可以帮助我使用一些脚本技巧或插件来驯服 VIM 来做到这一点。
【问题讨论】:
-
“test”不是“test
”的可能匹配项吗?这就是 bash 对待它的方式...(除了第三种情况,您的示例反映了 bash 的完成规则...)
标签: vim code-completion