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 é?


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

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


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

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


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

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


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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.