我想 维姆的完成菜单的工作方式更像 Visual Studio 中的菜单。我希望能够编写变量的开头(或可以完成的内容),点击全能完成键并获取完成菜单。现在我希望完成菜单突出显示最佳匹配,但不将其添加到缓冲区中。现在我希望能够按 ENTER 键输入所选元素,或者输入更多字母以进一步过滤完成菜单(可能突出显示完成菜单中的新项目),然后按 Enter 插入。

维基页面/提示位于 http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE 应该这样做,但我无法让它工作。有其他人尝试过该技巧中的代码并使其按照我所描述的方式工作吗?

有帮助吗?

解决方案

引用的 wiki 页面包含损坏的映射。用户 (Spiiph) 将 Vim 代码更改为对他来说更好的代码,但并不正确。我撤销了他所做的更改,现在 内线图 声明应该有效。

为了避免混淆,恕我直言,这些是正确的命令:

inoremap <expr> <c-n> pumvisible() ? "\<lt>c-n>" : "\<lt>c-n>\<lt>c-r>=pumvisible() ? \"\\<lt>down>\" : \"\"\<lt>cr>"
inoremap <expr> <m-;> pumvisible() ? "\<lt>c-n>" : "\<lt>c-x>\<lt>c-o>\<lt>c-n>\<lt>c-p>\<lt>c-r>=pumvisible() ? \"\\<lt>down>\" : \"\"\<lt>cr>"

附:当谈到使用 Vim 的补全功能时,我发现 超级选项卡脚本很方便。也许在这种情况下这个脚本对你来说也很有趣......

其他提示

我用SUPERTAB,我真的很喜欢,下面似乎工作伟大:

imap <expr> <Tab> pumvisible() ? "<Tab>" : "<Tab><Down>"

有关参考:我运行Debian SID,这既适用VIM 7.2.245和我打补丁7.2.259

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top