我正在使用CoC插件,它工作得很好。
这个命令重新映射了回车键,所以我们可以使用回车键来确认选择建议弹出窗口。
这个映射工作得很好,除了它在接受选择后保持插入模式:
inoremap <expr> <cr> pumvisible() ? "<C-y>" : "<C-g>u<CR>"`
从https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources use-cr-to-confirm-completion
我如何修改这个返回到正常模式后,我按回车键?
任何想法?谢谢!
首先,让我们解构从该页获得的映射:
inoremap <expr> <cr> pumvisible() ? "<C-y>" : "<C-g>u<CR>"
inoremap
使其成为非递归插入模式映射。i
表示"插入模式";nore
表示"非递归"。我知道最后的remap
很容易让人把这些东西称为"重新映射"。或";remappings"但事实并非如此。它们只是"映射"。<expr>
使其成为表达式映射。这意味着右边是一个表达式,将在运行时求值以产生实际的RHS。pumvisible() ? "<C-y>" : "<C-g>u<CR>"
是Vim所称的"三元运算符"。(又名三元运算符)::help trinary
。简单来说,它是这样的:"如果弹出菜单可见,返回<C-y>
;如果不可见,返回<C-g>u<CR>
":help complete_ctrl-y
接受弹出菜单中的当前建议。:help ctrl-g_u
阻止Vim在<CR>
之前插入撤销点。这不是严格必要的,但却是好的做法。
当你接受一个建议时,你想要调整映射的行为,所以必须改变的是"<C-y>"
部分。
现在…
- 你已经知道按什么键离开插入模式,
- 你可以看看
:help key-notation
,如果你不确定如何表示该键, - 你知道你需要改变映射的哪一部分,
- 您应该通过查看"三位一体"的最后两个部分来了解如何进行。操作符。