输入按钮插入新行而不是选择替代

时间:2013-08-01 15:47:33

标签: vim

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

之前没有发生这种情况,可能是因为我安装了太多插件并导致了冲突。检查所有这些插件的镜头切割并找出来源是非常可怕的。因此,将内置自动完成映射到其他一些键可能是一种解决方案,但我不知道该怎么做。

这不是一个大问题,但真正使编码不“顺利”。之前有人遇到过这种情况,你是如何处理它的。

2 个答案:

答案 0 :(得分:3)

简短回答:您无需使用<cr>来接受匹配。

来自vim帮助的代码段:h popupmenu-keys

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.

我建议您使用<c-n><c-p>切换到正确的映射,然后继续输入。通常这意味着我键入一个空格或一些其他标点符号键,菜单关闭。我从不使用<cr>来选择菜单项。但是,如果您真的想接受匹配,请使用<c-y>。对所选菜单项选择“是”。

答案 1 :(得分:0)

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

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

祝你好运。这花了我大约十分钟,经过一年偶尔的烦恼,我希望我早点花时间。