Utilizzare la barra di scorrimento del terminale con tmux


41

So scorrere in tmux usando la tastiera, ma ho notato che sembra che ci sia un modo per usare la barra di scorrimento del terminale con GNU Screen . Questo può essere fatto con tmux?


6
Non puoi davvero usare la barra di scorrimento del terminale con GNU Screen. La barra di scorrimento in realtà non accederà al buffer di scorrimento dello schermo, ma a quello del terminale, il che significa che le linee scrollate da diverse sessioni dello schermo vengono confuse.
ak2

@ ak2 Sadness ... ma grazie per le informazioni!
Jeff,

2
iTerm2 ha alcuni piani futuri per [integrare con tmux ] ( code.google.com/p/iterm2/wiki/TmuxIntegration ). Tale integrazione sembra includere probabilmente l'uso di una barra di scorrimento nativa per visualizzare ilbuffer della cronologia di tmux .
Chris Johnsen,

Risposte:


42

Questo è possibile sia nello schermo GNU che in tmux e la soluzione alternativa è simile: ingannare i multiplexer nel pensare che il terminale non abbia una modalità "schermo alternativo" (come quella usata da pico, mutt, ecc.). Ciò si ottiene impostando i comandi termcap per la sessione.

Per lo schermo GNU, inseriscilo nel tuo .screenrc:

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

e per tmux, aggiungi questo al tuo .tmux.conf:

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

La parte ' xterm*' del comando dovrebbe essere impostata su qualunque sia il tuo emulatore di terminale dichiarato. Qualche forma di xterm è una buona ipotesi, ma puoi controllare la tua sulla maggior parte dei sistemi sani * nix con:

echo $TERM

e questo di solito può essere impostato nelle preferenze del tuo programma terminale (es .: per Apple Terminal.app, è in Impostazioni-> Profilo-> Avanzate (o Impostazioni-> Avanzate-> Emulazione pre-yosemite) "Dichiara terminale come".

Il risultato finale è che l'overflow finisce nel buffer di scrollback del terminale invece di scomparire. Naturalmente, poiché si tratta di un buffer statico, le cose diventeranno confuse quando si passa da schermo a tmux windows, ma è utile per scorrere rapidamente verso l'alto per vedere l'output di un lscomando o simili.


2
inoltre, ho appena visto superuser.com/questions/253414/… , che funziona come descritto come un'altra alternativa.
Doug J,


1
@Nick - Nota che stai risolvendo un problema diverso: aggiungere il supporto del mouse a tmux. Potrebbe essere una soluzione migliore per te, ma è diversa dall'uso del buffer di scorrimento nativo. Finché l'emulatore di terminale è correttamente definito, quanto sopra funzionerà su un y * nix, incluso OSX
Doug J

1
sembra che fosse un tcsh integrato. Su bash puoi usareecho $TERM
Doug J

1
funziona questo "troppo pieno", ma presenta alcuni caratteri unicode dispari su tmux in uscita: stackoverflow.com/q/31790939/2668831
Louis Maddox

5

Per abilitare lo scorrimento, puoi abilitare la modalità mouse integrata nel tuo ~/.tmux.confcome segue:

set -g mode-mouse on
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.