Comment obtenir le nom de la clé à coder pour keymap dans vimrc?

10

Dans Emacs, je peux appuyer sur Ctrl-h, k, pour décrire une clé. Je peux obtenir le nom de la clé même s'il n'est pas défini, par exemple,

C-x <C-M-end> is undefined

Ainsi, j'ai appris à connaître le nom de la clé C-x <C-M-end>.

Mais comment obtenir le nom de clé pour Vim?

Je veux configurer un clavier pour Ctrl-Shift-Vet Shift-Insert, mais quel code dois-je utiliser?

Est-il possible d'obtenir le nom de la clé à la volée?

Xiè Jìléi
la source

Réponses:

2

Le plus proche que je peux trouver describe-key( Ctrl+ H, K) est la :mapcommande. Il répertorie tous les mappages.

Vous pouvez également exécuter :map <key name>, mais vous devez spécifier en <key>utilisant la syntaxe spéciale répertoriée dans la
notation par clé .

Ou vous pouvez essayer :mapCtrl+ V<key>, qui devrait vous permettre d'appuyer simplement sur la touche plutôt que d'avoir à utiliser la syntaxe spéciale.

Donc, pour lier Ctrl+ Shift+ V, essayez ceci:

:map <C-S-v> whatever

ou

:mapCtrl+ V Ctrl+ Shift+V whatever

Mais assurez-vous que votre programme terminal ne l'utilise pas déjà pour quelque chose de spécial comme la pâte, sinon Vim ne verra jamais la touche enfoncée.

Voir également map-alt-keys , qui permet d'expliquer si votre Altclé doit être écrite comme <M-x>ou <A-x>.

Mikel
la source
C'est Ctrl-h, k, pas Ctrl-X, k qui signifie tuer le tampon.
Xiè Jìléi
Désolé, corrigé ça.
Mikel
Je ne sais pas si Mou Asera mappé Alt. Mais <M-h>, <M-l>ne marche pas. Je ne sais pas si le nom de clé n'est pas valide ou si les événements de clé n'ont pas été envoyés à Vim. Pas de journal, pas d'indice.
Xiè Jìléi
Oui, Altc'est difficile, car la plupart des terminaux envoient ESCalors xquand Alt+xest pressé, et comment Vim sait que vous n'avez pas appuyé ESCalors x. AltFonctionne essentiellement uniquement dans Gvim.
Mikel
5

Pour savoir ce que génère une touche ou une combinaison de touches dans Vim, j'ouvre généralement un tampon vide avec " :enew", passe en mode insertion, appuyez sur control-v, puis sur la touche ou la combinaison de touches que je souhaite identifier. Cette astuce control-v peut également fonctionner sur la ligne: -command, donc définir des mappages pour les tests est assez facile. Par exemple, " :map " control-vet la combinaison de touches " :echo 'it works'".

Heptite
la source
0

Tapez simplement Ctrl+ Và la volée et les touches sur lesquelles vous souhaitez appuyer. Si vous ne pas trouver le résultat attendu (comme par exemple <c-space>, <c-cr>, <M-i>, ...) cela signifie que vous utilisez vim et non gVim. La façon dont vim comprend les touches saisies est liée à la configuration de votre (vos) terminal (s). gvim utilise ses propres définitions, il n'y a donc rien à configurer.

Luc Hermitte
la source