我知道可以通过
不过,我想要实现的是两者的结合,并稍作改进:当我使用
在第二行输入
当我按下
编辑:我尝试让说明更清楚一些...
CTRL+N
和CTRL+P
进行单词完成,通过CTRL+X
CTRL+O
使用omnifunc进行代码完成。我还尝试了Supertab(非常好用),因为我习惯于使用TAB键补全。这些都很好用。我希望在输入时能够看到可能的匹配项,因此我也尝试了autocomplpop.vim,它可以做到这一点。不过,我想要实现的是两者的结合,并稍作改进:当我使用
TAB
键时,单词应该被展开到最大公共匹配项(就像autocompop
一样),但在我输入时仍然能够看到建议弹出。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
(因为这对于两者都适用- test和testor - 而teter不再是可能的匹配项)。
- 应该扩展为
test<TAB>
- 应该扩展为
testor
(唯一可能的匹配项)。
- 应该扩展为
TAB
的行为。希望我没有变得太深奥了,你可以帮我用一些脚本技巧或插件来控制VIM来做到这一点吗?