【问题标题】:vim completion deletes typed lettersvim完成删除键入的字母
【发布时间】:2010-12-07 14:16:33
【问题描述】:

我遇到了一个对我来说非常烦人的 vim 完成行为,我无法弄清楚如何配置 vim 以使其行为不同。也许根本不可能。

假设我正在编辑具有以下内容的文件:

MyCompany2
MyCompanies
MyCompany3

现在我想添加另一个条目(比如 MyCompanyABC),所以我输入 My 并按 Ctrl-N,所以现在我有了

我的公司2

现在我按退格,然后按A,所以我在

我的公司A

不,我决定再次尝试完成,所以我按 Ctrl-N,vim 将我带回

我的

那么有没有办法让最后一步保留我已经拥有的东西?

更新:

我给的完成顺序错误。如果第一次点击 Ctrl-P,就会出现我描述的问题。然后在上面的场景中你得到,其余的都和上面一样。

我的公司3

【问题讨论】:

    标签: vim autocomplete


    【解决方案1】:

    这在我的机器上不是这样的(Ubuntu 10.10,这里是 vim 7.2.330)。如果我这样做:

    • 输入vi打开vim
    • 键入您在上面提供的文本

      MyCompany2
      MyCompanies
      MyCompany3
      
    • 在下面新开一行

    • 输入“我的”
    • 按 Ctrl-N
    • 选择我的公司2
    • 退格键(之后获取“MyCompany”)
    • 类型 A(获取“MyCompanyA”)

    Ctrl-N 什么都不做 - 正如预期的那样,状态栏显示:-- Keyword completition (^N^P) Pattern not found

    你有没有可能有一些插件改变了默认行为?您也可以尝试vi -u NONE 来检查您的.vimrc 中是否有改变这种行为的东西。最好有其他系统来检查它。

    【讨论】:

    • 谢谢。我更新了我的问题 - 只有在第一次尝试使用 Ctrl-P 完成后才会出现问题。现在我在 CentOs5 上尝试了 vim 7.0,在 Windows7 上尝试了 vim 7.2
    • 是的,这似乎确实不一致。在 Ctrl-P 之后尝试 Ctrl-E 以中止完成,这将是一种解决方法。
    【解决方案2】:

    您确定要直接使用 Ctrl-N 而不事先按 Ctrl-X 吗? Ctrl-N 也会搜索所有打开的缓冲区。

    也许按 CTRL-X CTRL-N 或 CTRL-X CTRL-P 会导致更稳定的完成。

    【讨论】:

      猜你喜欢
      • 2010-12-02
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 2020-07-01
      • 2010-12-30
      • 1970-01-01
      相关资源
      最近更新 更多