Estou usando o exemplo vimrc fornecido em README.md.
A questão é: quando não há candidato para conclusão e o cursor está no final de uma palavra, tocar na guia não resulta em nada.
Em minha opinião, o comportamento ideal para este caso deve ser mover o cursor para a próxima posição da guia, diferente de pesquisar candidatos de conclusão em uma lista vazia.
Eu acredito que isso é causado por
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
em determinada configuração vimrc
Como posso corrigir isso sem alterar o comportamento normal quando a lista de candidatos de conclusão não está vazia? Obrigado!
deve mover o cursor para a próxima posição da guia.
O que significa a próxima posição da guia?
O cursor no final de uma palavra não significa que a solicitação de conclusão retornaria resultados vazios, às vezes.
deve mover o cursor para a próxima posição da guia.
O que significa a próxima posição da guia?
Significa inserir um caractere de tabulação.
Estou usando o exemplo vimrc fornecido em README.md.
Eu acredito que isso é causado por
...
De fato. Verifique esta página wiki: https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources#improve -completion-experience
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
O código acima deve fazer com que funcione da maneira que você deseja.
Quando comento essa linha fora do vimrc, obtenho o comportamento que você descreveu. Ele remapeia a guia de volta para a guia quando não há janela de conclusão aberta.
O exemplo no Leiame é para conclusão do gatilho quando há um caractere de palavra antes, mas o que você precisa não é o gatilho da conclusão, então você deve criar seu próprio mapa de teclado para <Tab>
.
inoremap <silent><expr> <TAB> \ pumvisible() ? "\<C-n>" : \ <SID>check_back_space() ? "\<TAB>" : \ coc#refresh() inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>" inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
O código acima deve fazer com que funcione da maneira que você deseja.
Quando comento essa linha fora do vimrc, obtenho o comportamento que você descreveu. Ele remapeia a guia de volta para a guia quando não há janela de conclusão aberta.
Isso funciona. Obrigado @DzKaki !
Comentários muito úteis
Significa inserir um caractere de tabulação.
De fato. Verifique esta página wiki: https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources#improve -completion-experience
O código acima deve fazer com que funcione da maneira que você deseja.
Quando comento essa linha fora do vimrc, obtenho o comportamento que você descreveu. Ele remapeia a guia de volta para a guia quando não há janela de conclusão aberta.