Como faço para rolar no tmux?

1097

Acabei de começar a usar o tmux, e eu realmente gosto dele, mas eu preciso ser capaz de rolar dentro dos buffers / painéis / janelas que eu abri. Eu não me importo se funciona com o mouse ou não. Quando eu pesquiso a man page do tmux, encontro apenas duas instâncias da palavra "scroll" aparecendo, e ambas têm a ver com o modo de cópia. Existe uma maneira de rolar sem toda a sobrecarga de entrar no modo de cópia?

    
por chadoh 10.11.2010 / 19:40

11 respostas

1335
Ctrl - b então [ então você pode usar as teclas de navegação normais para rolar a tela (por exemplo, Seta para cima ou PgDn ). Pressione q para sair do modo de rolagem.

Alternativamente, você pode pressionar Ctrl - b PgUp para ir diretamente para o modo de cópia e rolar uma página para cima (que é o que parece você vai querer na maioria das vezes)

No modo vi (veja abaixo), você também pode rolar linha para cima / baixo linha por linha usando Shift - k e Shift - j (se você já estiver no modo de rolagem). Unshifted, o cursor se move em vez da página.

Trechos da página do manual :

tmux may be controlled from an attached client by using a key combination of a prefix key, ‘C-b’ (Ctrl-b) by default, followed by a command key.

 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 mais. Observe que você precisa pressionar C-b duas vezes se usar isso para page up, pois C-b está ligado como a chave de comando. Veja a página do manual para obter informações sobre como iniciar um comando do modo de cópia com uma contagem de repetição.

Você pode definir o modo de ligação de teclas usando Ctrl - b , então

:set-window-option mode-keys emacs

ou vi .

    
por 11.11.2010 / 04:02
248

Bem, você deve considerar a maneira correta de definir a rolagem: adicione 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 painéis. Agora o tmux é simplesmente perfeito.

O tmux prático tem mais informações sobre os arquivos tmux.conf.

    
por 25.11.2012 / 14:05
128

Do meu arquivo .tmux.conf:

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

Isso habilita a rolagem xterm nativa.

    
por 22.08.2011 / 22:49
42

Para o mais novo tmux 2.1, para rolar com o mouse, 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 arquivo .tmux.conf, você precisa reiniciar o tmux, por exemplo. tmux kill-server && tmux

retirado do link

    
por 01.12.2015 / 17:09
12

No meu caso, apenas opt + UpArrow e opt + DownArrow no OSX.

    
por 17.04.2015 / 05:43
10

Esta é a maneira que eu fiz o trabalho, e as razões pelas quais eu acho que é melhor do que o modo padrão.

Para experimentar, coloque todas as seções do código em ~/.tmux.conf .

Passo 1. Altere a chave de prefixo para que você não tenha que chegar a um bit. 'B' é aparentemente uma chave 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, pois envolve o movimento da mão zero (além de pressionar a 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 (mesmo motivo acima), 2) envolve a outra mão (comparar: o 1-2 no boxe, ou o comando ls para visualizar arquivos em um diretório), e 3) poderia ser considerado como mnemônico para "scroll" (embora o modo de cópia não seja apenas sobre rolagem).

bind s copy-mode

Passo 3. A última parte, a rolagem real. 'P' e 'N' são familiares para este propósito aos usuários do Emacs. Eles são próximos, intuitivos ('P' está acima de 'N' no teclado) e mnemônico ("anterior" e "próximo"). Se você acabou de fazer alguma rolagem no Emacs, e então vai para o tmux, faz sentido ter esses atalhos.

No entanto, descobri que 'eu' e 'K' são ainda melhores - eles são ainda mais próximos do que 'P' e 'N', e intuitivos (pelo mesmo motivo); quanto à mnemônica - como a rolagem é uma coisa tão comum de se fazer, a mnemônica não será realmente importante, pois os atalhos logo passarão por seu cérebro e entrarão 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
    
por 21.06.2013 / 17:33
6

Pesquisei bastante por isso e a melhor solução para mim funciona conforme mencionado neste guia detalhado: link

Adicione estas ligaçõ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, você pode copiar a partir de painéis em uma janela, aplicando zoom em cada painel usando Prefixo + .

Um detalhe importante que estava faltando no modo de mouse é pressionar Shift antes de selecionar uma área para copiar. Isso irá copiá-lo para o buffer de terminal tradicional em vez do buffer de cópia do tmux. ( link )

    
por 31.03.2016 / 02:42
5

Eu recomendaria tentar usar o plugin tmux-better-mouse-mode para resolver a maioria dos seus problemas relacionados ao mouse tmux.

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

    
por 07.12.2016 / 17:34
4

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"

(talvez seja necessário reinicializar para que isso entre em vigor)

Atualização:

Descobri que, se você alterar a configuração no Putty Connection > Dados > Tipo de terminal para "putty" (usado para corrigir alguns problemas de formatação) de "xterm", então esta solução pára de funcionar.

Atualização 2:

Use isto se você quiser "putty" como seu tipo de terminal: set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

    
por 28.10.2015 / 11:59
1

Isso 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
    
por 04.01.2017 / 21:22
-3
  • Ctrl + A - para iniciar a rolagem
  • Ctrl + C - para parar a rolagem
por 26.10.2016 / 09:55

Tags