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

vyswwuz2  于 2022-11-11  发布在  其他
关注(0)|答案(3)|浏览(135)

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

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

dw1jzc5e1#

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

工作起来就像一个绝对的魅力。

ff29svar

ff29svar2#

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

yqyhoc1h

yqyhoc1h3#

在挣扎了这么长时间,尝试了这些东西之后,我意识到它的效果很好。
要选择下拉列表中的第一项,请按:ctrl+y .
按:ctrl+n选择下拉列表中的下一项。
按:ctrl+p选择下拉列表中的上一项。
若要使用tabshift tab来浏览下一个和上一个项目,请参阅文件。
要使用tab选择上述文档配置下的下拉列表中的第一项:

inoremap <expr> <TAB> pumvisible() ? "\<C-y>" : "\<C-g>u\<TAB>"

相关问题