Omnicompletion 正在工作,但它会自动插入第一个结果。
我想做的是打开全能菜单,然后能够键入以缩小结果范围,然后按 Enter 或制表符或空格或其他东西来插入选定的菜单项。
这可能吗?
Omnicompletion 正在工作,但它会自动插入第一个结果。
我想做的是打开全能菜单,然后能够键入以缩小结果范围,然后按 Enter 或制表符或空格或其他东西来插入选定的菜单项。
这可能吗?
您正在寻找的命令是:
:set completeopt+=longest
它将插入所有建议中最长的公共前缀,然后您可以键入和删除以缩小或扩大结果。
set wildmenu
set wildmode=list:longest,full
在这里找到。还有一个很棒的插件可以满足您的所有完成需求,称为SuperTab(续)。
这个插件可能会做你所追求的:autocomplpop
或者您可以尝试让 Vim 完成弹出菜单像在 IDE 中一样工作。
这是一般的 Vim 完成行为。要获得完整的概述,您可以执行
:he compl-current
但是对于您的特定情况(您需要完成处于状态 2 或 3(在上面的文档中描述)。您可以简单地使用 Backspace 或 Control-H 从状态一跳转到状态二。在状态 2 中,您可以通过键入常规字符来缩小搜索范围。因此,要完成缩小范围:
compl<C-X><C-P><BS>letion
我知道,这是完全倒退的,但这就是它的工作原理。
编辑:您也可以使用向下箭头键而不是 Control-H 或 Backspace,它的好处是不删除字符。