取消完成


11

通常,插入模式完成(<C-n>)会在我第一次按时插入正确的词<C-n>,但并非总是如此。因此,我希望Vim在按时插入它认为最合适的匹配项<C-n>,但是如果正确的匹配项未显示或在列表中很长一段距离,仍然允许我取消此插入。

当然,我可以对这种行为进行编码,但是我觉得应该有一个标准的键(组合)来做到这一点。有人可以指出我正确的方向吗?

奖励问题:是否可以使用另一个键来获得最长的匹配(就像我按下之前一样<C-n>)?

为了它的价值,我正在使用 completeopt=menu


1
ctrl-u你在找什么?
statox

不,ctrl -u似乎删除了整行。我正在寻找仅删除按ctrl-n插入的文本的组合。
Octaviour,2013年

我的第一个念头是“这里不是cg通常取消键的工作吗?”,然后我意识到那是emacs。几天前的学习使我腐败了,我将沐浴在一条神圣的河流中,净化自己!
sundar-恢复莫妮卡

Answers:


13

来自:h complete_CTRL-E

                                                        * complete_CTRL-E *
激活完成后,您可以使用CTRL-E停止它并返回到
最初输入的文字。不会插入CTRL-E。

同样,如果键入,a然后^P得到一个很长的列表,则可以单击^N 以返回到原始文本,而补全弹出窗口仍处于活动状态。然后,您可以键入其他字符以缩小完成列表。


那正是我想要的。我还没有意识到ctrl-p也会带我回到原始输入。谢谢。
Octaviour,2013年

2
@Octaviour,我发现ctrl-p通常比ctrl-n更有用,因为它会在您所在位置之前(而不是之后)搜索最接近的匹配项。因此,如果您刚刚写过一个单词,则如果您需要重复该单词,则ctrl-p会迅速向您显示相同的单词(例如,再次在代码中使用相同的变量)
Shahbaz

是的,^P正是出于这个原因,我习惯了写信。
安东尼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.