我使用coc.nvim来自动完成,当弹出菜单出现时,我希望Tab选择第一个项目并关闭菜单。目前我已经将Tab键绑定到<C-n><CR>,但<CR>实际上放置了一个回车符,这不是我想要的。
<C-n><CR>
<CR>
inoremap <expr> <Tab> pumvisible() ? "\<C-n><Space>" : "<Tab>"
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>'
工作起来就像一个绝对的魅力。
ff29svar2#
试试inoremap <expr> <Tab> pumvisible() ? coc#_select_confirm() : "<Tab>"。
inoremap <expr> <Tab> pumvisible() ? coc#_select_confirm() : "<Tab>"
yqyhoc1h3#
在挣扎了这么长时间,尝试了这些东西之后,我意识到它的效果很好。要选择下拉列表中的第一项,请按:ctrl+y .按:ctrl+n选择下拉列表中的下一项。按:ctrl+p选择下拉列表中的上一项。若要使用tab和shift tab来浏览下一个和上一个项目,请参阅文件。要使用tab选择上述文档配置下的下拉列表中的第一项:
ctrl+y
ctrl+n
ctrl+p
tab
shift tab
inoremap <expr> <TAB> pumvisible() ? "\<C-y>" : "\<C-g>u\<TAB>"
3条答案
按热度按时间dw1jzc5e1#
我在coc.nvim的示例文档中找到了答案:
https://github.com/neoclide/coc.nvim/blob/e1a4ce4d95d1d89b6dd31019cc4387425aa09b86/doc/coc.txt#L892-L909
工作起来就像一个绝对的魅力。
ff29svar2#
试试
inoremap <expr> <Tab> pumvisible() ? coc#_select_confirm() : "<Tab>"
。yqyhoc1h3#
在挣扎了这么长时间,尝试了这些东西之后,我意识到它的效果很好。
要选择下拉列表中的第一项,请按:
ctrl+y
.按:
ctrl+n
选择下拉列表中的下一项。按:
ctrl+p
选择下拉列表中的上一项。若要使用
tab
和shift tab
来浏览下一个和上一个项目,请参阅文件。要使用
tab
选择上述文档配置下的下拉列表中的第一项: