4

我正在用omnicomplete学习vim。我想知道是否可以在不自动完成当前文本的情况下显示全能列表。例如,

如果我输入“str.c”然后调用omnicomplete,它将显示一个列表,其中包含以“c”开头的可能单词,并自动完成当前文本,例如“capitalize”。

在此处输入图像描述

例如,如果我要查找的方法是计数,我必须一直向下滚动列表才能找到它,或者删除“apitalize”部分,然后键入 o 等。是否可以只显示列表,这样如果我在 c 之后调用它,它会显示列表而不自动完成大写?例如像下面这样,我仍然可以输入 o 来快速计数

在此处输入图像描述

4

4 回答 4

15

感谢@romainl 评论,我查找了completeopt,我找到了答案Make Vim completion popup menu work like in an IDE。它还有很多其他相关的提示。为了做出问题中描述的行为,

:set completeopt=longest,menuone
于 2013-04-14T06:44:56.253 回答
1

您也可以坚持使用基本的 vim 功能,并C-e在完成时使用 while 让 vim 删除列表并返回到您启动完成的点。

于 2013-04-14T08:36:34.947 回答
1

或者,您可以在保持完成菜单打开的同时按<C-P>之后<C-X><C-O>返回您键入的内容。

查看:h ins-completion-menu更多信息。

于 2013-06-13T08:56:27.937 回答
1

我认为最初的问题是缺少noinsert选项completeopt

于 2020-09-27T02:06:29.800 回答