我正在使用 coc.nvim 进行自动完成,当弹出菜单出现时,我希望 Tab 选择第一项并关闭菜单。目前我已经将 Tab 键绑定到<C-n><CR>
,但<CR>
实际上放入了一个行返回,这不是我想要的。
inoremap <expr> <Tab> pumvisible() ? "\<C-n><Space>" : "<Tab>"
试试inoremap <expr> <Tab> pumvisible() ? coc#_select_confirm() : "<Tab>"
。
我在 coc.nvim 的示例文档中找到了答案:
inoremap <silent><expr> <TAB>
\ pumvisible() ? coc#_select_confirm() :
\ coc#expandableOrJumpable() ?
\ "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
let g:coc_snippet_next = '<tab>'
像一个绝对的魅力一样工作。