O tmux set -g mouse-mode on não funciona

244

Eu estive olhando ao redor e as pessoas dizem que colocar

set -g mouse-mode on

deve permitir que você role pela saída do terminal ao executar o tmux. No entanto, depois de colocar isso no meu ~/.tmux.confarquivo e dizer tmux set -g mouse-mode onquando em uma sessão do tmux, nada muda. Quando eu rolar, ainda saio do tmux como rolar no vim com as configurações padrão.

Alguém sabe por que isso é?

David diz Restabelecer Monica
fonte
mode-mousena versão antiga
hyiltiz

Respostas:

559

Portanto, essa opção foi renomeada na versão 2.1 (18 de outubro de 2015)

No changelog :

 Mouse-mode has been rewritten.  There's now no longer options for:
    - mouse-resize-pane
    - mouse-select-pane
    - mouse-select-window
    - mode-mouse

  Instead there is just one option:  'mouse' which turns on mouse support

Então é isso que estou usando agora no meu .tmux.confarquivo

set -g mouse on
Graham
fonte
1
Obrigado @ Graham42! Esta é agora a resposta correta. Eu atualizei o tmux e ele quebrou esta manhã - isso corrige.
Matthew Lehner
7
Mesmo que esta pergunta foi feita em 2012 caminho antes dessa alteração, esta é apenas a resposta que eu (e muitos outros) necessários, hah
Andrew
2
útil, corrija meu problema no Ubuntu 16.04
sudoz 23/09
2
Enquanto isso estiver funcionando para o Mac, ele set -g mouse oninterromperá a capacidade de selecionar texto no terminal do Mac. Eu tenho que fazer especificamente set -g mouse offpara selecionar texto
Vitórias
1
@Wins mudança de imprensa antes de selecionar ou colando
mdekkers
70

Como @ Graham42 observou, a opção do mouse mudou na versão 2.1. A rolagem agora exige que você entre primeiro no modo de cópia. Para habilitar a rolagem quase idêntica à que era antes do 2.1, adicione o seguinte ao seu .tmux.conf.

set-option -g mouse on

# make scrolling with wheels work
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M

Isso permitirá a rolagem ao passar o mouse sobre um painel e você poderá rolar esse painel linha por linha.

Fonte: https://groups.google.com/d/msg/tmux-users/TRwPgEOVqho/Ck_oth_SDgAJ

Umut Sirin
fonte
2
FANTÁSTICO! Apenas a criação mousecomo a resposta aceita diz que não funciona para mim - este alias que entra modo de cópia foi perfeita
Gareth
2
Isso parece funcionar, no entanto, não consigo mais selecionar o texto nos painéis. Alguém mais está tendo esse problema?
will.fiset
64

Apenas um alerta rápido para qualquer pessoa que esteja perdendo a cabeça no momento:

https://github.com/tmux/tmux/blob/310f0a960ca64fa3809545badc629c0c166c6cd2/CHANGES#L12

então isso é apenas

 :setw -g mouse
user5481608
fonte
1
Ou se você quer que ele sempre ligado, basta adicionar set -g mouseno ~/.tmux.conf. No entanto, observe que isso tornará mais difícil copiar / colar texto no terminal através do mouse (tenho certeza de que há uma maneira - simplesmente não procurei por mim).
JM Janzen
36

isso deve funcionar:

setw -g mode-mouse on

então recurso e arquivo de configuração

tmux source-file ~/.tmux.conf

ou mate o servidor

locojay
fonte
Usei set -g mouse on e o comando do arquivo de origem que você deu funcionou perfeitamente.
gospelslide
19

Cole aqui em ~ / .tmux.conf

set -g mouse on

e corra no terminal

tmux source-file ~/.tmux.conf
Tran Quoc Vuong
fonte
Obrigado, trabalhei no byobu --version byobu versão 5.73 tmux 2.5, enquanto as sugestões acima não.
Thomas
15

Como @ Graham42 disse, a partir da versão 2.1, as opções de mouse foram renomeadas, mas você pode usar o mouse com qualquer versão do tmux adicionando-a ao seu ~ / .tmux.conf:

Bash shells:

is_pre_2_1="[[ $(tmux -V | cut -d' ' -f2) < 2.1 ]] && echo true || echo false"
if-shell "$is_pre_2_1" "setw -g mode-mouse on; set -g mouse-resize-pane on;\
      set -g mouse-select-pane on; set -g mouse-select-window on" "set -g mouse on"

Conchas Sh (cascas de Bourne):

is_pre_2_1="tmux -V | cut -d' ' -f2 | awk '{print ($0 < 2.1) ? "true" : "false"}'"
if-shell "$is_pre_2_1" "setw -g mode-mouse on; set -g mouse-resize-pane on;\
      set -g mouse-select-pane on; set -g mouse-select-window on" "set -g mouse on"

Espero que isto ajude

Alejandro Blasco
fonte
1
Obrigado! Eu tenho tmux.conf no git, e usar regularmente máquinas com a versão mais antiga tmux ...
Seb
a idéia por trás dessa resposta é pura genialidade! ... e também pode ajudar nas styleopções resp. fg-, bg- e - attrabolition no tmux 2.9 . mas não funciona porque pelo menos meu shell se recusa a comparar números de ponto flutuante ... e se sua localização usa algo diferente de .ponto flutuante, você também deve contornar esse problema.
DJCrashdummy #
@DJCrashdummy Qual é a saída do tmux -V | cut -d ' ' -f2seu shell?
Alejandro Blasco
1
Nota: no ubuntu 19.10, a versão é tmux 2.9a. Então, eu costumava tmux -V | sed -E 's/tmux ([0-9.]*).*$/\\1/;'analisá-lo com mais robustez.
autra 21/04
1
Nota: que pelo menos para mim no Ubuntu 18.04, mesmo que /bin/shseja o Bash, eu preciso da sintaxe Sh , provavelmente porque o Bash entra no modo POSIX
philb
1

Tente isso. Funciona no meu computador.

set -g mouse on
beija Flor
fonte
1

Você ainda pode usar a lógica do diabo para definir opções, dependendo da sua versão atual do Tmux: veja minha resposta anterior .

Mas desde o Tmux v1.7, set-optionadiciona "-q" para silenciar erros e não imprimir nada (consulte o registro de alterações ). Eu recomendo usar esse recurso, é mais legível e facilmente expansível.

Adicione isto ao seu ~/.tmux.conf:

# from v2.1
set -gq mouse on
# before v2.1
set -gq mode-mouse on
set -gq mouse-resize-pane on
set -gq mouse-select-pane on
set -gq mouse-select-window on

Reinicie o tmux ou source-fileseu novo.tmux.conf


Nota lateral: Estou aberto para remover minha resposta antiga, se as pessoas preferirem esta

Alejandro Blasco
fonte