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

如何重新映射CoC VIM自动完成键?,vim,coc.nvim,Vim,Coc.nvim,我正在尝试将自动完成键从“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 inore

我正在尝试将自动完成键从“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>"

我想我根本就不了解有关coc或VIM中的重新映射键的某些内容


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

我对vimscript理解得不太好,但我通过反复试验成功地实现了一些功能

默认设置:

inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
                              \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
"This expression seems to be responsible for coc formatting on enter
inoremap <silent><expr> <cr> "\C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
"I this just says autocomplete with the first option if pop up menu is open.
"If it is not open, just do a regular tab.
inoremap <silent><expr> <TAB> pumvisible() ? coc#select_confirm() : "\<C-g>u\<TAB>"
inoremap pumvisible()?coc#(选择)(确认)
\:“\u\\=coc\on\u enter()\”
在选项卡上自动完成:

inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
                              \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
"This expression seems to be responsible for coc formatting on enter
inoremap <silent><expr> <cr> "\C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
"I this just says autocomplete with the first option if pop up menu is open.
"If it is not open, just do a regular tab.
inoremap <silent><expr> <TAB> pumvisible() ? coc#select_confirm() : "\<C-g>u\<TAB>"
“此表达式似乎负责enter上的coc格式设置
inoremap“\C-g>u\\=coc”on#u enter()\”
“我只是说,如果弹出菜单打开,自动完成第一个选项。
“如果未打开,只需执行常规选项卡。
inoremap pumvisible()?coc#选择_确认():“\u”

我不知道这是否有任何帮助,但我的vimrc中有一部分专门用于coc完成:最后一行应该是
coc#u select_confirm
吗?@sguan我发布的答案一直在为我工作,让我在TAB上而不是在ENTER上自动完成。我相信
coc#u select_confirm
是负责r执行自动完成。因此,我认为最后一行在高层所说的是:如果自动完成弹出菜单打开,则执行自动完成,否则执行常规选项卡。