L'interaction avec Emacs se fait soit par la saisie de texte dans la fenêtre, soit par l'appel de commandes dans la zone d'écho, qui se confond pour l'occasion avec le minibuffer. L'utilisateur peut y saisir des commandes ou les arguments des commandes appelées. La saisie de texte dans un buffer est effectuée au niveau du point.
Il y a dans chaque buffer d'Emacs un endroit particulier où les commandes d'édition prennent effet, et où la saisie de texte est insérée. Il correspond au curseur du terminal, et est appelé point pour des raisons historiques. Le curseur du terminal est repéré par un caractère en inverse vidéo, mais le point se trouve en fait juste entre ce caractère et le précédent. Il se déplace bien entendu avec les flèches, mais aussi avec d'autres commandes de déplacement (voir la sections Déplacement pour plus d'informations au sujet du déplacement du point).
La saisie sous Emacs peut se faire dans deux modes: insertion ou overwrite. Dans le mode insertion, la saisie de caractères se fait au niveau du point. Chaque caractère saisi est inséré au niveau du point, c'est à dire juste avant le curseur du terminal.
Dans le cas du mode insertion, chaque caractère saisi est inséré dans le texte. Mais dans le cas du mode overwrite, chaque caractère saisi remplace le caractère se trouvant juste après le point, c'est-à-dire juste sous le curseur du terminal.
Emacs possède de nombreuses commandes de déplacement. Les plus simples déplacent le point d'un caractère dans une direction, mais d'autres sont spécifiques à un mode précis (déplacement au defun précédent en mode lisp, par exemple).
C-a
: déplace le point au début de la
ligne courante
C-e
: déplace le point à la fin de la
ligne courante. Le curseur se trouve donc après les dernier
caractère de la ligne
M-a
: déplace le point au début du
paragraphe courant
M-e
: déplace le point à la fin du
paragraphe courant
M-f
: déplace le point au début du mot
courant
M-b
: déplace le point à la fin du mot
courant
M-<
: déplace le point au début du
buffer
M->
: déplace le point à la fin du
buffer
En plus du point, chaque buffer d'Emacs possède une position nommée marque (mark en anglais). La marque permet de définir une région. Chaque buffer possède une région, qui lui permet d'exécuter des commandes sur une partie seulement du texte, par exemple sa copie, sa conversion en majuscules ou minuscules, ... La région du buffer est l'espace situé entre le point et la marque. On peut la modifier tout simplement en déplaçant le point ou la marque. Le point étant le curseur où le texte est inséré, il suffit de se déplacer. La marque est déplacée par l'utilisation de commandes spécifiques:
C-SPC
: Fixe la marque au niveau du point
C-@
: Même chose que la commande
précédente, hormis que celle-ci fonctionne sur tout type
de terminal
C-x C-x
: Echange le point et la marque: le curseur se
déplace au niveau de la marque, et vice-versa. Cette commande
est utile pour revenir à un endroit précis du buffer
après des déplacements
M-@
: Fixe la marque à la fin du mot suivant (ou
courant si le point est au milieu d'un mot). Le point n'est pas
déplacé
M-h
: Fixe la région autour du paragraphe
courant (déplace le point au début, et la marque
à la fin)
C-x h
: Fixe la région autour du buffer entier
C-u C-SPC
: Restaure la marque
précédente. Le point est déplacé au niveau
de la marque, et la marque est déplacée au niveau de la
marque précédente.
Une commande s'exécute généralement sous Emacs
par M-x
nom de la commande. Il s'agit alors d'une
fonction Lisp. Emacs demandera parfois à
l'utilisateur de saisir des arguments dans le minibuffer. Mais il
existe pour certaines de ces fonctions des raccourcis clavier afin
d'exécuter la commande plus rapidement (par exemple, la
commande find-file
peut s'exécuter par C-x
C-f
).
L'utilisateur peut aussi donner des arguments numériques
à une commande par le biais de la séquence de
caractères C-u
argument. Dans la plupart des
cas, spécifier un argument de cette manière
exécutera la commande plusieurs fois. Par exemple, C-u 2
M-x downcase-word
exécute deux fois
downcase-word
, et convertit en minuscules les deux mots
suivant le point (notons que C-u 2 M-l
produit le même
effet puisque M-l
est un raccourci pour
downcase-word
. On peut obtenir le même résultat
avec M-
n, qui équivaut à un C-u
n.