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?


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

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


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

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


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

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


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

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.