有没有办法改变vim omnicomplete菜单的行为?

时间:2008-11-21 23:34:16

标签: vim menu omnicomplete

Omnicompletion正在运行,但会自动插入第一个结果。

我想要做的是打开omnicomplete菜单,然后输入以缩小结果范围,然后点击输入或制表符或空格或其他内容以插入所选菜单项。

这可能吗?

4 个答案:

答案 0 :(得分:16)

您正在寻找的命令是:

:set completeopt+=longest

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

答案 1 :(得分:3)

set wildmenu
set wildmode=list:longest,full

找到here。 还有一个很棒的插件可以满足您的所有完成需求SuperTab continued

答案 2 :(得分:0)

此插件可能会完成您的操作: autocomplpop

或者您可以尝试制作Vim完成弹出菜单work just like in an IDE

答案 3 :(得分:0)

这是一般的Vim完成行为。如需完整概述,您可以

:he compl-current

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

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

我知道,这完全是倒退,但这就是它的运作方式。

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