Question

Dans vim, j'utilise Ctrl-n pour mot tout complet en mode d'insertion. S'il y a plus d'un match possible, je reçois un menu déroulant à partir de laquelle je peux sélectionner l'une des correspondances possibles à l'aide des touches fléchées.

Cependant, je ne veux pas utiliser les touches fléchées; Je veux utiliser les touches « j » et « k ». Mais quand je tape « j » ou « k », il insère les lettres au lieu d'aller vers le haut ou vers le bas dans le menu déroulant. Est-il possible que je peux configurer vim pour le faire comme je le veux?

Était-ce utile?

La solution

Voir :h popupmenu-keys .

Il n'y a pas ensemble spécial de correspondances pour le menu contextuel sous-mode, mais vous pouvez faire une cartographie insertion en mode conditionnel:

inoremap <expr> j pumvisible() ? "\<C-N>" : "j"
inoremap <expr> k pumvisible() ? "\<C-P>" : "k"

Cela rend j / k Naviguer dans le menu contextuel comme <C-N> / <C-P>, alors qu'il est visible.

Addendum: Si vous voulez être en mesure de tenir le contrôle pendant que vous tapez j et k, vous pouvez les remplacer par <C-J> et <C-K>, respectivement. (Voir le commentaire de mwcz à cette réponse.)

Autres conseils

Je ne sais pas d'une façon comment le faire avec j et k. Vous êtes en mode d'insertion, ils ne fonctionnent pas.

Mais, j'ai une autre façon pour vous, Ctrl + N fonctionne comme Tab, et vous pouvez utiliser Maj - Tab pour la liste et Tab pour monter. Il est plus facile que d'utiliser les touches fléchées. Mais pas aussi beau que j et k serait.

Ou vous pouvez simplement utiliser Ctrl + N et Ctrl + P

SuperTab (http://www.vim.org/scripts/script.php?script_id=1643) peut vous aider. Une fois installé, vous pouvez utiliser Tab et Tab-Shift pour naviguer dans le menu contextuel.

Voir ce doc aussi: http://vim.wikia.com/wiki/Omni_completion_popup_menu

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top