5 votes

Mise en correspondance d'une séquence de touches avec des commandes de la ligne de commande

Existe-t-il un moyen de faire correspondre une séquence de touches à une commande de la ligne de commande (une commande entrée après : dans le mode Ex) dans vim ?

7voto

catchmeifyoutry Points 4956

Oui, et c'est ce qu'on appelle intuitivement :map

Ejemplo:

:map foo :echo "bar"<CR>

Non, lorsque vous appuyez sur les touches en mode insertion foo vim répondra par "bar". Type de fichier :help :map dans vim pour plus d'informations. Vous pouvez placer les mappings que vous souhaitez charger par défaut dans votre fichier .vimrc.

Il est possible d'affecter indépendamment des touches à différents modes, tels que le mode insertion (:imap) et le mode visuel (:vmap). Voir aussi l'aide de vim sur le sujet du remappage (:noremap)

Mise à jour

Si vous souhaitez utiliser un alias pour le mode commande (mais cela peut également être fait pour le mode insertion), vous devez utiliser la commande abréviations .

Pour définir une abréviation pour le mode commande, utilisez :ca (qui est une abréviation de :cabbrev). Voir l'aide de vim :help :ca et pour plus d'informations :help :abbreviations .

Notez que contrairement à map, les abréviations ne sont pas remplacées par des commandes vim mais par des caractères littéraux. Les abréviations sont déclenchées lorsque vous appuyez sur espace ou sur entrée.

Exemples :

" let me type :syn=cpp instead of :set syntax=cpp
"
:ca syn set syntax

" fix my favorite spelling error
"
:abbr teh the

" this does something different than the :map example above
"
:iabb foo :echo "bar"<CR>

" this is ugly, misusing an abbreviation as :map by simulating ESCAPE press
"
:iabb hello <ESC>:echo "world"<CR>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X