17.6. Tampons Indirects

Un tampon indirect partage le texte avec un autre tampon, qui est appelé le tampon de base du tampon indirect. Il est en quelque sorte l'analogue, pour les tampons, d'un lien symbolique entre fichiers.

M-x make-indirect-buffer RET base-buffer RET nom-indirect RET

Crée un tampon indirect appelé nom-indirect dont le tampon de base est base-buffer.

M-x clone-indirect-buffer RET

Crée un tampon indirect qui est une copie parfaite du tampon courant. Crée un tampon indirect qui est une copie parfaite du tampon courant, et le sélectionne dans une autre fenêtre (clone-indirect-buffer-other-window).

Le texte du tampon indirect est toujours identique au texte de son tampon de base ; les changements effectués en éditant l'un d'eux sont immédiatement visibles dans l'autre. Mais dans tous les autres cas, le tampon indirect et son tampon de base sont totalement séparés. Ils ont des noms différents, différentes valeurs du point, différentes restrictions, différentes marques, différents modes majeurs, et différentes variables locales.

Un tampon indirect ne peut pas visiter un fichier, mais son tampon de base le peut. Si vous essayez de sauvegarder le tampon indirect, le tampon de base est sauvegardé. Détruire le tampon de base détruit aussi le tampon indirect, mais détruire le tampon indirect n'a pas d'effet sur son tampon de base.

Une manière d'utiliser les tampons indirects est d'afficher plusieurs vues d'un profil. Section 23.8.4.

Une manière rapide et pratique pour créer un tampon indirect est d'utiliser la commande M-x clone-indirect-buffer. Elle crée et sélectionne un tampon indirect dont le tampon de base est le tampon courant. Avec un argument numérique, elle demande le nom du tampon indirect ; autrement elle prend par défaut le nom du tampon courant, le modifiant en ajoutant un préfixe <n> si nécessaire. C-x 4 c (clone-indirect-buffer-other-window) fonctionne comme M-x clone-indirect-buffer, mais elle sélectionne le tampon cloné dans une autre fenêtre. Ces commandes sont commodes pour créer de nouveaux tampons *info* or *Help*, par exemple.

La manièe plus générale est d'utiliser la commande M-x make-indirect-buffer. Elle crée un tampon indirect à partir du tampon base-buffer, sous le nom nom-indirect. Elle demande base-buffer et nom-indirect en utilisant le mini-tampon.