在 vim 中,我在插入模式下使用 Ctrl-n 完成单词。如果有多个可能的匹配项,我会得到一个下拉列表,我可以使用箭头键从中选择一个可能的匹配项。
但是,我不想使用箭头键;我想使用“j”和“k”键。但是当我输入“j”或“k”时,它会插入字母,而不是在下拉菜单中向上或向下。有没有办法可以配置 vim 以按照我想要的方式执行此操作?
最佳答案
见 :h
popupmenu-keys
.
弹出菜单子(monad)模式没有特殊的映射集,但您可以进行有条件的插入模式映射:
inoremap <expr> j pumvisible() ? "\<C-N>" : "j"
inoremap <expr> k pumvisible() ? "\<C-P>" : "k"
这使得
j
/k
导航弹出菜单,如 <C-N>
/<C-P>
, 虽然它是可见的。附录:如果您希望能够在键入
j
时保持控制和 k
,您可以将它们替换为 <C-J>
和 <C-K>
, 分别。 (请参阅 mwcz 对此答案的评论。)
关于vim 单词完成导航与 'j' 和 'k',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4016649/