Как выбрать первый элемент во всплывающем меню и закрыть меню одной клавишей для автозаполнения в nvim?

Я использую coc.nvim для автозаполнения, и когда появляется всплывающее меню, я бы хотел, чтобы Tab выбрал первый элемент и закрывал меню. На данный момент я привязал Tab к<C-n><CR>, но <CR> фактически помещает строку return, чего я не хочу.

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

3 ответа

После столь долгой борьбы и попыток этих вещей я понял, что коробка отлично работает.

Чтобы выбрать первый элемент в раскрывающемся списке, нажмите:ctrl+y.

Нажимать:ctrl+nвыберите следующий элемент в раскрывающемся списке.

Нажимать:ctrl+pдля выбора предыдущего элемента в раскрывающемся списке.

Чтобы использовать иshift tabа также для перехода к следующему и предыдущему элементам см. документацию .

Использоватьtabчтобы выбрать первый элемент в раскрывающемся списке под приведенной выше конфигурацией документации:

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

Я нашел ответ в примерах документов coc.nvim:

https://github.com/neoclide/coc.nvim/blob/e1a4ce4d95d1d89b6dd31019cc4387425aa09b86/doc/coc.txt

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

Работает как абсолютное очарование.

Пытаться inoremap <expr> <Tab> pumvisible() ? coc#_select_confirm() : "<Tab>".

Другие вопросы по тегам