12
votes

Horloge constamment mise à jour dans l'invite ZSH?

Je sais que je peux exécuter une commande date dans mon invite ZSH. Cependant, il montre l'heure ; Pour voir l'heure actuelle, je dois appuyer sur et obtenir une nouvelle invite avec l'heure actuelle.

existe-t-il un moyen de configurer l'invite ZSH pour se mettre à jour constamment tous les seconde?


0 commentaires

3 Réponses :


6
votes

Ce serait .... désagréable dans une invite standard ZSH (ou BASH ou d'autres coquilles).

Je suggère que vous feriez mieux d'utiliser l'écran GNU.

L'écran peut avoir une ligne d'état qui peut montrer l'heure. Voici un exemple de scénario Faites défiler vers «Red Hat Magazine un guide de GNU» pour voir L'échantillon (je reproduisai ici ici) qui sera exécuté, lorsque l'écran est exécuté, montrez l'heure actuelle dans le coin inférieur droit du terminal:

~ / .creenrc xxx

http://www.gnu.org/software/screen/


0 commentaires

8
votes

Cela ressemble à une demande agréable pour moi. Si quelque chose il a plus de sens que de montrer le temps où l'invite était affichée.

Heureusement Peter Stephenson a affiché un Technique . Essayez quelque chose comme ça dans .zshrc: xxx


4 commentaires

Je viens de remarquer que la poste a demandé de mettre à jour chaque seconde. Je ne l'ai pas essayé, mais je devine "Sched +1 SchedPromptPrompt" à la fin de SchocherPrompt () le ferait.


Etepte l'appel à la réinitialisation-invite annule tout défilement dans la fenêtre terme. Il est difficile de faire défiler l'arrière et de rester là-bas pendant n'importe quelle durée.


C'est génial! Non seulement il montre l'heure actuelle, mais aussi des commandes d'horodatage exécutées. En ce qui concerne le problème de défilement - il vous suffit de désactiver Faites défiler la fonction de sortie de votre terminal de choix.


@Artemice Si vous avez juste besoin de la commande horodatage (comme je l'ai fait), vous pouvez utiliser quelque chose comme ceci: PREEXEC () {ECHO -E "\ 033 [1A DATE +% H:% M:% s "}



55
votes

note: j'ai écrit cette réponse pour une question similaire , mais voir comment cette question a plus de points de vue que je pense republier ma réponse ici serait utile.

Ceci est en fait possible sans recourir à des hacks étranges. J'ai ceci dans mon fichier .zshrc xxx

La fonction TrapAlrm est appelée toutes les secondes TMOUT (dans ce cas 1), et ici, il effectue une actualisation rapide et le fait Jusqu'à ce qu'une commande commence à exécuter (et qu'elle n'interfère pas avec quoi que ce soit, vous tapez sur l'invite avant de frapper Entrée).

Source: http://www.zsh.org/mla/user/2007/msg00944.html (c'est à partir de 2007!)


9 commentaires

Je peux confirmer que cela fonctionne réellement, malgré la simplicité qui apparaît. Tout ce que vous avez vraiment besoin est le tmout = ; Trapalrm () {zle réinitial-invite} partie dans votre $ home / .zshrc fichier et vous êtes prêt à partir.


Cela devrait être la réponse acceptée. Je recommanderais également un délai plus long que 1 seconde. J'ai utilisé tmout = 30 . J'ai remarqué ma coquille suspendue quand c'était chaque seconde.


Notez également que cela pourrait faire de la copie-coller plus ennuyeux.


Définissez la trappe avant TMout comme sur l'une de mes boîtes Centos exécutant un NULL TRAPALRM Cause une déconnexion


N'aime pas ça comme je ne suis plus capable de faire défiler le dos et de lire des réflexions soigneusement. Lorsque l'invite actualise, il veut faire défiler en bas


Cela devrait être la réponse acceptée. De plus, alors qu'il semble sur certains systèmes, cela provoque une inconvénient avec la copie et / ou avec le défilement, j'utilise cette technique sans connaître ces problèmes.


Syntaxe de formatage de l'heure dans ZSH, pour enregistrer les lecteurs une recherche: zsh.sourceforge.net/doc/release/...


Cette solution a un problème qui: vous ne pouvez pas faire défiler dans votre terminal @ Nitarshan


@ user13268019 Peut-être dépend de la borne?