7.2. Changer la location du point

Pour aller plus loin que la simple insertion de caractères, vous devez savoir comment déplacer le point (Section 5.1). La manière la plus simple est d'utiliser les touches du curseur, ou en cliquant le bouton gauche de la souris à l'endroit où vous voulez le placer.

Il existe aussi des caractères de contrôle et des meta-caractères pour déplacer le curseur. Certains sont équivalents aux touches de curseur (cela remonte au temps où les terminaux n'avaient pas de touches de curseur, et sont utiles sur ce type de terminal). Les autres font des choses plus sophistiquées.

C-a

Déplace le point en début de ligne (beginning-of-line).

C-e

Déplace le point en fin de ligne (end-of-line).

C-f

Avance d'un caractère (forward-char). La touche de curseur droite fait la même chose.

C-b

Recule d'un caractère (backward-char). La touche de curseur gauche a le même effet.

M-f

Avance d'un mot (forward-word).

M-b

Recule d'un mot (backward-word).

C-n

Descend d'une ligne, verticalement (next-line). Cette commande essaie de garder une position horizontale inchangée : si vous commencez en milieu de ligne, vous finissez en milieu de ligne. La touche de curseur vers le bas fait la même chose.

C-p

Remonte d'une ligne, verticalement (previous-line). La touche de curseur vers le haut a le même effet.

M-r

Déplace le point sur la marge gauche, centré verticalement dans la fenêtre (move-to-window-line). Le texte ne bouge pas dans la fenêtre.

Un argument numérique indique sur quelle ligne placer le point. Les lignes sont comptées à partir du haut de la fenêtre (zéro pour la première). Un argument négatif indique un numéro de ligne en comptant à partir du bas (−1 pour la ligne du bas).

M-<

Déplace le point au début du tampon (beginning-of-buffer). Avec un argument numérique n, déplace de n/10 de la distance du début. Section 7.10, pour plus d'informations sur les arguments numériques.

M->

Déplace le point à la fin du tampon (end-of-buffer).

C-v

Fait défiler l'affichage d'un écran en avant, et déplace le point si nécessaire pour le placer sur l'écran (scroll-up). Ceci ne déplace pas toujours le point, mais c'est en général pour cela qu'elle est utilisée. Si votre clavie a une touche PAGEDOWN, elle fait la même chose. Les commandes de défilement sont décrites plus en détail dans Section 13.6.

M-v

Fait défiler d'un écran en arrière, et déplace le point si nécessaire pour le placer sur l'écran (scroll-down). Ceci ne déplace pas toujours le point, mais est généralement utilisé pour cela. La touche PAGEUP a le même effet.

M-x goto-char

Lit un nombre n et déplace le point à la position n du tampon. La position 1 est le début du tampon.

M-x goto-line

Lit un nombre n et déplace le point à la ligne n. La ligne 1 est la première ligne du tampon.

C-x C-n

Utilise la colonne courante du point comme colonne de destination semi-permanente pour C-n et C-p (set-goal-column). Après ça, ces commandes déplacent toujours le point vers cette colonne pour chaque ligne de destination, ou aussi près que possible étant donné le contenu de la ligne. Cette colonne de destination reste active tant qu'elle n'est pas annulée.

C-u C-x C-n

Annule la colonne de destination. Après ça, C-n et C-p essaient de nouveau de garder la même position horizontale, que d'ordinaire.

Si vous mettez la variable track-eol à une valeur non nil, alors C-n et C-p, utilisés en fin de ligne, déplacent à la fin de la ligne de destination. Normalement, track-eol est nil. Section 32.2, pour voir comment redéfinir les variables comme track-eol.

C-n renvoie généralement une erreur lorsque vous l'utilisez sur la dernière ligne du tampon (exactement comme C-p renvoie une erreur sur la première ligne). Mais si vous définissez la variable next-line-add-newlines à une valeur non nil, C-n sur la dernière ligne crée une ligne additionnelle à la fin et s'y déplace.