Jak mogę przewijać w górę lub w dół w tmux za pomocą Terminal.app?

62

Kiedy jestem w tmuxtrakcie, pojawia się tylko część tekstu. Jeśli spróbuję przewinąć w górę lub w dół, konsola przewinie się w górę, ale nie rzeczywisty tekst . Jeśli wykonam CTRL + b, a następnie [, zobaczę pasek stanu *tmux, a jeśli naciśniesz strzałkę w górę lub w dół, będę mógł faktycznie przesuwać tekst w górę / w dół wiersz po wierszu . Kiedy naciskam q, widzę w linii statusu bash.

Kiedy należy CTRL+bpostępować Page UPlub Pagekonsola idzie w górę iw dół, ale nie tekstu.

Jak mogę przewijać tekst w górę lub w dół w więcej niż jednym wierszu na raz?

Jim
źródło
To, co mnie zaskoczyło, ale to, co wydaje się działać od razu po wyjęciu z pudełka, to przewijanie środkową myszą podczas korzystania z tmux w terminalu gnome.
Anthon

Odpowiedzi:

89

Jeśli używasz Terminal.app OS X, przechwytuje Page up/downnaciśnięcia klawiszy i przewija zawartość okna, tak jakbyś używał paska przewijania. Możesz użyć Shift+, Page up/downaby wysłać je do aplikacji w terminalu.

Korzystając z tego, powinieneś być w stanie przewijać stronę jednocześnie za pomocą:

  1. Control+B
  2. [
  3. Klawisze strzałek lub Shift+Page up/down
  4. Control+ Cpo zakończeniu przewijania

Jeśli chcesz to zmienić, aby działało jak każda inna aplikacja terminalowa na każdej innej platformie, możesz przejść do Terminala -> Preferencje, Ustawienia, wybrać swój profil i przejść do Klawiatura oraz zamienić powiązania na „strona w dół / strona w górę” i „Przesuń stronę w dół / Przesuń stronę w górę”:

Zrzut ekranu ustawień klawiatury Terminal.app

mrb
źródło
+1, chociaż nie mogę go przetestować, ale wydaje się, że jest to odpowiedź zwycięzcy. Pamiętam, że próbowałem CMDze strzałami, ale nie pamiętam, jak próbowałem SHIFT. Również swap the bindings for "page down/page up" and "shift page down/shift page upco masz na myśli? Nie jestem pewien, co robić. Naprawdę mam nadzieję, że to zadziała, ponieważ moje nerwy są całkowicie zniszczone
Jim
@ Jim Rzuć okiem na zrzut ekranu. Jeśli otworzysz ustawienia na swoim komputerze, zobaczysz, że klawisze „strona w górę / w dół” i „przesuń stronę w górę / w dół” mają inne akcje niż te, które mam (są to powiązania: który klawisz wykonuje jaką akcję). Jeśli je zmienisz, możesz zmienić to, co dzieje się, gdy trzymasz shift lub go nie przytrzymujesz. (Jeśli je edytujesz, możesz to zrobić \033, naciskając klawisz Escape)
mrb
Nie mam obecnie macdostępnego, aby to sprawdzić, ale na twoim zrzucie ekranu jest shift page downon oznaczony tekstem, np scroll to next page in buffer. To jest specjalny tekst, który robi dokładnie to, co mówi? To znaczy definiuje jakieś mapowanie? Czy jest też dobra książka na ten temat w systemie Mac? Ponieważ w ostatnich tygodniach zwariowałem na
Jim
@Jim Nie znam żadnych książek; Otaczają mnie ludzie wychowani na komputerach Mac. Jeśli chodzi o kluczowe ustawienia, będzie to bardziej sensowne, gdy faktycznie to zrobisz. :)
mrb
Dobrze. Spróbuję jak najszybciej. Dziękuję za Twoją odpowiedź. Jestem przekonany, że dałeś mi rozwiązanie mojego problemu !!! Przyjmę to, jak tylko to przetestuję
Jim
31

Używam domyślnej kombinacji na Yosemite MacBook Pro: fn+ + lub fn+ + .

EDYCJA: Znalazłem na MBP z systemem Yosemite fn+ lub fn+ powinien działać domyślnie.

W dokumentacji jest często pokazywany jako ⇞ lub ⇟

Daniël W. Crompton
źródło
1
Działa to dla mnie na nowym Air z 10.9.4 bez zmiany preferencji lub plików konfiguracyjnych ani uruchamiania żadnych poleceń.
Paul A Jungwirth
8

Zmodyfikuj plik ~ / .tmux.conf, wstaw ustawienie „mysz” i źródłowy plik, tj .:

###Find tmux version first:
tmux -V
> 1.8 

###For tmux version 1.8;
vim ~/.tmux.conf ### file
set -g mode-mouse on  ### Edit the .tmux.conf file with this setting
tmux source-file ~/.tmux.conf

###For tmux 2.1 version on:
vim ~/.tmux.conf ### file
set -g mouse on ### Edit the .tmux.conf file with this setting
tmux source-file ~/.tmux.conf
Surya
źródło
To działa idealnie!
Sibbs Gambling
7

Aktualizacja wiążących poleceń w odpowiedzi Roba oraz w odpowiedzi na komentarze Alexa:

Znalazłem również page-upi page-downnie są poprawne polecenia tmux (v1.8), poprawnym sposobem aktualizacji ~/.tmux.confjest:

bind-key -t (emacs|vi)-copy j page-up
bind-key -t (emacs|vi)-copy ; page-down

Odebrać albo emacs lub VI w zależności od tego, co styl tmux wykorzystuje znajdują się mode-keysw tmux instrukcji

Następnie możesz przewijać strony w górę iw dół za pomocą jiw ;trybie kopiowania

Ronnie
źródło
1
Szybki link, jak ustawić tmux w trybie vi blog.sanctum.geek.nz/vi-mode-in-tmux
JiminyCricket
Jeśli dokładnie przeczytasz artykuł opublikowany przez JiminyCricket, wyjaśniono, że powyższa składnia dotyczy tylko wersji Tmux 2.3 i niższych. Jeśli masz nowszą wersję, po włączeniu trybu vi polecenie list-keys -T copy-mode-viwyświetli powiązania klawiszy w nowej składni (dobre przykłady do naśladowania). Jeśli chcesz na przykład utworzyć powiązanie stronicowania, użyj liniibind-key -T copy-mode-vi j send-keys -X page-up
mareoraft
3

Od https://wiki.archlinux.org/index.php/Tmux

Jeśli masz problemy z przewijaniem za pomocą Shift-PageUp / Shift-PageDown w swoim terminalu, spróbuj tego:

set -g terminal-przesłania 'xterm *: smcup @: rmcup @'

Może to być również emulacja terminalu. Wypróbuj jedną z poniższych opcji.

export TERM=vt100
export TERM=ansi
export TERM=xterm

może jeden z nich by to zrobił.

Jest też klawisz powiązania ~/.tmux.conf

bind-key j page-up
bind-key ; page-down

wiąże ji ;do poprzedniego i następnego.

Rob Bos
źródło
1
page-upi page-downnie są poprawnymi komendami tmux (v1.8), więc te dwie ostatnie komendy powodują błąd:Unknown command: page-(up|down)
Alex Leach,
Zobacz odpowiedź Ronniego poniżej, aby strona i strona działały
Silfheed
1

Sprawdź, czy używasz odpowiednich powiązań klawiszy tmux (vi vs emacs), wypróbowując oba zestawy: https://superuser.com/questions/196060/selecting-text-tmux-copy-mode

Miałem podobny problem, w którym mogłem przesuwać kursor za pomocą klawiszy strzałek, ale nie mogłem przewijać strony w górę lub w dół za pomocą Control+ U/ Doraz nie mogłem wybierać i kopiować za pomocą Spacei Enter. Okazuje się, że tmux był w trybie emacs na moim Macu i vi w Linuksie, chociaż nigdy nie ustawiłem tego wyraźnie dla żadnego systemu operacyjnego.

Wei
źródło
0

Jeśli dopiero zaczynasz korzystać z systemu OS X i znasz skróty klawiaturowe w systemach Windows i Linux, prawdopodobnie będziesz miał zwyczaj używania CTRLwielu rzeczy. W OS X zamiast CTRLklawisza często używany jest klawisz Command (alias Apple) .

Ponadto zamiast klawiszy Strony spróbuj użyć Command + Up(lub innych klawiszy kierunkowych), aby przesunąć kursor lub ekran.

SunSparc
źródło