在vim中,我在插入模式下使用Ctrl-n来完成单词。如果有多个可能的匹配,我会得到一个下拉列表,我可以使用箭头键从中选择一个可能的匹配。
但是,我不想使用箭头键;我想使用'j'和'k'键。但是当我输入'j'或'k'时,它会插入字母,而不是在下拉列表中上下移动。有没有办法我可以按照我想要的方式配置vim?
答案 0 :(得分:16)
请参阅:h
popupmenu-keys
。
弹出菜单子模式没有特殊的映射集,但您可以进行条件插入模式映射:
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对此答案的评论。)
答案 1 :(得分:8)
我不知道如何用j和k做到这一点。你处于插入模式,它们不起作用。
但是,我有另一种方式, Ctrl + N 的工作方式与Tab相同,你可以使用 Shift - Tab 在列表中向下,Tab用于向上。它比使用箭头键更容易。但不如j和k那么好。
或者您可以使用 Ctrl + N 和 Ctrl + P
答案 2 :(得分:0)
SuperTab(http://www.vim.org/scripts/script.php?script_id=1643)可以为您提供帮助。安装后,您可以使用Tab和Tab-Shift导航弹出菜单。
另请参阅此文档:http://vim.wikia.com/wiki/Omni_completion_popup_menu