Q: comment afficher temporairement du texte dans une fenêtre à des emplacements d'écran sans texte à propertiser / superposer?
Je connais l'idée de base derrière les propriétés de texte et les superpositions (voir aussi ce fil ), les ai utilisées à quelques reprises, mais je ne suis pas du tout habile avec elles. Ma compréhension limitée est qu'il doit y avoir du texte à propertiser ou à superposer, mais je me demande comment utiliser les sections d'une fenêtre qui ne contiennent pas de texte.
Voici une capture d'écran pour un exemple:
Comment peut-on mettre du texte (temporairement) dans l'une des cases rouges de la capture d'écran, c'est-à-dire l'espace vide à droite du texte ou en dessous de la dernière ligne du tampon?
insert
texte dans le tampon et en faire la promotion?Réponses:
J'ai concocté un exemple de travail d'une fonction qui prend une chaîne et l'affiche temporairement avec un délai d'attente après le texte du tampon:
L'incantation suivante se traduira par votre exemple de boîte rouge inférieure:
La raison pour laquelle cela fonctionne est que les superpositions utilisent des marqueurs comme positions à afficher entre. L'utilisation de la position la plus à l'extérieur comme début et fin de la superposition vous permet d'afficher du texte après celle-ci à l'aide de la
after-string
propriété. Étant donné que les superpositions peuvent contenir du texte personnalisé, je l'ai configuré pour apparaître en retrait et avec des espaces autour.L'autre exemple peut utiliser la même idée pour afficher du texte après la fin de la ligne:
L'invocation suivante se traduira par votre exemple de boîte rouge à droite:
Vous pouvez devenir beaucoup plus fou et ajouter des visages pour distinguer ces superpositions du texte tampon, les afficher plus longtemps que pour un délai d'expiration, ajuster leur position, détecter s'il n'y a pas d'espace vide et utiliser des superpositions normales de texte adapté, etc. Je recommande de regarder le code source du mode entreprise car il est très lisible et démontre une utilisation plus élaborée (et surtout sans bug) des superpositions pour créer un menu contextuel flexible avec les fonctionnalités suggérées.
la source
Vous pouvez temporairement afficher du texte dans un tampon avec la fonction
momentary-string-display
. Il faut un message à afficher et une position dans le tampon.Cette:
placera la chaîne "bonjour là" à la position 200 dans le tampon. Il déplacera tous les autres textes à ce stade sur le côté pour faire de la place à "bonjour le monde", mais tout sera restauré à l'endroit où il était lorsque vous appuyez sur une touche.
Vous n'avez pas besoin de texte dans le tampon pour créer des superpositions, bien que ce soit une exigence pour les propriétés de texte. Voici une superposition avec une largeur nulle qui entraîne l'affichage de texte supplémentaire:
Notez que cette superposition repoussera le texte du tampon; il ne couvrira pas le texte à la position donnée.
Il ne semble pas possible de placer une superposition à n'importe quelle position dans le tampon qui soit supérieure à
point-max
/buffer-size
, c'est-à-dire que vous ne pourrez probablement pas placer du texte à une position spécifique en dessous du texte du tampon, sauf si vous piratez cette restriction. Vous pouvez, bien sûr, placer du texte juste après le texte tampon avec laafter-string
propriété sur une superposition épinglée à lapoint-max
position.la source