PRATIQUE OUTILS 
Accéder aux commandes de vi et Emacs
 
Les deux éditeurs phares du monde Unix dissimulent leur complexité derrière des combinaisons de touches. Visites guidées pour chaque outil. (22/03/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

Dans le monde de la programmation assistée mais sans éditeur graphique, deux véritables religions s'affrontent : les programmes Emacs et vi. L'un comme l'autre sont des éditeurs de textes survitaminés, dotés d'innombrables combinaisons de touches et de macro-commandes. Certains maîtriseront l'ensemble de leurs fonctionnalités, et favoriseront l'un ou l'autre. D'autres alterneront entre les deux selon le besoin du jour.

A noter que vi (que Vim améliore) est aujourd'hui le standard Unix des éditeurs de texte : il est présent sur pratiquement toutes les distributions.

Chacun dispose globalement des mêmes fonctionnalités, mais assignées à des commandes différentes. Passer de l'un à l'autre demande donc de la mémoire, à mesure de la complexité des commandes auxquelles l'utilisateur est habitué.

Les fonctionnalités de ces éditeurs sont activées à l'aide de touches spéciales. Ce peut être la combinaison de la touche Control et d'une autre touche, ou la frappe de la touche Méta puis d'une ou plusieurs touches. Méta est une touche spécifique, remplacée par la touche Echappement (Escape) si elle n'est pas présente sur le clavier utilisé.

Il faut par ailleurs savoir que vi est un éditeur modal : il peut être soit en mode Edition, soit en mode Commande - auquel cas chaque touche correspond à une fonctionnalité. Par défaut, vi démarre en mode Commande. La touche a (ou i) passe le logiciel en mode Edition (Append mode, Insert mode), tandis qu'appuyer deux fois sur Echappement le passe en mode Commande.
De son côté, Emacs est toujours en mode Edition.

Pour décrire les méthodes d'accès aux commandes de deux éditeurs, on utilise les conventions suivantes : pour vi, le caractère ^ indique l'on utilise la touche Control, l'ensemble indique que l'on utilise la touche Echappement. Donc, ^h^h^ht signifie "appuyer trois fois sur h tandis que la touche Control est enfoncée, puis appuyer sur t, et <M>-x que l'on presse la touche Méta, puis la touche x.

Les utilisateurs Emacs utilisent une autre convention : C-x pour faire "touche Control et touche x", M-x pour faire "touche Meta, puis touche x".

Partant de là, les combinaisons changent du tout au tout selon l'éditeur. Voici quelques exemples de commandes habituelles, et leurs différentes combinaisons :

Commandes de vi et Emacs
vi
Commande
Emacs
vi fichier
Ouvrir un fichier
emacs fichier
C-x -C-f
:w
Sauver un fichier
C-x C-s
ZZ
Quitter le programme
en sauvant le fichier
C-x C-c
G
Aller à la dernière
ligne du fichier
Esc >
nG
Aller à la ligne n
C-x C-g
/mot
Chercher un mot
C-s
:s/motif/mot/c
Chercher et
remplacer un mot
<M>-x [expression régulière]
dd
Effacer la ligne
C-k
u
Annuler
C-x u
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page