11.5. La Pile des Marques

En plus de délimiter une région, la marque peut aussi servir pour se rappeler d'un endroit auquel vous voulez revenir plus tard. Pour rendre cette possibilité plus intéressante, chaque tampon se souvient des 16 locations précédentes de la marque, dans la pile des marques. Les commandes qui placent la marque placent aussi l'ancienne marque dans cette pile. Pour retourner à un endroit marqué, utilisez C-u C-SPC (ou C-u C-@) ; c'est la commande set-mark-command à laquelle on passe un argument. Elle déplace le point à l'endroit où était la marque, et replace la marque selon la pile des marques précédentes. Ainsi, la répétition de cette commande déplace le point à toutes les anciennes marques présentes dans la pile, une par une. Les positions des marques que vous passez ainsi ne sont pas perdues ; elles sont placées en fin de pile.

Chaque tampon a sa propre pile des marques. Toutes les commandes d'édition utilisent la pile des marques du tampon courant. En particulier, C-u C-SPC reste toujours dans le même tampon.

Un grand nombre de commandes déplaçant le point sur de longues distances, comme M-< (beginning-of-buffer), commencent par placer la marque et sauver l'ancienne dans la pile des marques. Ceci pour vous permettre de revenir plus tard à l'endroit initial plus facilement. Les commandes de recherche placent la marque si elles déplacent le point. Vous pouvez voir lorsqu'une commande place la marque, car elle affiche Mark Set dans la zone de répercussion.

Si vous voulez revenir au même endroit encore et encore, la pile des marques peut ne pas être assez appropriée. Dans ce cas, vous pouvez enregistrer la position dans un registre pour le récupérer ultérieurement. (Section 12.1).

La variable mark-ring-max spécifie le nombre maximal d'entrées à garder dans la pile des marques. Si le nombre maximal d'entrées est atteint et qu'une nouvelle est empilée, la dernière de la liste est abandonnée. Répéter C-u C-SPC fait un cycle parmi les positions actuellement dans la pile.

La variable mark-ring contient la pile des marques elle-même, en tant que liste d'objets marque, la marque la plus récente en premier. Cette variable est locale à chaque tampon.