2010-11-10 18:40:45 +0000 2010-11-10 18:40:45 +0000
1389
1389

Jak przewijać w tmuxie?

Właśnie zacząłem używać tmuxa i naprawdę mi się to podoba, ale muszę mieć możliwość przewijania w buforach/oknach, które mam otwarte. Nie obchodzi mnie, czy to działa przy użyciu myszy, czy nie. Kiedy przeszukuję stronę man tmuxa, znajduję tylko dwie instancje słowa “przewijaj”, które nawet się pojawiają i obie mają związek z trybem kopiowania. Czy jest jakiś sposób na przewijanie bez konieczności wchodzenia w tryb kopiowania?

Odpowiedzi (12)

1685
1685
1685
2010-11-11 03:02:16 +0000

Ctrl-b, a następnie [ możesz użyć zwykłych klawiszy nawigacyjnych do przewijania (np. strzałka w górę lub PgDn). Naciśnij q, aby wyjść z trybu przewijania.

Alternatywnie możesz nacisnąć Ctrl-b PgUp, aby przejść bezpośrednio do trybu kopiowania i przewijać jedną stronę w górę (co brzmi tak, jakbyś chciał przez większość czasu)

W trybie vi (patrz poniżej), możesz również przewijać stronę w górę/w dół linia po linii używając Shift-k i Shift-j (jeśli jesteś już w trybie przewijania). W trybie przesunięcia kursor przesuwa się zamiast strony.

Wyciągi z man page :

tmux mogą być sterowane z dołączonego klienta za pomocą kombinacji klawisza prefiksu, domyślnie ‘C-b’ (Ctrl-b), a następnie klawisza komend.

The default command key bindings are:

[ Enter copy mode to copy text or view the history.

Function vi emacs
-------- -- -----
Half page down C-d M-Down
Half page up C-u M-Up
Next page C-f Page down
Previous page C-b Page up
Scroll down C-Down or C-e C-Down
Scroll up C-Up or C-y C-Up
Search again n n
Search again in reverse N N
Search backward ? C-r
Search forward / C-s

Plus jeszcze jedna grupa. Zwróć uwagę, że musisz dwukrotnie nacisnąć C-b, jeśli używasz go na górze strony, ponieważ C-b jest związany jako klawisz komendy. Na stronie man znajdują się informacje na temat poprzedzania polecenia trybu kopiowania z licznikiem powtórzeń.

Tryb wiązania klawiszy można ustawić za pomocą Ctrl-b, następnie

:set-window-option mode-keys emacs

lub vi.

335
335
335
2012-11-25 13:05:29 +0000

Cóż, należy rozważyć odpowiedni sposób, aby ustawić przewijanie: dodać w swoim tmux.conf

set -g mouse on #For tmux version 2.1 and up

lub

set -g mode-mouse on #For tmux versions < 2.1

To działało dla mnie w oknach i szybach. Teraz tmux jest po prostu doskonały. Practical tmux ma więcej informacji na temat plików tmux.conf.

147
147
147
2011-08-22 20:49:40 +0000

Z mojej .tmux.conf:

# Sane scrolling
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

Umożliwia to przewijanie natywne xtermów.

63
63
63
2015-12-01 16:09:27 +0000

Dla najnowszego tmuxa 2.1, aby przewinąć go delikatnie myszką, jest to właściwa odpowiedź:

set -g mouse on
" sane scrolling:
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"

nie wystarczy po prostu przeładować .tmux.conf musisz zrestartować swój tmux, np. tmux kill-server && tmux

wzięte z https://github.com/tmux/tmux/issues/145

16
16
16
2015-04-17 03:43:47 +0000

W moim przypadku wystarczy wybrać + UpArrow i wybrać + DownArrow na OSX.

12
12
12
2013-06-21 15:33:39 +0000

Aby to wypróbować, umieść wszystkie sekcje kodu w ~/.tmux.conf.

Krok 1. Zmień klucz prefiksów, aby nie musieć sięgać do jednego bitu. B’ jest pozornie bliskim kluczem, ale znajduje się w środku dwóch palców indeksu (odpowiednio na ‘F’ i ‘J’). Ponieważ ten skrót jest niezbędny w tmuxie, C-j jest znacznie lepszy, ponieważ wymaga zerowego ruchu ręki (poza uderzeniem w klawisz).

set -g prefix C-j
unbind C-b
bind C-j send-prefix

Krok 2. S" (aby wprowadzić tryb kopiowania) jest: 1) bliski (ten sam powód, co powyżej), 2) angażuje drugą rękę (porównaj: 1-2 w boksie, lub komendę ls do wyświetlania plików w katalogu), oraz 3) może być uważany za mnemotechniczny dla “przewijania” (chociaż tryb kopiowania nie polega tylko na przewijaniu).

bind s copy-mode

Krok 3. Ostatnia część, rzeczywiste przewijanie. ‘P’ i ‘N’ są w tym celu znane użytkownikom Emacsa. Są one bliskie, intuicyjne (‘P’ jest powyżej ‘N’ na klawiaturze) i mnemotechniczne (‘poprzedni’ i ‘następny’). Jeśli właśnie przewijałeś w Emacsie, a następnie przeszedłeś do tmuxu, to ma sens posiadanie tych skrótów.

Jednak okazało się, że ‘I’ i ‘K’ są jeszcze lepsze - są jeszcze bliższe niż ‘P’ i ‘N’, i intuicyjne (z tego samego powodu); jak w przypadku mnemotechniki - ponieważ przewijanie jest tak powszechne, mnemotechnika nie będzie miała znaczenia, ponieważ skróty wkrótce ominą Twój mózg i wejdą do pamięci mięśni.

bind -t emacs-copy 'p' scroll-up
bind -t emacs-copy 'n' scroll-down
bind -t emacs-copy 'i' scroll-up
bind -t emacs-copy 'k' scroll-down
8
8
8
2016-12-07 16:34:30 +0000

Polecam spróbować wtyczkę tmux-better-mouse-mode , aby rozwiązać większość problemów związanych z myszką tmux.

Jest kompatybilna z Tmuxem 2.1+ i nowym podejściem set-option -g mouse on.

8
8
8
2016-03-31 00:42:33 +0000

Szukałem dużo na ten temat i najlepsze rozwiązanie dla mnie działa jak wspomniano w tym szczegółowym przewodniku http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

Dodaj te wiązania w ~/.tmux. conf:

set -g mode-mouse on

unbind +
bind + \
  new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
  swap-pane -s tmux-zoom.0 \;\
  select-window -t tmux-zoom

unbind -
bind - \
  last-window \;\
  swap-pane -s tmux-zoom.0 \;\
  kill-window -t tmux-zoom

Dzięki powyższemu podejściu można kopiować z szyby w oknie, jak również przez zooming do każdej szyby najpierw za pomocą Prefix +.

Ważnym szczegółem, którego brakowało w trybie myszki, jest naciśnięcie Shift przed wybraniem obszaru do skopiowania. Spowoduje to skopiowanie go do tradycyjnego bufora terminala zamiast do bufora kopii tmux. https://wiki.archlinux.org/index.php/Tmux#Scrolling\_wydania )

7
7
7
2015-10-28 10:59:33 +0000

Jedyną rzeczą, która działa dla mnie jest umieszczenie w ~/.tmux.conf

# Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

(może być konieczne ponowne uruchomienie, aby to zadziałało)

Update:

Stwierdziłem, że jeśli zmienisz ustawienie w Putty Connection > Data > Typ terminala na “kit” (używany do naprawienia niektórych problemów z formatowaniem) z “xterm” to rozwiązanie przestaje działać.

Uaktualnienie 2:

Użyj tego, jeśli chcesz aby “kit” był twoim typem terminala: set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

6
6
6
2017-01-04 20:22:53 +0000

To zadziałało dla mnie:

vim ~/.tmux.conf
set -g mode-mouse on ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf
4
4
4
2019-09-22 02:10:00 +0000

FWIW, na macbooku/OSX Mojave, po ctrl+[ do:

  • up arrow dla linii w górę
  • down arrow dla linii w dół
  • fn + up arrow dla strony w górę
  • fn + down arrow dla strony w dół
  • q aby wyjść z trybu widoku
-2
-2
-2
2016-10-26 07:55:46 +0000
  • Ctrl + A - aby rozpocząć przewijanie
  • Ctrl + C - aby zatrzymać przewijanie