tmux set -g mouse-mode on не работает


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чтобы выделить текст
Wins

1
@ Победа в пресс-смене перед выбором или
вставкой

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
ФАНТАСТИКА! Просто установка mouseв соответствии с принятым ответом говорит, что не работает для меня - этот псевдоним, который входит в режим копирования, был идеальным
Гарет

2
Кажется, это работает, однако я больше не могу выделять текст на панелях. У кого-нибудь еще есть эта проблема?
will.fiset

64

Просто быстрый хедс-ап к любому, кто сейчас сходит с ума:

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

так что это просто

 :setw -g mouse

1
Или , если вы хотите всегда, просто добавьте set -g mouseв ~/.tmux.conf. Обратите внимание, что это затруднит копирование / вставку текста в терминал с помощью мыши (я уверен, что есть способ - я просто не искал его сам).
JM Janzen

36

это должно работать:

setw -g mode-mouse on

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

tmux source-file ~/.tmux.conf

или убить сервер


Я использовал set -g mouse on и команда source-file, которую вы дали, работала отлично.
Евангелие

19

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

set -g mouse on

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

tmux source-file ~/.tmux.conf

Спасибо, сработал для byobu - версия 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 в мерзавца, и регулярно использовать машины с более старой версией tmux ...
Себ

идея этого ответа - чистый гений! ... и может также помочь в style-options соответственно. 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

Перезапустите tmux или source-fileваш новый.tmux.conf


Примечание: я открыт, чтобы удалить свой старый ответ, если люди предпочитают этот

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.