tmux set -g mouse-mode on funktioniert nicht

244

Ich habe mich umgesehen und die Leute sagen das Putten

set -g mouse-mode on

sollten Sie beim Ausführen von tmux durch den Terminalausgang scrollen lassen. Nachdem Sie dies in meine ~/.tmux.confDatei tmux set -g mouse-mode oneingefügt und in einer tmux-Sitzung gesagt haben, ändert sich nichts. Wenn ich scrolle, komme ich immer noch außerhalb von tmux wie beim Scrollen in vim mit Standardeinstellungen.

Weiß jemand warum das so ist?

David sagt Reinstate Monica
quelle
mode-mousein der alten Version
Hyiltiz

Antworten:

559

Daher wurde diese Option in Version 2.1 (18. Oktober 2015) umbenannt.

Aus dem 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

Das ist es, was ich jetzt in meiner .tmux.confDatei verwende

set -g mouse on
Graham
quelle
1
Danke @ Graham42! Dies ist jetzt die richtige Antwort. Ich habe tmux aktualisiert und es ist heute Morgen kaputt gegangen - das behebt es.
Matthew Lehner
7
Obwohl diese Frage 2012 schon lange vor dieser Änderung gestellt wurde, ist dies genau die Antwort, die ich (und viele andere) brauchten, hah
Andrew
2
nützlich,
behebe
2
Während dies für Mac funktioniert set -g mouse on, wird die Möglichkeit, Text im Mac-Terminal auszuwählen, beeinträchtigt. Ich muss speziell tun set -g mouse off, um Text auszuwählen
gewinnt
1
@Wins drücken Sie die Umschalttaste, bevor Sie auswählen oder
einfügen
70

Wie @ Graham42 feststellte, hat sich die Mausoption in Version 2.1 geändert. Zum Scrollen müssen Sie jetzt zuerst in den Kopiermodus wechseln. Um das Scrollen zu aktivieren, das fast identisch mit dem vor 2.1 ist, fügen Sie Folgendes zu Ihrem hinzu .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

Dadurch können Sie beim Bewegen des Mauszeigers über ein Fenster scrollen und dieses Fenster zeilenweise scrollen.

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

Umut Sirin
quelle
2
FANTASTISCH! Nur das Einstellen, mousewie die akzeptierte Antwort besagt, funktioniert bei mir nicht - dieser Alias, der in den Kopiermodus wechselt, war perfekt
Gareth
2
Dies scheint zu funktionieren, ich kann jedoch keinen Text mehr in Fenstern auswählen. Hat noch jemand dieses Problem?
will.fiset
64

Nur ein kurzes Heads-up für alle anderen, die gerade den Verstand verlieren:

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

das ist einfach so

 :setw -g mouse
user5481608
quelle
1
Oder wenn Sie es wollen immer auf, fügen Sie einfach set -g mousein ~/.tmux.conf. Beachten Sie jedoch, dass dies das Kopieren / Einfügen von Text in das Terminal über die Maus erschwert (ich bin mir sicher, dass es einen Weg gibt - ich habe ihn einfach nicht selbst nachgeschlagen).
JM Janzen
36

das sollte funktionieren:

setw -g mode-mouse on

dann Ressource dann Konfigurationsdatei

tmux source-file ~/.tmux.conf

oder töte den Server

locojay
quelle
Ich habe set -g mouse on verwendet und der Befehl für die Quelldatei, den Sie gegeben haben, hat perfekt funktioniert.
Gospelslide
19

Fügen Sie hier in ~ / .tmux.conf ein

set -g mouse on

und auf Terminal laufen

tmux source-file ~/.tmux.conf
Tran Quoc Vuong
quelle
Danke, arbeitete für byobu --version byobu Version 5.73 tmux 2.5, während die obigen Vorschläge dies nicht taten.
Thomas
15

Wie @ Graham42 sagte, wurden ab Version 2.1 die Mausoptionen umbenannt, aber Sie können die Maus mit jeder Version von tmux verwenden, indem Sie diese zu Ihrer ~ / .tmux.conf hinzufügen:

Bash Schalen:

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"

Sh (Bourne Shell) Muscheln:

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"

Hoffe das hilft

Alejandro Blasco
quelle
1
Danke dir! Ich habe tmux.conf in git und benutze regelmäßig Maschinen mit der älteren tmux-Version ...
Seb
Die Idee hinter dieser Antwort ist Genie pur! ... und könnte auch bei style-Optionen bzw. helfen . fg-, bg- und attr-abolition in tmux 2.9 . Aber es funktioniert nicht, weil zumindest meine Shell sich weigert, Gleitkommazahlen zu vergleichen ... und wenn Ihre Lokalisierung etwas anderes als .Gleitkommazahlen verwendet, müssen Sie dieses Problem auch umgehen.
DJCrashdummy
@DJCrashdummy Was ist die Ausgabe tmux -V | cut -d ' ' -f2in Ihrer Shell?
Alejandro Blasco
1
Hinweis: Unter Ubuntu 19.10 ist die Version tmux 2.9a. Also habe ich tmux -V | sed -E 's/tmux ([0-9.]*).*$/\\1/;'es immer robuster analysiert.
autra
1
Hinweis: Zumindest für mich unter Ubuntu 18.04, auch wenn /bin/shes sich um Bash handelt, benötige ich die Sh- Syntax, wahrscheinlich weil Bash in den POSIX-Modus wechselt
philb
1

Versuche dies. Es funktioniert auf meinem Computer.

set -g mouse on
Kolibri
quelle
1

Sie können weiterhin die Teufelslogik verwenden, um Optionen abhängig von Ihrer aktuellen Tmux-Version einzustellen: siehe meine vorherige Antwort .

Seit Tmux v1.7 wird jedoch set-option"-q" hinzugefügt, um Fehler auszuschalten und nichts auszudrucken (siehe Änderungsprotokoll ). Ich empfehle diese Funktion zu verwenden, sie ist besser lesbar und leicht erweiterbar.

Fügen Sie dies zu Ihrem hinzu ~/.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

Restar tmux oder source-filedein neues.tmux.conf


Randnotiz: Ich bin offen, meine alte Antwort zu entfernen, wenn die Leute diese bevorzugen

Alejandro Blasco
quelle