如何在弹出菜单中选择第一项并在单个键绑定中关闭菜单以在nvim中自动完成?

时间:2020-08-10 09:11:31

标签: vim coc.nvim

我正在使用coc.nvim进行自动完成,当出现弹出菜单时,我希望Tab键选择第一项并关闭菜单。目前,我已经将Tab键绑定到<C-n><CR>,但是<CR>实际上却在行返回中,这不是我想要的。

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

2 个答案:

答案 0 :(得分:1)

尝试inoremap <expr> <Tab> pumvisible() ? coc#_select_confirm() : "<Tab>"

答案 1 :(得分:1)

我找到了coc.nvim的示例文档的答案:

https://github.com/neoclide/coc.nvim/blob/e1a4ce4d95d1d89b6dd31019cc4387425aa09b86/doc/coc.txt#L892-L909

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>'

像绝对的魅力一样工作。