vim完成删除键入的字母

时间:2010-12-06 23:28:00

标签: vim autocomplete

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

假设我正在使用以下内容编辑文件:

MyCompany2
MyCompanies
MyCompany3

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

  

MyCompany2

现在我点击退格,然后 A 所以我在

  

MyCompanyA

不,我决定再次尝试完成,所以我点击 Ctrl-N ,vim带我回到

  

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

更新

我给错了完成序列。如果首先按 Ctrl-P ,则会出现我描述的问题。然后在上面的场景中你得到了其余的,如上所述。

  

MyCompany3

2 个答案:

答案 0 :(得分:0)

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

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

    MyCompany2
    MyCompanies
    MyCompany3
    
  • 下面打开一个新行
  • 输入“我的”
  • 按Ctrl-N
  • 选择MyCompany2
  • Backspace(之后获取“MyCompany”)
  • 输入A(获取“MyCompanyA”)

Ctrl-N不执行任何操作 - 正如所料,状态栏显示:-- Keyword completition (^N^P) Pattern not found

你有可能有一些改变默认行为的插件吗?您还可以尝试vi -u NONE检查.vimrc中是否有某些内容正在改变此行为。如果你有其他系统来检查它,那就最好。

答案 1 :(得分:0)

您确定要在不事先按Ctrl-X的情况下直接使用Ctrl-N吗? Ctrl-N还将搜索所有打开的缓冲区。

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