Vim omni完成:继续键入以选择所需的项目

ale*_*2k8 11 vim omnicomplete

我输入时考虑一下scenerio:

file.f
Run Code Online (Sandbox Code Playgroud)

当我键入Ctrl-XCtrl-Oomn​​i-completion弹出窗口时,会显示第一个项目.这就是我所看到的:

file.fileno
       ---------
       fileno()  <-- highlighted
       flush()
       ---------
Run Code Online (Sandbox Code Playgroud)

请注意,我键入的文本("file.f")已更改为:

file.fileno
Run Code Online (Sandbox Code Playgroud)

我可以将列表中的选项向下移动到'flush',按ENTER键,它最终将会结束

f.flush()
Run Code Online (Sandbox Code Playgroud)

但我想继续键入所需的方法名称而不是使用箭头键.即我想键入"file.f","Ctrl-X Ctrl-O","l"并获得其中之一

file.fileno
       ---------
       flush()
       ---------
Run Code Online (Sandbox Code Playgroud)

要么

file.fileno
       ---------
       fileno()
       flush()  <-- highlighted
       ---------
Run Code Online (Sandbox Code Playgroud)

这可能吗?也许一些全向完成设置必须改变,或者我应该使用不同的键组合而不是Ctrl-XCtrl-O

cle*_*oux 15

添加: set completeopt+=longest 到您的.vimrc文件.

这将告诉omnicomplete仅插入所有匹配的最长公共文本.

有关更多信息,请:help completeopt在vim中运行该命令.

  • 另一种方法是单击CTRL + P,然后再键入一些文本. (6认同)