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 ?
Réponse
Trop de publicités?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>