Wiem, jak przewijać w tmuxie za pomocą klawiatury, ale zauważyłem, że wygląda na to, że można użyć paska przewijania terminala z ekranem GNU . Czy można to zrobić za pomocą Tmux?
Wiem, jak przewijać w tmuxie za pomocą klawiatury, ale zauważyłem, że wygląda na to, że można użyć paska przewijania terminala z ekranem GNU . Czy można to zrobić za pomocą Tmux?
Odpowiedzi:
Jest to możliwe zarówno na ekranie GNU, jak i na tmuxie, a obejście jest podobne: oszukać multipleksery, aby pomyślały, że terminal nie ma trybu „alternatywnego ekranu” (takiego jak używany przez pico, mutt itp.). Dokonuje się tego poprzez ustawienie komend termcap dla sesji.
W przypadku ekranu GNU umieść to w .screenrc
:
termcapinfo xterm*|xs|rxvt|terminal ti@:te@
i dla tmux, dodaj to do .tmux.conf
:
set -ga terminal-overrides ',xterm*:smcup@:rmcup@'
Część xterm*
polecenia powinna być ustawiona na dowolną deklarowaną jako emulator terminala. Pewna forma xterm jest dobrym pomysłem, ale możesz sprawdzić swój w większości rozsądnych * nix systemów:
echo $TERM
i zwykle można to ustawić w preferencjach programu terminalowego (tj. w przypadku Apple'a Terminal.app
, to w Ustawieniach-> Profil-> Zaawansowane (lub Ustawienia-> Zaawansowane-> Emulacja przed yosemite) „Zadeklaruj terminal jako”.
Efektem końcowym jest to, że przepełnienie kończy się w buforze przewijania terminala zamiast znikać. Oczywiście, ponieważ jest to jeden bufor statyczny, podczas przełączania między oknami ekranowymi lub tmux będzie się robić bałagan, ale jest to przydatne do szybkiego przesuwania w górę, aby zobaczyć wynik ls
polecenia lub tym podobne.
echo $TERM
Aby włączyć przewijanie, możesz włączyć wbudowany tryb myszy w ~/.tmux.conf
następujący sposób:
set -g mode-mouse on