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

Como posso rolar no tmux?

Comecei agora a usar o tmux, e gosto muito, mas preciso de ser capaz de rolar dentro dos amortecedores/planos/janelas que tenho abertos. Não me interessa se funciona com o rato ou não. Quando procuro na página de manual do tmux, encontro apenas duas instâncias da palavra “scroll” mesmo aparecendo, e ambas têm a ver com o modo de cópia. Existe alguma forma de rolar sem ter de entrar no modo de cópia?

Respostas (12)

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

Ctrl-b então [ então você pode usar suas teclas normais de navegação para rolar (por exemplo, Seta para Cima ou PgDn). Pressione q para sair do modo scroll.

Em alternativa, pode pressionar Ctrl-b PgUp para ir directamente para o modo de cópia e rolar uma página para cima (que é o que parece que vai querer a maior parte do tempo)

No modo vi (veja abaixo), também pode rolar a página para cima/baixo linha a linha usando Shift-k e Shift-j (se já estiver no modo scroll). Não deslocado, o cursor move-se em vez da página.

Excertos de man page :

tmux podem ser controlados a partir de um cliente anexado usando uma combinação de teclas de prefixo, ‘C-b’ (Ctrl-b) por defeito, seguido por uma tecla de 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

Mais um monte de mais. Note que tem de carregar duas vezes em C-b se usar isso para paginar desde que C-b está ligado como a tecla de comando. Consulte a página de manual para obter informações sobre como pré-configurar um comando de modo de cópia com uma contagem repetida.

Pode definir o modo de encadernação de teclas usando Ctrl-b, depois

:set-window-option mode-keys emacs

ou vi.

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

Bem, deve considerar a forma adequada de definir a rolagem: adicionar no seu tmux.conf

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

ou

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

Funcionou para mim em janelas e vidros. Agora o tmux é perfeito. Practical tmux tem mais informações sobre os ficheiros tmux.conf.

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

A partir do meu .tmux.conf:

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

Isto permite o xterm scrolling nativo.

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

Para o mais recente tmux 2.1, para navegar com o seu rato de forma sã, esta é a resposta certa:

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'"

não é suficiente apenas recarregar o seu .tmux.conf, precisa de reiniciar o seu tmux, por exemplo tmux kill-server && tmux

retirado de https://github.com/tmux/tmux/issues/145

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

No meu caso, basta optar por + UpArrow e optar por + DownArrow no OSX.

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

Foi assim que eu fiz funcionar, e as razões pelas quais acho que é melhor do que a forma padrão.

Para o experimentar, coloque todas as secções de código em ~/.tmux.conf.

Passo 1. Mude a chave de prefixo para não ter de chegar nem um bocadinho. B’ é aparentemente uma tecla próxima, mas está no meio dos dois dedos indicadores (em ‘F’ e ‘J’, respectivamente). Como esse atalho é essencial no tmux, o C-j é muito melhor porque envolve movimento de mão zero (para além de bater na tecla).

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

Passo 2. S" (para entrar no modo de cópia) é: 1) fechar (mesma razão que acima), 2) envolve a outra mão (compare: o 1-2 no boxe, ou o comando ls para ver ficheiros numa directoria), e 3) pode ser pensado como mnemónica para “scroll” (embora o modo de cópia não se limite a rolar).

bind s copy-mode

Passo 3. A última parte, a rolagem propriamente dita. O “P” e o “N” são familiares para este fim aos utilizadores do Emacs. São próximos, intuitivos (“P” está acima de “N” no teclado) e mnemónicos (“anterior” e “seguinte”). Se você acabou de rolar um pouco no Emacs, e depois vai para o tmux, faz sentido ter esses atalhos.

No entanto, descobri que “I” e “K” são ainda melhores - são ainda mais próximos do que “P” e “N”, e intuitivos (pela mesma razão); como para a mnemónica - como a rolagem é uma coisa tão comum a fazer, a mnemónica não vai realmente importar, uma vez que os atalhos vão em breve contornar o seu cérebro e entrar na memória muscular.

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

Eu recomendaria dar uma tentativa ao plugin tmux-better-mouse-mode para resolver a maioria dos seus problemas relacionados com o rato tmux.

É compatível com o Tmux 2.1+ e a nova abordagem set-option -g mouse on.

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

Procurei muito por isto e a melhor solução para mim funciona como mencionado neste guia detalhado http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

Adicione estas encadernações em ~/.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

Com a abordagem acima implementada, também pode copiar a partir de painéis numa janela através de zooming em cada painel primeiro usando Prefixo+.

Um detalhe importante que faltava com o modo rato é premir Shift antes de seleccionar uma área a copiar. Isto irá copiá-la para o buffer de terminal tradicional em vez do buffer de cópia tmux. https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues )

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

A única coisa que funciona para mim é colocar o seguinte em ~/.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"

(pode ser necessário reiniciar para que isto tenha efeito)

Update:

Descobri que se alterar a definição em Putty Connection > Data > Terminal-type para “putty” (usado para corrigir alguns problemas de formatação) de “xterm” então esta solução deixa de funcionar.

Update 2:

Use isto se quiser “putty” como o seu tipo de terminal: 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

Isto funcionou para mim:

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, num macbook/OSX Mojave, depois de ctrl+[ do:

  • up arrow para a linha para cima
  • down arrow para a linha para baixo
  • fn + up arrow para a página para cima
  • fn + down arrow para a página para baixo
  • q para sair do modo de visualização
-2
-2
-2
2016-10-26 07:55:46 +0000
  • Ctrl + A - para iniciar a rolagem
  • Ctrl + C - para parar a rolagem