Use a barra de rolagem do terminal com o tmux

41

Eu sei como rolar o tmux usando o teclado, mas notei que parece haver uma maneira de usar a barra de rolagem do terminal com o GNU Screen . Isso pode ser feito com o tmux?

Jeff
fonte
6
Você realmente não pode usar a barra de rolagem do terminal com o GNU Screen. A barra de rolagem não acessa o buffer de rolagem da tela, mas o terminal, o que significa que as linhas roladas de diferentes sessões da tela são confusas.
ak2 14/07/11
@ ak2 Tristeza ... mas obrigado pela informação!
Jeff
2
O iTerm2 tem alguns planos futuros para [integrar-se ao tmux ] ( code.google.com/p/iterm2/wiki/TmuxIntegration ). É provável que essa integração inclua o uso de uma barra de rolagem nativa para visualizar obuffer do históricodo tmux .
31411 Chris Chrissen

Respostas:

42

Isso é possível na tela GNU e no tmux e a solução alternativa é semelhante: enganar os multiplexadores, pensando que o terminal não possui o modo "tela alternativa" (como o usado pelo pico, mutt etc.). Isso é feito configurando comandos termcap para a sessão.

Para a tela GNU, coloque isto em seu .screenrc:

termcapinfo xterm*|xs|rxvt|terminal ti@:te@

e para tmux, adicione isso ao seu .tmux.conf:

set -ga terminal-overrides ',xterm*:smcup@:rmcup@'

A xterm*parte ' ' do comando deve ser definida como o seu emulador de terminal declarado como. Alguma forma de xterm é um bom palpite, mas você pode verificar o seu na maioria dos sistemas sane * nix com:

echo $TERM

e isso geralmente pode ser definido nas preferências do seu programa de terminal (por exemplo: para a Apple Terminal.app, está em Configurações-> Perfil-> Avançado (ou Configurações-> Avançado-> Emulação pré-yosemite) "Declarar terminal como".

O resultado final é que o excesso acaba no buffer de rolagem do terminal em vez de desaparecer. Obviamente, como esse é um buffer estático, as coisas ficam confusas quando você alterna entre as janelas screen ou tmux, mas isso é útil para dar uma olhada rápida na saída de um lscomando ou algo assim.

Doug J
fonte
2
além disso, vi apenas superuser.com/questions/253414/… , que funciona como descrito como outra alternativa.
Doug J
2
Solução: gist.github.com/1297707
Nick
11
@ Nick - Observe que você está resolvendo um problema diferente: adicionando suporte ao mouse no tmux. Pode ser uma solução melhor para você, mas é diferente de usar o buffer de rolagem nativo. Enquanto o seu emulador de terminal está devidamente definido o trabalho vontade acima em uma y * nix, incluindo OSX
Doug J
11
parece que isso era um tcsh embutido. No bash você pode usarecho $TERM
Doug J
11
funciona este "estouro", mas aparece alguns caracteres Unicode estranhos ao sair tmux: stackoverflow.com/q/31790939/2668831
Louis Maddox
5

Para ativar a rolagem, você pode ativar o modo de mouse embutido no seu ~/.tmux.confcomo a seguir:

set -g mode-mouse on
Shubham Chaudhary
fonte