如何重新映射 CoC VIM 自动完成键?

2023-11-25

我正在尝试将自动完成键从“Enter”键重新映射到“TAB”,因为当我打算转到下一行时,我会继续自动完成。下面的代码是 coc 的默认选项,我认为这是我应该能够重新映射密钥的地方。

" make <CR> auto-select the first completion item and notify coc.nvim to
" format on enter, <cr> could be remapped by other vim plugin
inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
                              \: "\<c-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"

我认为将开头的 更改为 就可以了。然而,虽然它确实允许我使用 TAB 自动完成,但在某些情况下它会产生奇怪的自动缩进。例如:

//normal behavior
someFunction(){
    //cursor here appropriately indented
}


//behavior after I made the changes mentioned above
someFunction(){
//cursor here}

我想我只是根本不理解 coc 或 VIM 中重新映射键的一些东西。

为什么我不能简单地将 更改为 ?如何将自动完成键从“Enter”重新映射到“TAB”?


将以下行替换为coc 配置示例

inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm()
                              \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"

有了这个:

inoremap <silent><expr> <TAB> coc#pum#visible() ? coc#pum#confirm() : "\<C-g>u\<TAB>"

这是基于 @christofuy 的答案,但在该行更改后进行了更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何重新映射 CoC VIM 自动完成键? 的相关文章

随机推荐