【问题标题】:Is there a way to change the behavior of the vim omnicomplete menu?有没有办法改变 vim 全功能菜单的行为?
【发布时间】:2010-09-23 13:23:38
【问题描述】:

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

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

这可能吗?

【问题讨论】:

    标签: vim menu omnicomplete


    【解决方案1】:

    您要查找的命令是:

    :set completeopt+=longest
    

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

    【讨论】:

    • 之后,再次按 Tab 键完全完成,而不是完成下一个最长的公共前缀。有没有办法做到这一点?
    • @AlexanderDuchene 您可能有另一个插件正在对您执行此操作。
    【解决方案2】:
    set wildmenu
    set wildmode=list:longest,full
    

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

    【讨论】:

      【解决方案3】:

      这个插件可能会满足你的需求:autocomplpop

      或者你可以尝试制作 Vim 补全弹出菜单work just like in an IDE

      【讨论】:

        【解决方案4】:

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

        :he compl-current
        

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

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

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

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

        【讨论】:

          猜你喜欢
          • 2019-10-15
          • 1970-01-01
          • 1970-01-01
          • 2022-01-21
          • 1970-01-01
          • 2014-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多