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?


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.


2
Außerdem habe ich gerade superuser.com/questions/253414/… gesehen , was wie beschrieben als weitere Alternative funktioniert.
Doug J


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.