Emacs: une introduction

Travail en cours!

Emacs est un éditeur à action directe, sans les modes d'insertion/commande (insert/beep) de vi. Pour accéder aux commandes on utilise les touches Contrôle ou Meta (c'est à dire Alt sur les claviers PC). Par exemple,

    
    C-a        debut de ligne
    C-e        fin de ligne
    C-k        effacement jusque la fin de la ligne
    M-a        debut de phrase
    M-e        fin de phrase
    M-k        effacement jusque la fin de la phrase
    C-M-a      debut de "paragraphe" (plus exactement fin de defun)
    C-M-e      fin de "paragraphe"
    C-M-k      effacement de l'expression equilibrée qui suit le curseur.

On peut également accéder à ces commandes en tapant M-x end-of-line, M-x forward-sentence, M-x kill-line. M-x est la touche qui permet d'accéder directement aux commandes interactives de Emacs.

On peut passer des arguments aux commandes Emacs, de la même manière que le préfixe numérique aux commandes vi. La touche pour ce faire est C-u, par exemple C-u 10 M-e avance le curseur de 10 phrases. L'argument peut être négatif : C-u -5 C-M-a retourne cinq paragraphes en arrière.

La troisième forme d'interaction avec Emacs passe directement par son langage d'extension, le Emacs Lisp. Emacs comporte un interpreteur Lisp intégré (ce qui explique qu'il consomme davantage de mémoire que vi), et on peut y accéder directement en tapant M-:. On peut ensuite rentrer une expression telle que (forward-sentence 2) qui avancera le curseur de deux phrases.

Une des particularités de Emacs est le mark, une position dans un buffer. On active le mark en tapant C-SPC ; dès qu'on bouge le curseur par la suite, le texte compris entre la mark et point (terminologie Emacs pour le curseur) est mis en surbrillance (c'est ce qu'on appèle le region. C'est la manière dont on fait du ``cut and paste'' dans Emacs : C-w pour cut (M-w pour copy) puis C-y pour paste. Emacs se souvient des derniers bouts de texte qu'on a cuté, et on peut y accéder en appuyant sur M-y après le C-y. C'est ce qu'on appèle le kill-ring ; une liste circulaire d'éléments qu'on a coupé ou pasté.

Il existe d'autres manières de positionner la region ; M-h selectionne le paragraphe courant, C-x h pour selectionner le buffer tout entier. On peut faire beaucoup d'autres choses avec la region, par exemple C-M-\ pour indenter le code contenu dans le region, commenter le region (M-x comment-region), write-region pour écrire dans un fichier sur le disque, etc. On peut faire C-x n n pour se concentrer sur une partie de son texte (par exemple pour faire une recherche-remplacement que sur cette partie du texte) (puis C-x n w pour revenir à tout le texte).

Emacs vous permet de travailler sur plusieurs fichiers en même temps. Le conteneur de base en Emacs est le buffer, un buffer par fichier ou par repésentation de l'information. Un buffer a un mode associé, une définition des touches, etc. On peut changer de buffer en tapant C-x b ou C-x C-b, ou simplement en utilisant la barre de menus.

Ensuite Emacs peut représenter les buffers de différentes manières à l'écran. On peut diviser la fenêtre Emacs en deux windows en tapant C-x 2 ; chaque window peut contenir un buffer différent, ou une vue sur une autre partie du même buffer. On tape C-x 1 pour revenir à une configuration avec une seule window. On peut également diviser le frame en deux windows verticaux en tapant C-x 3. Sous X11 Emacs peut également gérer plusieurs frames, cad des fenêtres X. On tape C-x 5 2 pour ouvrir un frame et C-x 5 0 pour le refermer.