1 votes

Comment réinitialiser l'émulateur de terminal à partir de tmux ?

Je veux "effacer" complètement le volet tmux. Lorsque je fais quelque chose comme

bind-key C send-keys "clear && tmux clear-history" \; send-keys "Enter" 

suggéré dans https://stackoverflow.com/questions/10543684/how-can-i-clear-scrollback-buffer-in-tmux Je suis en mesure d'effacer la mémoire tampon du scrollback et d'obtenir un écran propre.

Cependant, lorsque je fais Shift+PageUp et Shift+PageDown, je suis capable de voir la sortie précédente à partir de l'émulateur de terminal lui-même (pas tmux). Normalement, vous pouvez faire reset pour effacer l'historique du scrollback de l'émulateur de terminal.

Est-il possible de reset l'émulateur de terminal depuis tmux ? Avec le scrollback clear ci-dessus ?

Quelques solutions de contournement sont proposées :

1) Pour garder Urxvt.saveLines: 0 ou commencer Urxvt -sl 0 - C'est logique puisque vous n'avez pas besoin du scrollback de l'émulateur de terminal si vous êtes dans tmux.

2) Détacher, réinitialiser et rattacher le tmux - Cela semble lourd.

1voto

Celti Points 26

Ce que vous voulez, c'est printf "\033c" > $client_tty , donde $client_tty est le TTY sur lequel le client tmux fonctionne. \033c est la séquence d'échappement pour la commande de réinitialisation ANSI.

Vous pouvez dresser la liste de tous les clients connectés avec leurs TTYs avec tmux list-clients . Limitez-le à une session spécifique avec -t $session_name et de ne sortir que le TTY avec -F '#{client_tty}' . Ainsi, pour réinitialiser tous les clients tmux connectés, vous voulez quelque chose comme :

for client_tty in $(tmux list-clients -F '#{client_tty}'); do
    printf "\033c" > $client_tty
done

Vous voudrez également émettre tmux refresh sur tous les clients que vous avez réinitialisé de cette façon pour restaurer tmux à son état habituel.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X