A rolagem do mouse não funciona no tmux da maneira que funciona quando executo o shell sem o tmux (no Gnome Terminal). Parece que o tmux envia eventos de rolagem do mouse como se eu tivesse pressionado as teclas Para cima / Para baixo. Mas eu quero que ele role pelo histórico de saída do shell . Existe uma maneira de fazer o tmux funcionar assim?
Nota: Eu sei como rolar com o teclado (graças a outra pergunta aqui).
Tentei rolar o mouse em duas versões do tmux:
- 0.8-5hardy1 (no Ubuntu 8.04 (Hardy Heron))
- 1.3-1 (no Ubuntu 10.10 (Maverick Meerkat))
Respostas:
Para rolar no histórico da saída Você usaria
^b
+[
Você pode usar M + V para subir e ^ V para descer. Eu não sei se você pode usar o real PgUpe no PgDownentanto. Meu terminal não envia essas chaves para o tmux. Em vez disso, ele se desloca e não a história do tmux.Para sair do modo de cópia, pressione ESC
Para usar o mouse neste modo (chamado modo de cópia), pressione
^b
+:
e digite o seguinte:Nota: No tmux <2.1, a opção foi nomeada
mode-mouse
, e nãomouse
Agora, quando você muda para o modo de cópia, pode usar o mouse para rolar através dele. Você pode colocar este comando no seu ~ / .tmux.conf se desejar, para que ele seja carregado toda vez que você executar o tmux.
Atualização: A partir do tmux 1.5, essa opção faz com que a roda de rolagem mude automaticamente para o modo de cópia e role novamente o buffer de rolagem do tmux. Não é necessário primeiro pressionar
Ctrl-B
+[
mais. Rolar de volta para o prompt também encerra o modo de cópia automaticamente.fonte
set -g mouse on
trabalhou para mim no macOS tmux 2.1Existem algumas alterações para o Tmux 2.1
O modo do mouse foi reescrito. Agora não há mais opções para:
Em vez disso, existe apenas uma opção: 'mouse', que ativa totalmente o suporte ao mouse.
Isso seria
fonte
bind
não parece mais ser necessário no tmux 2.3 #set -g mouse on
. O comentário anterior está correto. A ligação não é mais necessária.A versão atual do tmux (1.5) permite que você simplesmente ative a opção mode-mouse e permita que você role com a roda do mouse.
No meu .tmux.conf:
fonte
C-A PgUp
para fazer isso. Você pode vincular a chave de paginação diretamente comtmux bind-key -n PPage copy-mode -u
. O thign semelhante deve funcionar para shift + pageup se você o desassociar do terminal local.Tente isso em seu arquivo .tmux.conf
Retirado de http://brainscraps.wikia.com/wiki/Extreme_Multitasking_with_tmux_and_PuTTY
fonte
escape-time
configuraçãoAlguém (de uma fonte que perdi) sugeriu adicionar o seguinte a
~.tmux.conf
:Não tenho idéia de como ele funciona ou o que faz, mas isso agora me permite rolar com a roda do mouse dentro de uma sessão do tmux sem precisar entrar no modo de cópia do tmux; Eu apenas giro a roda e BAM! funciona. Observe que estou usando o terminal.app, mas lembro que o OP deu a resposta especificamente para uso com
gnome-terminal
.fonte
less
. Se eu carregarless
dentrotmux
, a rolagem do mouse não rolará o arquivo abertoless
. Rola o terminal inteiro. Estranhamente,vim
comporta-se como esperado dentro detmux
sua configuração.setw -g mode-mouse on
opção, que faz a rolagem do modo de cópia usando a roda do mouse.man xterm
explicação da tela alternativa.O tmux 2.1 introduz novos vínculos de mouse.
Eu escrevi essas ligações agora mesmo hoje. Ele liga perfeitamente a roda do mouse às setas quando não estiver no Vim, porque o Vim é capaz de interpretar os códigos brutos da roda do mouse (para fins como escolher qual janela do Vim será rolada para você, dependendo de qual o mouse está sobre).
Isso significa que podemos finalmente usar o mouse apenas para visualizar várias páginas do manual e qualquer outra coisa que aceite teclas de seta. Você pode estender e encadear a
if
lógica conforme necessário para implementar mais lógica para seus aplicativos.Com esse novo recurso de ligação de roda, é possível criar um script na roda do mouse para executar qualquer comportamento sensível ao contexto que você desejar.
fonte
O Gnome-terminal faz alguns truques, traduzindo eventos de rolagem do mouse para as teclas de seta Para cima e Para baixo em condições de rolagem "usual" restrita. Por exemplo, quando você ver algum texto usando
less
(isso acontece em particular quando você está lendo um homem), você pode rolar o conteúdo usandoj
,k
e teclas de seta. Mas também com issognome-terminal
você pode fazer isso com a rolagem do mouse, graças ao truque mencionado.Então eu acho que
tmux
faz algumas "capturas" do terminal da mesma formaless
- e o mesmo mecanismognome-terminal
entra em ação: a rolagem do mouse se traduz em pressionamentos das teclas de seta Para cima / Para baixo.Você pode desativar esse recurso nas configurações de perfil e obter a rolagem regular em qualquer circunstância. Apenas desmarcar a última caixa de seleção na guia "rolagem": .
fonte
gnome-terminal
para o envio triplo^[[A
e^[[B
a rolagem do mouse. É melhortmux
(não é feio^[[A^[[A^[[A
em alguns programas, não é feio comando-histórico-rolagem), mas agoraless
pára de rolar no rolagem do mouse.i
caracteres)https://github.com/NHDaly/tmux-better-mouse-mode
Implementação configurável e rica em recursos do controle do mouse para tmuxes mais recentes. altamente recomendado.
Você provavelmente deseja usar
com ele também.
fonte
Você pode combinar as idéias de encadernação das outras respostas para obter um comportamento de rolagem bastante satisfatório: funciona no vim muda para o modo de cópia automaticamente no terminal e sai quando você chega ao fundo; ainda assim, você pode usar o botão do mouse em man, less e journalctl.
Meu código:
você pode adicionar outros comandos que requerem teclas de seta para rolar na parte grep -e 'man'
eu adicionei as chaves de envio várias vezes, para que um tique no volante do mouse role 4 linhas por vez
fonte
Se você já estiver em uma sessão do tmux, poderá executar o comando
Lembrete: para executar comandos, use seu prefixo
:
.fonte