我最近更改了我的箭头键以映射到no-op以强制自己正确使用vim导航。当在vim中使用单词完成时,弹出可能完成的单词列表。我曾经使用箭头键来导航它,但现在必须使用与完成启动相同的映射来迭代。
当弹出此菜单时,vim是否保持插入模式,更改为其他模式,或者是否进入修改后的插入模式(类似于粘贴切换的模式),我可以更改j
和{ {1}}映射在列表中移动?
如果没有办法在弹出窗口中调用方法打开和关闭?
答案 0 :(得分:2)
通过<c-p>
和<c-n>
导航完成情况。有关详细信息,请参阅:h ins-completion
。
答案 1 :(得分:2)
插入模式完成候选项的弹出菜单属于插入模式,没有特殊的子模式。要区分,您必须使用:inoremap <expr>
条件的地图表达式pumvisible()
。例如。重新映射j
以选择下一个完成候选人:
:inoremap <expr> j pumvisible() ? '<C-n>' : 'j'
请注意,使用此功能,您将无法键入包含j
的候选人名称,以便向下钻取并从列表中进行选择(这对:set completeopt+=longest
特别有用)。