Vim风格键,可在Omnicomplete框中上下导航

Vim风格键,可在Omnicomplete框中上下导航,vim,Vim,我从emacs迁移到vim的原因之一是为了避免使用诸如Ctrl+N和Ctrl+p等笨拙的键绑定进行上下操作。我更喜欢像hjkl这样的符合人体工程学的按键。然而,我没有找到一种不使用箭头键或Ctrl+N/P在Omnicomplete框中导航的方法 vim是否提供其他上下键 在插入模式完成弹出窗口中,任何可打印字符都用于进一步限制匹配列表,因此只有/键可选择不同的菜单项 如果您可以接受丢失一些完成键,则可以定义以下映射: :inoremap <expr> j pumvisible() ?

我从emacs迁移到vim的原因之一是为了避免使用诸如Ctrl+N和Ctrl+p等笨拙的键绑定进行上下操作。我更喜欢像hjkl这样的符合人体工程学的按键。然而,我没有找到一种不使用箭头键或Ctrl+N/P在Omnicomplete框中导航的方法

vim是否提供其他上下键


在插入模式完成弹出窗口中,任何可打印字符都用于进一步限制匹配列表,因此只有
/
键可选择不同的菜单项

如果您可以接受丢失一些完成键,则可以定义以下映射:

:inoremap <expr> j pumvisible() ? '<C-n>' : 'j'
:inoremap <expr> k pumvisible() ? '<C-p>' : 'k'
:inoremap j pumvisible()?'':'j'
:inoremap pumk visible()?'':'k'

我有以下映射,我非常满意:

" Move up and down in autocomplete with <c-j> and <c-k>
inoremap <expr> <c-j> ("\<C-n>")
inoremap <expr> <c-k> ("\<C-p>")
“使用和在自动完成中上下移动
inoremap(“\”)
inoremap(“\”)

如果您正在使用一个插件(如Neocomplete、其较年长的兄弟Neocomplcache或YouCompleteMe),该插件会在有需要完成的内容时立即弹出自动完成对话,那么这一点尤其有用。

太棒了,我不知道您能做到这一点!