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

Come faccio a scorrere in tmux?

Ho appena iniziato a usare tmux, e mi piace molto, ma devo essere in grado di scorrere all'interno dei buffer/pannelli/finestre che ho aperto. Non mi interessa se funziona con il mouse o no. Quando cerco nella pagina man di tmux, trovo solo due istanze della parola “scroll” che compaiono anche solo in due casi, ed entrambe hanno a che fare con la modalità copia. C'è un modo per scorrere senza tutti i sovraccarichi per entrare in modalità copia?

Risposte (12)

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

Ctrl-b poi [ poi si possono usare i normali tasti di navigazione per scorrere (es. Freccia su o PgDn). Premere q per uscire dalla modalità di scorrimento.

In alternativa si può premere Ctrl-b PgUp per andare direttamente in modalità copia e scorrere una pagina verso l'alto (che è ciò che si desidera il più delle volte)

In modalità vi (vedi sotto), si può anche scorrere la pagina su/giù riga per riga usando Shift-k e Shift-j (se si è già in modalità di scorrimento). Senza spostamento, il cursore si sposta al posto della pagina.

Estratti dalla man page :

tmux possono essere controllati da un client collegato usando una combinazione di tasti di un tasto di prefisso, ‘C-b’ (Ctrl-b) per impostazione predefinita, seguito da un tasto di comando.

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
``` ```
:set-window-option mode-keys emacs

Più un mazzo di altri. Si noti che si deve premere C-b due volte se si usa quello per la pagina in alto, poiché C-b è vincolato come tasto di comando. Vedere la pagina man per informazioni sulla prefazione di un comando di modalità copia con un conteggio di ripetizione.

Si può impostare la modalità di rilegatura del tasto usando Ctrl-b, poi

&001 &001

o vi.

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

Bene, dovreste considerare il modo corretto di impostare lo scorrimento: aggiungete nel vostro tmux.conf

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

o

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

Ha funzionato per me nelle finestre e nei riquadri. Ora tmux è semplicemente perfetto. Pratico tmux ha maggiori informazioni sui file tmux.conf.

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

Dal mio .tmux.conf:

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


Questo consente lo scorrimento xterm nativo.
63
63
63
2015-12-01 16:09:27 +0000

Per il nuovissimo tmux 2.1, per scorrere con il mouse in modo sano, questa è la risposta giusta:

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'"
``` &001 



non è sufficiente ricaricare il proprio .tmux.conf è necessario riavviare il tmux, ad esempio `tmux kill-server && tmux` 


tratto da [ https://github.com/tmux/tmux/issues/145 ](https://github.com/tmux/tmux/issues/145)
16
16
16
2015-04-17 03:43:47 +0000

Nel mio caso, basta optare + UpArrow e optare + DownArrow su OSX.

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

Questo è il modo in cui l'ho fatto funzionare, e le ragioni per cui penso che sia meglio del modo predefinito.

Per provarlo, mettete tutte le sezioni di codice in ~/.tmux.conf.

Step 1. Cambiate il tasto del prefisso in modo da non dover raggiungere un solo bit. La ‘B’ è apparentemente un tasto vicino, ma si trova al centro dei due indici (rispettivamente a ‘F’ e ‘J’). Poiché questa scorciatoia è essenziale in tmux, C-j è molto meglio in quanto comporta un movimento della mano pari a zero (oltre a premere il tasto).

set -g prefix C-j
unbind C-b
bind C-j send-prefix
``` ```
bind s copy-mode

Step 2. S’‘ (per inserire la modalità copia) è: 1) vicino (stessa ragione di cui sopra), 2) comporta l'altra mano (confrontare: l'1-2 in boxing, o il comando ls per visualizzare i file in una directory), e 3) potrebbe essere pensato come mnemonico per “scroll” (anche se la modalità copia non è solo di scorrimento).

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
``` &001 

Step 3. L'ultima parte, lo scorrimento vero e proprio. La "P" e la "N" sono familiari a questo scopo agli utenti di Emacs. Sono vicini, intuitivi ('P' è sopra 'N' sulla tastiera), e mnemonici ("precedente" e "successivo"). Se avete appena fatto uno scrolling in Emacs, e poi andate su tmux, ha senso avere queste scorciatoie. 

Tuttavia, ho scoperto che "I" e "K" sono ancora meglio - sono ancora più vicine a "P" e "N", e intuitive (per la stessa ragione); per quanto riguarda la mnemotecnica - poiché lo scrolling è una cosa così comune da fare, la mnemotecnica non avrà molta importanza, poiché le scorciatoie presto scavalcheranno il vostro cervello ed entreranno nella memoria muscolare. 


&001
8
8
8
2016-12-07 16:34:30 +0000

Consiglierei di provare il plugin tmux-better-mouse-mode per risolvere la maggior parte dei problemi relativi al mouse tmux.

E’ compatibile con Tmux 2.1+ e il nuovo approccio set-option -g mouse on.

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

Ho cercato molto in giro per questo e la soluzione migliore per me funziona come indicato in questa guida dettagliata http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

Aggiungete questi attacchi in ~/.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

Con il suddetto approccio implementato, è possibile copiare da riquadri in una finestra anche zoomando in ogni riquadro prima usando Prefix +.

Un dettaglio importante che mancava con la modalità mouse è premere Shift prima di selezionare un'area da copiare. Questo lo copierà nel buffer del terminale tradizionale invece che nel buffer di copia tmux. https://wiki.archlinux.org/index.php/Tmux#Scrolling )

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

L'unica cosa che funziona per me è mettere quanto segue in ~/.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"

(potrebbe essere necessario riavviare per far sì che questo abbia effetto)

Aggiornamento:

Ho scoperto che se si modifica l'impostazione in Putty Connection > Data > Tipo di terminale a “putty” (usato per risolvere alcuni problemi di formattazione) da “xterm” allora questa soluzione smette di funzionare.

Aggiorna 2:

Usa questo se vuoi “putty” come tipo di terminale: 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

Questo ha funzionato per me:

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, su un macbook/OSX Mojave, dopo ctrl+[ fare:

  • up arrow per line up
  • down arrow per line down
  • fn + up arrow per page up
  • fn + down arrow per page down
  • &007 per page down
  • q per uscire dalla modalità di visualizzazione
-2
-2
-2
2016-10-26 07:55:46 +0000
  • Ctrl + A - per avviare lo scorrimento
  • Ctrl + C - per interrompere lo scorrimento