vim - 让 Vim 补全工作更像在 Visual Studio 中

标签 vim code-completion

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

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

最佳答案

引用的 wiki 页面包含损坏的映射。用户 (Spiiph) 将 Vim 代码更改为对他来说更好的代码,但并不正确。我撤消了他所做的更改,现在 inoremap 语句应该可以工作。

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

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>"

PS:当谈到使用 Vim 的补全功能时,我发现了 SuperTab script 很方便。也许在这种情况下这个脚本对您来说也很有趣......

关于vim - 让 Vim 补全工作更像在 Visual Studio 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/514967/

相关文章:

regex - 用 vim 替换标签之间的所有字符实例

vim - 在 vi 中将一个文件的内容复制并粘贴到另一个文件

javascript - 任何 IDE 中的 Oo javascript 代码补全

visual-studio - VS2013智能感知代码完成

xcode - Xcode 4 中多参数方法名称的代码完成

c++ - ctags 最佳实践

regex - Vim 在一个正则表达式中进行否定前瞻和否定后视

vim - 如何在 Vim 或 gVim 中查看 UTF-8 字符

java - NetBeans Java 代码完成太急于取悦

python - 使用 VIM 完成内省(introspection)代码? ...或其他具有此功能的轻量级编辑器?