Verwenden Sie die Terminal-Bildlaufleiste mit tmux

41

Ich weiß, wie man mit der Tastatur in tmux blättert, aber ich habe gemerkt, dass es eine Möglichkeit gibt, die Terminal-Bildlaufleiste mit GNU Screen zu verwenden . Kann das mit tmux gemacht werden?

Jeff
quelle
6
Sie können die Terminal-Bildlaufleiste nicht wirklich mit GNU Screen verwenden. Die Bildlaufleiste greift eigentlich nicht auf den Scrollback-Puffer des Bildschirms zu, sondern auf den des Terminals. Dies bedeutet, dass durchlaufene Zeilen aus verschiedenen Bildschirmsitzungen verwechselt werden.
Ak2
@ak2 Traurigkeit ... aber danke für die Info!
Jeff
2
iTerm2 plant für die Zukunft eine [Integration in tmux ] ( code.google.com/p/iterm2/wiki/TmuxIntegration ). Zu einer solchen Integration gehört wahrscheinlich die Verwendung einer systemeigenen Bildlaufleiste, um den TMUX- Verlaufspuffer anzuzeigen .
Chris Johnsen

Antworten:

42

Dies ist sowohl auf dem GNU-Bildschirm als auch in tmux möglich, und die Problemumgehung ist ähnlich: Die Multiplexer glauben, das Terminal habe keinen "Alternativbildschirm" -Modus (wie er von pico, mutt usw. verwendet wird). Dies wird erreicht, indem termcap-Befehle für die Sitzung festgelegt werden.

Geben Sie dies für den GNU-Bildschirm ein in .screenrc:

termcapinfo xterm*|xs|rxvt|terminal ti@:te@

und für tmux, füge dies zu deinem hinzu .tmux.conf:

set -ga terminal-overrides ',xterm*:smcup@:rmcup@'

Der ' xterm*' Teil des Befehls sollte auf das gesetzt werden, als was auch immer Ihr Terminal-Emulator deklariert ist. Eine Form von xterm ist eine gute Vermutung, aber Sie können Ihre auf den meisten vernünftigen * nix-Systemen überprüfen mit:

echo $TERM

und dies kann normalerweise in den Einstellungen Ihres Terminal-Programms festgelegt werden (dh: Für Apple ist Terminal.appes in Einstellungen-> Profil-> Erweitert (oder Einstellungen-> Erweitert-> Emulation Pre-Yosemite) "Terminal deklarieren als".

Das Endergebnis ist, dass der Überlauf im Scrollback-Puffer des Terminals endet, anstatt zu verschwinden. Da dies ein statischer Puffer ist, werden die Dinge natürlich chaotisch, wenn Sie zwischen Bildschirm- oder tmux-Fenstern wechseln, aber dies ist praktisch, um schnell nach oben zu blättern und die Ausgabe eines lsBefehls oder dergleichen zu sehen.

Doug J
quelle
2
Außerdem habe ich gerade superuser.com/questions/253414/… gesehen , was wie beschrieben als weitere Alternative funktioniert.
Doug J
2
Lösung: gist.github.com/1297707
Nick
1
@Nick - Beachten Sie, dass Sie ein anderes Problem lösen: Hinzufügen von Mausunterstützung zu tmux. Es könnte eine bessere Lösung für Sie sein, unterscheidet sich jedoch von der Verwendung des nativen Scrollback-Puffers. Solange Ihr Terminal-Emulator richtig definiert ist, funktioniert das oben Genannte auf einem y * nix, einschließlich OSX
Doug J
1
sieht so aus, als wäre ein tcsh eingebaut. Auf Bash können Sie verwendenecho $TERM
Doug J
1
Dieser "Überlauf" funktioniert, zeigt jedoch beim Beenden von tmux einige seltsame Unicode-Zeichen an: stackoverflow.com/q/31790939/2668831
Louis Maddox
5

Um das Scrollen zu aktivieren, können Sie den integrierten Mausmodus ~/.tmux.confwie folgt aktivieren :

set -g mode-mouse on
Shubham Chaudhary
quelle