用于在Omnicomplete框中上下导航的Vim样式键

woo*_*ngs 6 vim

我从emacs转移到vim的原因之一是避免使用Ctrl + N和Ctrl + P等难以置信的键绑定来上下.我更喜欢像hjkl这样更符合人体工程学的键.但是,在没有使用箭头键或Ctrl + N/P的情况下,我没有找到在Omnicomplete框中导航的方法.

vim是否提供其他上下键?

在此输入图像描述

Oli*_*rUv 9

我有以下映射,我很满意:

" Move up and down in autocomplete with <c-j> and <c-k>
inoremap <expr> <c-j> ("\<C-n>")
inoremap <expr> <c-k> ("\<C-p>")
Run Code Online (Sandbox Code Playgroud)

如果您使用的插件(例如Neocomplete,其较早的同级Neocomplcache或YouCompleteMe)在可能有某些内容需要完成后立即弹出自动完成对话,这将非常有用.


Ing*_*kat 8

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

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

:inoremap <expr> j pumvisible() ? '<C-n>' : 'j'
:inoremap <expr> k pumvisible() ? '<C-p>' : 'k'
Run Code Online (Sandbox Code Playgroud)

  • 太棒了,我不知道你能做到这一点! (2认同)