tmux set -g włączony tryb myszy nie działa


244

Rozglądałem się i ludzie mówią, że to kładzenie

set -g mouse-mode on

powinien umożliwiać przewijanie danych wyjściowych terminala podczas uruchamiania tmux. Jednak po włożeniu tego do mojego ~/.tmux.confpliku i stwierdzeniu, że tmux set -g mouse-mode onpodczas sesji tmux nic się nie zmienia. Kiedy przewijam, wciąż wychodzę poza Tmux, jak przewijanie w vimie z domyślnymi ustawieniami.

Czy ktoś wie, dlaczego tak jest?


mode-mousew starej wersji
hyiltiz

Odpowiedzi:


559

Dlatego zmieniono nazwę tej opcji w wersji 2.1 (18 października 2015 r.)

Z dziennika zmian :

 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

Właśnie tego używam teraz w moim .tmux.confpliku

set -g mouse on

1
Dzięki @ Graham42! To jest teraz poprawna odpowiedź. Zaktualizowałem tmux i zepsuł się dziś rano - to naprawia.
Matthew Lehner

7
Mimo że to pytanie zostało zadane w 2012 roku przed tą zmianą, to jest tylko odpowiedź, której potrzebowałem (i wielu innych), hah
Andrew

2
przydatne, napraw mój problem w Ubuntu 16.04
sudoz

2
Podczas gdy działa to na Macu, to z set -g mouse on, to przerwie możliwość zaznaczania tekstu w terminalu Mac. Muszę specjalnie zrobić, set -g mouse offaby zaznaczyć tekst
wygrywa

1
@Wybierz klawisz shift przed wybraniem lub wklejeniem
mdekkers

70

Jak zauważył @ Graham42, opcja myszy zmieniła się w wersji 2.1. Przewijanie wymaga teraz, aby najpierw przejść do trybu kopiowania. Aby włączyć przewijanie prawie identyczne jak przed 2.1, dodaj do swojego .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

Umożliwi to przewijanie po najechaniu kursorem na panel, a ty będziesz mógł przewijać ten panel linia po linii.

Źródło: https://groups.google.com/d/msg/tmux-users/TRwPgEOVqho/Ck_oth_SDgAJ


2
FANTASTYCZNY! Samo ustawienie, mousejak mówi zaakceptowana odpowiedź, nie działa dla mnie - ten alias, który wchodzi w tryb kopiowania, był idealny
Gareth,

2
Wydaje się, że to działa, jednak nie mogę już zaznaczać tekstu w panelach. Czy ktoś jeszcze ma ten problem?
will.fiset


36

to powinno działać:

setw -g mode-mouse on

następnie zasób, a następnie plik konfiguracyjny

tmux source-file ~/.tmux.conf

lub zabij serwer


Użyłem włączonej myszy -g, a podane polecenie pliku źródłowego działało idealnie.
gospelslide

19

Wklej tutaj w ~ / .tmux.conf

set -g mouse on

i uruchomić na terminalu

tmux source-file ~/.tmux.conf

Dzięki, pracował dla byobu - wersja byobu wersja 5.73 tmux 2.5, podczas gdy powyższe sugestie nie.
Thomas

15

Jak powiedział @ Graham42, od wersji 2.1 zmieniono nazwę opcji myszy, ale możesz używać myszy z dowolną wersją tmux, dodając to do ~ / .tmux.conf:

Pociski 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"

Pociski Sh (skorupa Bourne'a):

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"

Mam nadzieję że to pomoże


1
Dziękuję Ci! Mam tmux.conf w git i regularnie używam maszyn ze starszą wersją tmux ...
Seb

idea tej odpowiedzi jest genialna! ... i może również pomóc w przypadku style-opcji fg-, bg- i attrmetabolizm w tmux 2.9 . ale to nie działa, ponieważ przynajmniej moja powłoka odmawia porównania liczb zmiennoprzecinkowych ... a jeśli twoja lokalizacja używa czegoś innego niż .zmiennoprzecinkowy, musisz również obejść ten problem.
DJCrashdummy

@DJCrashdummy Jaka jest wydajność tmux -V | cut -d ' ' -f2twojej powłoki?
Alejandro Blasco

1
Uwaga: w systemie Ubuntu 19.10 wersja to tmux 2.9a. Więc tmux -V | sed -E 's/tmux ([0-9.]*).*$/\\1/;'parsowałem to bardziej solidnie.
autra

1
Uwaga: przynajmniej dla mnie na Ubuntu 18.04, nawet jeśli /bin/shjest to Bash, potrzebuję składni Sh , prawdopodobnie dlatego, że Bash wchodzi w tryb POSIX
philb


1

Nadal możesz używać diabelskiej logiki ustawiania opcji w zależności od aktualnej wersji Tmux: patrz moja poprzednia odpowiedź .

Ale od Tmux v1.7 set-optiondodaje „-q”, aby wyciszyć błędy i nic nie drukować (patrz dziennik zmian ). Polecam użyć tej funkcji, jest bardziej czytelna i łatwa do rozszerzenia.

Dodaj to do ~/.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

Przywróć tmux lub source-fileswój nowy.tmux.conf


Uwaga dodatkowa: Jestem otwarty na usunięcie mojej starej odpowiedzi, jeśli ludzie wolą tę

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.