Вопрос или проблема
Недавно я начал использовать tmux в терминале на моем Mac. Однако теперь, когда я нахожусь в сеансе tmux и прокручиваю вверх или вниз с помощью мыши, он прокручивает мою историю команд вместо прокрутки терминального окна. Как отключить эту функцию и вернуть прокрутку мышью к стандартному поведению?
Выполните эту команду:
$ tput rmcup
Скорее всего, вы (либо локально, либо удаленно) запускали команду (например, vim
, или top
, или многие программы, использующие библиотеки, подобные ncurses
), которая использует режим “альтернативного экрана” терминала. Когда он активен, многие программы в терминале переназначают действие прокрутки мышью на стрелки, так как прокрутка локального дисплея обычно мало полезна. Если это приложение завершилось некорректно, ваш терминал все еще мог считать, что находится в этом режиме.
Эта команда сбрасывает это и должна восстановить вашу возможность прокрутки.
Полагаю, вы используете iTerm?
Причина, вероятно, в том, что ваш терминал отправляет команды клавиш Вверх и Вниз для колесика мыши, когда приложения находятся в “режиме позиционирования курсора”, но сами не запрашивают мышь, как это происходит в tmux с отключенной опцией mouse.
Возможно, вы можете настроить терминал не делать этого, но это маловероятно. Однако, большинство терминалов позволяют вам удерживать Shift или Ctrl или какой-либо другой модификатор для выбора или прокрутки, так что вы можете попробовать это.
Вы обнаружите, что при работе с tmux прокрутка терминала ненадежна, потому что tmux мало контролирует ее. Рекомендуемый способ копирования текста при использовании tmux – это включение поддержки мыши в tmux (установить -g mouse on) и использование режима копирования.
Как упомянул @Nicholas Marriott в комментарии, строка set-option -g mouse on
в вашем файле .tmux.conf
вероятно сделает то, что вы хотите. (Убедитесь, что вы используете последнюю версию tmux.) Это устанавливает глобальную опцию, которая включает интерактивность с мышью.
Опция mouse
также позволит tmux автоматически копировать текст при его выделении, а также вы сможете кликать по панелям tmux и перетаскивать их границы.
Это может также иметь несколько побочных эффектов, так что вы, конечно, можете решить, хотите ли вы пойти по этому пути:
Прокрутка в tmux немного отличается от обычной прокрутки в терминальном эмуляторе. Например, я не уверен, как добиться приятного поведения “прокрутки до низа при вводе”, но кажется, что если нужно, вы можете заменить это быстрым ^C
, чтобы вернуться к низу. (Это просто переходит к низу, если вы прокрутили вверх, и не выводит новую командную строку.)
Наибольший недостаток (насколько я знаю) в том, что вы не сможете прокручивать внутри программы разборщика. (Вы, возможно, сможете найти какой-то обходной путь.)
Возможно, вам не нужен ответ на этот вопрос сейчас, судя по дате оригинального поста, но, надеюсь, это поможет кому-то. 🙂
В Настройках Терминала на вашем Mac перейдите в Профили -> [ваш профиль] -> Клавиатура и снимите галочку с чекбокса “Прокрутка альтернативного экрана”.
.
Ответ или решение
Отключение прокрутки истории команд с помощью мыши в терминале на Mac
Если вы столкнулись с тем, что в терминале вашего Mac, особенно в сеансе tmux, прокрутка с помощью мыши выводит вас по истории команд вместо прокрутки окна терминала, это обычно связано с настройками терминала в режиме "альтернативного экрана". Это явление чаще всего связано с использованием терминалов на основе библиотек, таких как ncurses, которые переназначают действия колесика мыши на команды верх и вниз для навигации по истории.
1. Причины и решения проблемы
Основная причина данного поведения кроется в том, что терминалы часто переходят в режим, где стрелки навигации управляют посредством колесика мыши, особенно в программах, работающих в "режиме курсора".
Чтобы вернуть прокрутку к стандартному поведению, вам потребуется выполнить в терминале команду:
tput rmcup
Это действие восстановит настройки прокрутки, подходящие для вашего терминала.
2. Настройки терминала и tmux
-
Конфигурация tmux: Один из наиболее эффективных способов решения проблемы — это использование файла конфигурации
.tmux.conf
, добавив в него строку:set-option -g mouse on
Это позволит вам полноценно использовать возможности мыши в tmux, в том числе копирование текста и изменение размеров панелей разбиения окон.
-
Дополнительные настройки терминала на Mac: Проверьте, чтобы в настройках вашего профиля в Терминале Mac (Терминал -> Профили -> [ваш профиль] -> Клавиатура) была снята галочка с опции "Прокрутка альтернативного экрана". Это также возвращает поведение терминала к стандартному.
3. Руководство по использованию прокрутки в tmux
Настройки и поведение tmux в отношении прокрутки и взаимодействия мыши могут отличаться от стандартного терминала. Прокрутка внутри терминала tmux не всегда поддерживается так, как ожидается, особенно в режиме просмотра текстовых файлов через пейджеры. Тем не менее, включение опции мыши в tmux позволит вам осуществлять взаимодействие наиболее гибко, хоть и могут возникнуть определенные ограничения, например, невозможность прокрутки в текстовых просмоторщиках.
Эти мероприятия помогут вам настроить работу теминала и tmux для получения нужной функциональности прокрутки, подходящей к вашим рабочим предпочтениям в системе macOS.