15

Omnicompletion 正在工作,但它会自动插入第一个结果。

我想做的是打开全能菜单,然后能够键入以缩小结果范围,然后按 Enter 或制表符或空格或其他东西来插入选定的菜单项。

这可能吗?

4

4 回答 4

17

您正在寻找的命令是:

:set completeopt+=longest

它将插入所有建议中最长的公共前缀,然后您可以键入和删除以缩小或扩大结果。

于 2008-11-22T18:22:12.467 回答
3
set wildmenu
set wildmode=list:longest,full

在这里找到。还有一个很棒的插件可以满足您的所有完成需求,称为SuperTab(续)。

于 2008-11-29T10:40:35.597 回答
0

这个插件可能会做你所追求的:autocomplpop

或者您可以尝试让 Vim 完成弹出菜单像在 IDE 中一样工作

于 2008-11-21T23:41:45.130 回答
0

这是一般的 Vim 完成行为。要获得完整的概述,您可以执行

:he compl-current

但是对于您的特定情况(您需要完成处于状态 2 或 3(在上面的文档中描述)。您可以简单地使用 Backspace 或 Control-H 从状态一跳转到状态二。在状态 2 中,您可以通过键入常规字符来缩小搜索范围。因此,要完成缩小范围:

compl<C-X><C-P><BS>letion

我知道,这是完全倒退的,但这就是它的工作原理。

编辑:您也可以使用向下箭头键而不是 Control-H 或 Backspace,它的好处是不删除字符。

于 2008-11-21T23:44:54.750 回答