tmux set -g режим миші увімкнено не працює


244

Я озирався і люди кажуть, що ставлять

set -g mouse-mode on

повинен дозволити вам прокручувати термінальний вихід під час запуску tmux. Однак після того, як я вклав це у мій ~/.tmux.confфайл і сказав, що tmux set -g mouse-mode onпід час сеансу tmux, нічого не змінюється. Коли я прокручую, я все ще потрапляю поза tmux, як прокрутка в vim із налаштуваннями за замовчуванням.

Хтось знає, чому це?


mode-mouseу старій версії
hyiltiz

Відповіді:


559

Тож ця опція була перейменована у версію 2.1 (18 жовтня 2015 р.)

З журналу змін :

 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

Тож це я зараз використовую у своєму .tmux.confфайлі

set -g mouse on

1
Дякую @ Graham42! Це правильна відповідь. Я оновив tmux, і він зламався сьогодні вранці - це виправляє.
Меттью Ленер

7
Навіть незважаючи на те, що це питання було задано у 2012 році перед цією зміною, це якраз відповідь, яка мені (та багатьом іншим) потрібна, так
Ендрю

2
корисно, виправте мою проблему в Ubuntu 16.04
sudoz

2
Поки це працює для Mac, це з set -g mouse on, це порушить можливість вибору тексту в терміналі Mac. Мені потрібно спеціально зробити set -g mouse offтекст, щоб вибрати текст
Перемагає

1
@ Виграє прес-зсув перед вибором або вставкою
mdekkers

70

Як зазначав @ Graham42, варіант миші змінився у версії 2.1. Тепер для прокрутки потрібно спочатку перейти в режим копіювання. Щоб увімкнути прокрутку, майже ідентичну тому, як було раніше 2.1, додайте наступне до свого .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

Це дозволить прокручувати курсор миші на панель, і ви зможете прокручувати цю панель за рядком.

Джерело: https://groups.google.com/d/msg/tmux-users/TRwPgEOVqho/Ck_oth_SDgAJ


2
FANTASTIC! Просто встановлення mouseтак, як прийнята відповідь говорить, не працює для мене - цей псевдонім, який входить у режим копіювання, був ідеальним
Гарет

2
Це, здається, працює, однак я більше не можу вибирати текст на панелях. Хтось ще має цю проблему?
will.fiset

64

Просто швидкий підхід до тих, хто зараз втрачає розум:

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

так що це просто

 :setw -g mouse

1
Або , якщо ви хочете завжди, просто додайте set -g mouseв ~/.tmux.conf. Хоча зауважте, що це ускладнить копіювання / вставлення тексту в термінал через мишу (я впевнений, що є спосіб - я просто не шукав його сам).
Дж. М. Янцен

36

це має працювати:

setw -g mode-mouse on

потім ресурс, потім конфігураційний файл

tmux source-file ~/.tmux.conf

або вбити сервер


Я використовував набір -g миші та команда вихідного файлу, яку ви дали, працювала чудово.
Євангеліє,

19

Вставте сюди в ~ / .tmux.conf

set -g mouse on

і запустіть на терміналі

tmux source-file ~/.tmux.conf

Дякую, працювали на byobu --version byobu версії 5.73 tmux 2.5, тоді як пропозиції вище не були.
Томас

15

Як сказав @ Graham42, з версії 2.1 параметри миші були перейменовані, але ви можете використовувати мишу з будь-якою версією tmux, додавши це до свого ~ / .tmux.conf:

Ракуші :

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"

Ш (оболонки Борна):

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"

Сподіваюсь, це допомагає


1
Дякую! У мене є tmux.conf в git і регулярно користуюся машинами зі старішою версією tmux ...
Себ

ідея цієї відповіді - чистий геній! ... а також може допомогти для style-опцій респ. fg-, bg- і attr-аболіція в tmux 2.9 . але це не працює, тому що принаймні моя оболонка відмовляється порівнювати числа з плаваючою комою ... і якщо ваша локалізація використовує щось інше, ніж .як плаваюча точка, ви також повинні вирішити цю проблему.
DJCrashdummy

@DJCrashdummy Який результат tmux -V | cut -d ' ' -f2у вашій оболонці?
Алехандро Бласко

1
Примітка: на ubuntu 19.10 версія tmux 2.9a. Тож я раніше tmux -V | sed -E 's/tmux ([0-9.]*).*$/\\1/;'сильніше розбирав його.
autra

1
Зауважте: що принаймні для мене на Ubuntu 18.04, навіть якщо /bin/shце Bash, мені потрібен синтаксис Sh , можливо, тому що Bash переходить у режим POSIX
philb


1

Ви все ще можете використовувати диявольську логіку налаштування параметрів залежно від вашої поточної версії Tmux: дивіться мою попередню відповідь .

Але оскільки Tmux v1.7 set-optionдодає "-q", щоб замовчувати помилки і не виводити нічого (див. Журнал змін ). Рекомендую скористатися цією функцією, вона легше читається та легко розширюється.

Додайте це до свого ~/.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 або source-fileваш новий.tmux.conf


Бічна примітка: я готовий видалити стару відповідь, якщо люди віддають перевагу цій

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.