如何在 vim(coc) 自动完成中上下移动

how to move up and down in vim(coc) autocomplete

我最近从 youCompleteMe 转到了 ConquerOfCompletions,我在自动完成方面遇到了问题。当我使用 YCM 时,通过用于工作的自动完成选项选项卡。但是现在在 COC 中,我正在使用 javascript 完成中的 tsserver 我无法使用选项卡。我知道箭头键可以工作,但它们会降低我的工作效率。请为我提供解决此问题的解决方案,我可以轻松访问自动完成选项。

谢谢

根据 COC 文档,您需要编辑 .vimrc https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources:

使用或自定义键完成触发

您可以像这样使用 coc#refresh() 完成触发:

" use <tab> for trigger completion and navigate to the next complete item
function! s:check_back_space() abort
  let col = col('.') - 1
  return !col || getline('.')[col - 1]  =~ '\s'
endfunction

inoremap <silent><expr> <Tab>
      \ pumvisible() ? "\<C-n>" :
      \ <SID>check_back_space() ? "\<Tab>" :
      \ coc#refresh()

注意:可能会被其他插件重新映射,请使用 :verbose imap 检查是否按预期映射。

" use <c-space>for trigger completion
inoremap <silent><expr> <c-space> coc#refresh()

某些终端可能会在您按 时发送,因此您可以改为:

" use <c-space>for trigger completion
inoremap <silent><expr> <NUL> coc#refresh()

改善完成体验

Use <Tab> and <S-Tab> to navigate the completion list:

inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"

由于“\pumvisible”、“\

inoremap <silent><expr> <Tab>
      \ pumvisible() ? "\<C-n>" :
      \ <SID>check_back_space() ? "\<Tab>" :
      \ coc#refresh()