完成菜单启动时vim会进入什么模式?

时间:2013-07-21 22:58:34

标签: vim

我最近更改了我的箭头键以映射到no-op以强制自己正确使用vim导航。当在vim中使用单词完成时,弹出可能完成的单词列表。我曾经使用箭头键来导航它,但现在必须使用与完成启动相同的映射来迭代。

当弹出此菜单时,vim是否保持插入模式,更改为其他模式,或者是否进入修改后的插入模式(类似于粘贴切换的模式),我可以更改j和{ {1}}映射在列表中移动?

如果没有办法在弹出窗口中调用方法打开和关闭?

2 个答案:

答案 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特别有用)。