La zone d'écho est vide la plupart du temps, ce qui me fait penser que je pourrais l'utiliser pour afficher des informations. Par exemple, org-clock
affiche la tâche en cours, le temps restant et le temps total écoulé sur la modélisation. Cette information n'est pas vraiment lisible là-bas (la modeline peut être plutôt courte), est répétée sur chaque modeline (car elle s'applique à toute la session emacs), et n'est pas si utile que je suis prêt à sacrifier un précieux espace de modeline pour cela . En revanche, il pourrait apparaître dans la zone d'écho lorsqu'il n'y a rien d'autre à afficher ici.
Existe-t-il un moyen canonique d'y parvenir? J'ai pensé à pirater une fonction d'insertion dans minibuffer-inactive-mode-hook
(mais cela ne fonctionne pas de manière fiable, par exemple, le message disparaît dès que la zone d'écho est utilisée à nouveau), ou à spammer des messages non enregistrés (mais ce sera un gâchis avec d'autres utilisations de la zone d'écho et le mini-tampon).
Une version pauvre de cela utiliserait des minuteries inactives, mais la zone d'écho peut être vide sans qu'emacs ne soit inactif (par exemple lors de la saisie de texte).
la source
Réponses:
Un commentaire sur cette question mentionne qu'un package nommé symon utilise une telle fonctionnalité.
Il est obtenu en spammant des messages non enregistrés lorsque le mini-tampon est inactif et en arrêtant le réaffichage chaque fois qu'une commande est émise. Le passe-partout est assez court, et après quelques minutes d'utilisation, je n'ai pas remarqué de problème avec cela: l'utilisation des messages et du mini-tampon a toujours la priorité sur les messages.
Les composants clés sont:
message-log-max
set tonil
, de sorte que la chaîne affichée ne pénètre pas dans le*Messages*
tampon)pre-command-hook
Le seul problème est que l'affichage est arrêté à chaque exécution d'une commande, y compris lors de la frappe.
Pour ceux qui sont intéressés, j'ai extrait le code correspondant dans un package passe-partout disponible sur github .
la source
La réponse, OMI, est non . La zone d'écho est réservée aux messages éphémères . Et beaucoup de choses effacent explicitement tout ce qui pourrait y avoir fait écho. Donc, réaliser ce que vous demandez de manière raisonnable est problématique, OMI.
En somme, utilisez une alternative. Voilà quelque:
Utilisez un autre tampon (par exemple un petit cadre ou une fenêtre que vous gardez ouvert à cet effet). Simple à faire, vous pouvez le déplacer, le modifier, l'effacer ou faire tout ce que vous voulez avec.
Utilisez une partie ou la totalité de la ligne de mode (que vous avez déjà envisagée, apparemment).
Utilisez une ligne d'en-tête.
Utilisez un titre de cadre.
Si c'était moi, j'opterais probablement pour le n ° 1. (Mais je ne veux pas / n'ai pas vraiment besoin d'un tel affichage à plein temps des informations d'état. Je définirais plus probablement une commande qui me montre les informations (même un historique / journal) à la demande.)
Mis à jour après vos commentaires:
Vous avez déjà dit, dans votre question, " le message disparaît dès que la zone d'écho est à nouveau utilisée ". Cela ressemblait donc à l'utilisation d'un espace éphémère tel que la zone d'écho ne répondrait pas à vos besoins. Vos réponses aux commentaires semblent contredire cela.
Si vous voulez vraiment utiliser la zone d'écho, utilisez
minibuffer-inactive-mode-hook
, comme vous l'avez mentionné, ou utilisez une minuterie pour appelermessage
ou insérer le message horaire dans la zone d'écho d'une autre manière. Cependant, vous avez déjà noté les problèmes avec cela. Ces problèmes (écrasement, effacement) découlent de la nature éphémère ( prévue ) de la zone d'écho .En somme, vous souhaitez utiliser une zone destinée aux messages éphémères, mais vous ne voulez pas que vos messages disparaissent dès que cette zone est réutilisée.
(BTW - écrivez votre mention que les informations de la ligne de mode sont répétées dans chaque ligne de mode: Cela ne doit pas être le cas. Vous pouvez faire en sorte que la ligne de mode soit spécifique à un tampon particulier, etc. IOW, vous pouvez choisir une ligne de mode pour toujours (ou périodiquement) montrez votre horloge ou autre chose.)
la source
org-clock
exemple de la question: je veux que la minuterie coche pour me rappeler ce que je dois faire, et que je suis censé le faire maintenant , comme aussi souvent que possible.minibuffer-inactive-mode-hook
et quitte le mini-tampon, le message s'affiche. Ensuite, si une autre commande imprime quelque chose dans la zone d'écho, ce nouveau message est ajouté et le message éphémère ne revient pas (car le mini-tampon ne s'est pas impliqué cette fois).message
oupost-command-hook
, si vous le souhaitez. Mais le problème essentiel de la disparition / de l'écrasement fait parfois surface, car vous essayez d'utiliser une zone d'affichage temporaire pour quelque chose que vous ne voulez pas être temporaire.