0

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

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

2 回答 2

1

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

于 2020-08-11T03:47:46.487 回答
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>'

像一个绝对的魅力一样工作。

于 2020-08-11T05:59:41.153 回答