Vim 输入按钮插入新行,而不是选择备选行

Vim 输入按钮插入新行,而不是选择备选行,vim,Vim,最近,当我尝试使用ctrl+n或ctrl+p自动完成时,当有多个备选方案时,点击enter按钮将插入新行,而不是选择我想要的备选方案 这以前没有发生过,可能是因为我安装了太多插件,导致了冲突。检查所有这些插件的截图并找出其来源将是可怕的。因此,将内置的自动完成映射到其他一些键可能是一个解决方案,但我不知道如何做到这一点 这不是一个大问题,但确实使编码变得不“流畅”。以前有人遇到过这种情况,您是如何处理的。我刚刚修复了由vim autoclose插件引起的一个非常类似的问题,将其替换为Auto P

最近,当我尝试使用ctrl+n或ctrl+p自动完成时,当有多个备选方案时,点击enter按钮将插入新行,而不是选择我想要的备选方案

这以前没有发生过,可能是因为我安装了太多插件,导致了冲突。检查所有这些插件的截图并找出其来源将是可怕的。因此,将内置的自动完成映射到其他一些键可能是一个解决方案,但我不知道如何做到这一点


这不是一个大问题,但确实使编码变得不“流畅”。以前有人遇到过这种情况,您是如何处理的。

我刚刚修复了由vim autoclose插件引起的一个非常类似的问题,将其替换为Auto Pairs插件。我怀疑你的是同一个罪魁祸首,但如果你为你的插件使用病原体,实际上追查有罪的一方并不太糟糕——只需将你的一半插件从
~/.vim/bundle
(或任何地方)移到另一个文件夹中,重新启动vim并测试自动完成。如果它如预期的那样工作,那么您知道您已经移出的一个插件是负责的,因此您可以再次这样做,直到您缩小它的范围

在此之前,您还可以尝试运行忽略.vimrc文件的
vim-u NONE
,这可能是因为您自己偷了一些东西,这是最快的排除方法


祝你好运。这花了我大约十分钟的时间,在经历了一年的偶尔烦恼之后,我真希望我能早点抽时间。

简短回答:你不需要使用
来接受匹配

vim帮助
:h弹出菜单键中的代码片段

The behavior of the <Enter> key depends on the state you are in:
first state:      Use the text as it is and insert a line break.
second state:     Insert the currently selected match.
third state:      Use the text as it is and insert a line break.

In other words: If you used the cursor keys to select another entry in the
list of matches then the <Enter> key inserts that match.  If you typed
something else then <Enter> inserts a line break.
密钥的行为取决于您所处的状态:
第一种状态:按原样使用文本并插入换行符。
第二种状态:插入当前选定的匹配项。
第三种状态:按原样使用文本并插入换行符。
换句话说:如果您使用光标键在
匹配项列表,然后键插入该匹配项。如果你打字
然后,其他内容插入换行符。

我建议您使用
切换到正确的映射,然后继续键入。通常这意味着我键入空格或其他标点符号键,菜单关闭。我从不使用
选择菜单项。但是,如果您确实想接受匹配,请使用
。认为所选菜单项为“是”。

执行
:verbose map
以查看
是否映射到任何内容。对于插入模式,这将是
:verbose imap
。我不知道可以使用它来选择菜单项。无论如何,这解决了偶尔的烦恼。非常感谢你!