tmux set -g mouse-mode on non funziona


244

Mi sono guardato intorno e la gente dice che mettere

set -g mouse-mode on

dovrebbe farti scorrere l'output del terminale quando esegui tmux. Tuttavia, dopo averlo inserito nel mio ~/.tmux.conffile e aver detto tmux set -g mouse-mode ondurante una sessione di tmux, non cambia nulla. Quando scorro, esco ancora da tmux come scorrere in VIM con le impostazioni predefinite.

Qualcuno sa perché questo è?


mode-mousenella vecchia versione
hyiltiz l'

Risposte:


559

Quindi questa opzione è stata rinominata nella versione 2.1 (18 ottobre 2015)

Dal log delle modifiche :

 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

Quindi questo è quello che sto usando ora nel mio .tmux.conffile

set -g mouse on

1
Grazie @ Graham42! Questa è ora la risposta corretta. Ho aggiornato tmux e si è rotto stamattina: questo risolve il problema.
Matthew Lehner,

7
Anche se questa domanda è stata posta nel 2012 molto prima di questo cambiamento, questa è solo la risposta di cui io (e molti altri) avevo bisogno, hah
Andrew

2
utile,
risolvi il

2
Mentre questo funziona per Mac, con esso set -g mouse on, si romperà la possibilità di selezionare il testo nel terminale del Mac. Devo fare specificamente set -g mouse offper selezionare il testo
Vince il

1
@Vince il turno di stampa prima di selezionare o incollare
mdekkers,

70

Come notato da @ Graham42, l'opzione del mouse è cambiata nella versione 2.1. Lo scorrimento ora richiede prima di accedere alla modalità di copia. Per abilitare lo scorrimento quasi identico a com'era prima della 2.1 aggiungi i seguenti al tuo .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

Ciò consentirà lo scorrimento al passaggio del mouse su un riquadro e sarà possibile scorrere tale riquadro riga per riga.

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


2
FANTASTICO! L'impostazione mousecome dice la risposta accettata non funziona per me - questo alias che entra in modalità copia era perfetto
Gareth

2
Sembra funzionare, tuttavia non riesco più a selezionare il testo nei riquadri. Qualcun altro ha anche questo problema?
Will

64

Solo un rapido avvertimento a chiunque altro stia perdendo la testa in questo momento:

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

quindi è solo

 :setw -g mouse

1
Oppure, se lo vuoi sempre acceso, basta aggiungere set -g mousein ~/.tmux.conf. Tuttavia, tieni presente che ciò renderà più difficile la copia / incolla del testo nel terminale tramite il mouse (sono sicuro che c'è un modo - non l'ho cercato da solo).
JM Janzen,

36

questo dovrebbe funzionare:

setw -g mode-mouse on

quindi risorsa quindi file di configurazione

tmux source-file ~/.tmux.conf

o uccidi il server


Ho usato set -g mouse on e il comando file sorgente che hai dato ha funzionato perfettamente.
gospelslide

19

Incolla qui in ~ / .tmux.conf

set -g mouse on

ed eseguire sul terminale

tmux source-file ~/.tmux.conf

Grazie, ha funzionato per byobu --version byobu versione 5.73 tmux 2.5 mentre i suggerimenti sopra non lo hanno fatto.
Thomas,

15

Come ha detto @ Graham42, dalla versione 2.1 le opzioni del mouse sono state rinominate ma è possibile utilizzare il mouse con qualsiasi versione di tmux aggiungendo questo al proprio ~ / .tmux.conf:

Conchiglie Bash :

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"

Conchiglie Sh (Bourne shell):

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"

Spero che questo ti aiuti


1
Grazie! Ho tmux.conf in git e uso regolarmente macchine con la versione precedente di tmux ...
Seb

l'idea alla base di questa risposta è pura genialità! ... e potrebbe anche aiutare per style-opzioni resp. fg-, bg- e attr-abolition in tmux 2.9 . ma non funziona perché almeno la mia shell rifiuta di confrontare i numeri in virgola mobile ... e se la tua localizzazione utilizza qualcos'altro che .come un virgola mobile, devi anche aggirare questo problema.
DJCrashdummy,

@DJCrashdummy Qual è l'output di tmux -V | cut -d ' ' -f2nella tua shell?
Alejandro Blasco,

1
Nota: su Ubuntu 19.10, la versione è tmux 2.9a. Quindi lo tmux -V | sed -E 's/tmux ([0-9.]*).*$/\\1/;'analizzavo più efficacemente.
Autra,

1
Nota: almeno per me su Ubuntu 18.04, anche se /bin/shè Bash, ho bisogno della sintassi Sh , probabilmente perché Bash entra in modalità POSIX
philb

1

Prova questo. Funziona sul mio computer.

set -g mouse on

1

Puoi ancora usare la logica del diavolo per impostare le opzioni in base alla tua versione attuale di Tmux: vedi la mia risposta precedente .

Ma dal momento che tmux v1.7, set-optionaggiunge "q" per errori di silenzio e non stampare nulla (vedi changelog ). Consiglio di utilizzare questa funzione, è più leggibile e facilmente espandibile.

Aggiungi questo al tuo ~/.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

Riavvia tmux o il source-filetuo nuovo.tmux.conf


Nota a margine: sono aperto a rimuovere la mia vecchia risposta se la gente preferisce questa

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.