J'utilise l'exemple vimrc donné dans README.md.
La question est, lorsqu'il n'y a pas de candidat pour l'achèvement et que le curseur est à la fin d'un mot, le fait d'appuyer sur l'onglet ne donne rien.
À mon avis, le comportement idéal pour ce cas devrait être de déplacer le curseur vers la prochaine position de tabulation, autre que la recherche de candidats à l'achèvement dans une liste vide.
Je crois que cela est causé par
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
dans une configuration vimrc donnée
Comment puis-je le corriger sans modifier le comportement normal lorsque la liste des candidats à l'achèvement n'est pas vide ? Merci!
devrait déplacer le curseur à la position de tabulation suivante.
Que signifie la position de l'onglet suivant ?
Le curseur est à la fin d'un mot ne signifie pas que la demande d'achèvement renverrait des résultats vides, c'est parfois le cas.
devrait déplacer le curseur à la position de tabulation suivante.
Que signifie la position de l'onglet suivant ?
Cela signifie insérer un caractère de tabulation.
J'utilise l'exemple vimrc donné dans README.md.
Je crois que cela est causé par
...
En effet. Consultez cette page 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>"
Le code ci-dessus devrait le faire fonctionner comme vous le souhaitez.
Lorsque je commente cette ligne dans vimrc, j'obtiens le comportement que vous avez décrit. Il remappe l'onglet sur l'onglet lorsqu'aucune fenêtre d'achèvement n'est ouverte.
L'exemple dans Readme concerne la complétion du déclencheur lorsqu'il y a un caractère de mot avant, mais ce dont vous avez besoin n'est pas de déclencher la complétion, vous devez donc créer votre propre keymap pour <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>"
Le code ci-dessus devrait le faire fonctionner comme vous le souhaitez.
Lorsque je commente cette ligne dans vimrc, j'obtiens le comportement que vous avez décrit. Il remappe l'onglet sur l'onglet lorsqu'aucune fenêtre d'achèvement n'est ouverte.
Cela marche. Merci @DzKaki !
Commentaire le plus utile
Cela signifie insérer un caractère de tabulation.
En effet. Consultez cette page wiki : https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources#improve -completion-experience
Le code ci-dessus devrait le faire fonctionner comme vous le souhaitez.
Lorsque je commente cette ligne dans vimrc, j'obtiens le comportement que vous avez décrit. Il remappe l'onglet sur l'onglet lorsqu'aucune fenêtre d'achèvement n'est ouverte.