On a encore trois commandes relatives spécifiquement aux Buffers, qui sont :
commandes d'aplatissement
| * | ^X- | (contrôle-X et blanc) le curseur courant est aplati : la zone étendue qu'il représente devient une suite de curseurs appartenant en propre au Buffer local. La commande est refusée si les caractères qui composent le curseur appartiennent déjà en propre au Buffer local : la situation se présente quand on est placé sur un caractère sous un holophraste au moins égal à la profondeur dans le texte structuré de ce caractère – le curseur est vu comme un caractère, et ne peut être aplati. |
A plus long terme, la commande permettrait de procéder comme suit :
use le texte structuré attaché à un certain tampon ;C'est le classique schéma Copier/Coller qu'on retrouve presque toujours dans un éditeur.
Note : l'aplatissement préserve l'indentation, c'est-à-dire qu'on inclut des caractères blancs si nécessaire. Par exemple :

commandes de sélection
| * | ^X-^@ | début de sélection. On sélectionne une zone du tampon qui s'affiche alors en inverse vidéo. Pour des raisons de cohérence, cette zone reste confinée à un Buffer local donné. |
La sélection est un mode, avec ses commandes propres. Du fait de la réponse « graphique » très visible, l'inconvénient lié à la définition d'un mode est mineur – en plus de l'affichage en inverse vidéo on a un message de "Selection" dans la ligne de contrôle.
| déplacement | toutes les commandes de déplacement présentées précédemment sont utilisables ; le déplacement est seulement limité au Buffer local courant. |
| ^G | abandon ; on est replacé au point de début de sélection. |
| q | quitter ; on reste au point atteint. |
| ? | aide en ligne. |
| " " | (blanc) valider. |
| j | valider et entrer en mode de justification. |
Valider une sélection, c'est définir la zone sélectionnée comme la zone d'affichage d'un nouveau texte structuré ; c'est donc définir un nouveau nœud dans le texte structuré.
A plus long terme, la validation de la sélection demanderait aussi de donner un nom symbolique de « texte » à cette zone et de placer ce « texte » dans l'arbre des tampons : la zone sélectionnée deviendrait la zone d'affichage d'une utilisation use d'un « texte ».
Note : la sélection cherche à satisfaire au mieux l'indentation, en supprimant les blancs de début de ligne tout en préservant les alignements.
Par exemple :
| (sélection) | (validation) |
![]() | |
![]() | |
![]() | |
commandes de justification
| * | ^X-^J | début de justification. |
La justification est aussi un mode. Elle permet la justification d'un curseur par des ajouts ou suppressions de blancs en début de ligne.
| ^G | abandon ; on est replacé au point de début de justification. | |
| ESC | quitter ; on reste au point atteint. | |
| ? | aide en ligne. | |
| a | empiler un niveau de justification, de type absolu : on supprime ou on insère le nombre de blancs nécessaire pour obtenir un nombre fixe de blancs (un nombre négatif équivaut à zéro). | |
| r | empiler un niveau de justification, de type relatif : on supprime un nombre constant de blancs (on insère des blancs si ce nombre est négatif). | |
| q | dépiler un niveau de justification ; au premier niveau, quitter. | |
| n | ligne suivante – pas de modification. | |
| p | ligne précédente – pas de modification. | |
| " " | (blanc) justifier d'après le type retenu, et passer à la ligne suivante. | |
| c | supprimer tous les blancs. | |
| i | insérer un blanc. | |
| d | détruire un blanc. | |
| , | (pause) justifier et rester sur la même ligne. | |
| ! | justifier automatiquement jusqu'à la fin du curseur – on quitte le mode interactif. | |
Les empilements de types de justification permettent de définir une justification globale mais de justifier localement selon d'autres critères.
Par exemple :
![]() |
donne : | ![]() |
| a0 = absolu 0 | : détruire tous les blancs. |
| r3 = relatif 3 | : détruire 3 blancs. |