Прокрутка на Mac с Tmux и iTerm

Вопрос или проблема

Я использую iTerm 2.1.4 и Tmux на OS X Yosemite. Я хотел бы иметь возможность прокручивать окна iTerm вверх и вниз, но я не уверен, что контролирует прокрутку. Управляет ли tmux прокруткой, когда я использую его с iTerm, или же iTerm все еще контролирует прокрутку?

Я попробовал использовать различные клавиши, которые должны прокручивать iTerm, но все, что я получаю, это символы “~~~~~” в командной строке. Как я могу прокручивать в этой настройке?

Прокрутка в tmux несколько отличается от простой прокрутки колесиком мыши или трекпадом.

В tmux прокрутка осуществляется сначала отправкой ‘prefix-[‘. Вы увидите небольшое желтое окно в верхнем правом углу окна терминала.

В этом режиме вы можете использовать клавиши со стрелками, PageUp, PageDown, Ctrl-U, Ctrl-D, hjkl (vi-режим) или другие настраиваемые клавиши движения для прокрутки вперед или назад через буфер.

В относительно недавних сборках tmux есть опция, позволяющая использовать мышь в режиме прокрутки.

Добавьте это в ваш .tmux.conf

set-option -g mouse on

Кроме того, если мне не изменяет память, tmux “встроен” в iTerm и, таким образом, такие функции, как мультиплексирование, также встроены. Есть ли причина, по которой вы хотите использовать tmux в iTerm? Встроенный терминал OSX определенно улучшается с помощью мультиплексора, такого как tmux, но iTerm стремится устранить эти недостатки, будучи автономным решением.

РЕДАКТ 1: После обновления до El Capitan я заметил некоторое непривычное поведение при использовании Terminal.app и tmux. Это привело меня к отличной статье, описывающей опции, о которых я не знал и которые, как я надеюсь, дадут более исчерпывающий ответ на ваш вопрос. Все опции, насколько я могу судить, специфичны для tmux и не зависят от версий OSX, так что их использование в Yosemite должно быть в порядке. Ваш вопрос по прокрутке рассматривается здесь, с такими опциями как:

bind-key -t vi-copy WheelUpPane scroll-up
bind-key -t vi-copy WheelDownPane scroll-down

Множество других полезных опций в статье по ссылке ниже.

https://ryanfb.github.io/etc/2015/10/19/tmux_mouse_mode_on_el_capitan.html

Я нашел следующие способы справиться с этой ситуацией (macOS Mojave):

  • Включите режим прокрутки tmux, а затем нажмите клавишу стрелки вверх; iTerm предложит вам установить вышеупомянутую настройку для прокрутки. Но если вы пропустили/отклонили это предложение, то, думаю, оно не будет воспроизведено снова.

  • Перейдите в настройки iTerm -> “Advanced” -> “Scroll wheel sends arrow keys when in alternate screen mode” -> установите “yes”.

Столкнулся с этой проблемой в последние дни. Окружение:

MacOS Big Sur 11.4

iTerm2 сборка 3.4.8

Попробовал
set-option -g mouse on
, и это работает только в режиме ctrl + b + [.

Прокрутка мышью все еще показывает историю сообщений в обычном режиме.

Наконец, я обнаружил, что нажимать Opt + прокрутка мышью работает только если нет окна разделения tmux.

Добавление к основному ответу:

set-option -g mouse on

работает только для версий tmux >= 2.1

tmux -V

Для более старых версий можно использовать

set -g mode-mouse on

.

Ответ или решение

Использование iTerm2 вместе с tmux на macOS, в данном случае OS X Yosemite, представляет собой задачу, требующую понимания взаимодействия между терминальным эмулятором и мультиплексором терминала. Чтобы разобраться в вопросе прокрутки в этом окружении, необходимо понять, как iTerm2 и tmux работают вместе, а также какие настройки и команды доступны для решения проблемы прокрутки.

Теория

Tmux — это мощный инструмент, который позволяет вам управлять несколькими терминальными сессиями в одном окне. Он поддерживает разделение окна на панели, переключение между сессиями и многим другим. Когда вы используете tmux, он берет на себя контроль над терминалом, включая буфер вывода, который управляет прокруткой текста.

iTerm2 — это эмулятор терминала для macOS, который предоставляет ряд дополнительных функций по сравнению с традиционным терминалом macOS Terminal. Среди таких функций — поддержка нескольких профилей, интеграция с tmux, возможность прокрутки, расширенные опции управления окнами и многое другое.

Когда вы запускаете tmux внутри iTerm2, прокрутка выводимого текста отличается от стандартной, поскольку tmux создаёт собственный буфер вывода. Пытаться прокручивать так же, как в обычном терминале, не получится, так как команды прокрутки и чувствительность мыши должны быть настроены специально для работы с tmux.

Пример

Для управления прокруткой в tmux необходимо активировать режим копирования. Этот режим включается комбинацией клавиш prefix (обычно Ctrl-b по умолчанию) и [. После этого в правом верхнем углу окна вы увидите небольшой индикатор режима.

В режиме копирования вы можете использовать клавиатурные стрелки, PageUp, PageDown, а также клавиши Ctrl-U и Ctrl-D для более крупной прокрутки страниц вверх и вниз, соответственно. Для тех, кто привык к редактору vi, можно также использовать клавиши hjkl для навигации в этом режиме.

Для облегчения использования мыши, начиная с более новых версий tmux (>= 2.1), доступны настройки, позволяющие использовать мышь для прокрутки. Для этого необходимо добавить в конфигурационный файл .tmux.conf следующую строку:

set-option -g mouse on

Применение

Итак, как настроить ваш iTerm2 и tmux для комфортной прокрутки?

  1. Настройка tmux: Откройте или создайте файл конфигурации .tmux.conf в вашем домашнем каталоге и добавьте set-option -g mouse on. Это позволит вам использовать прокрутку мышью, включая колесико мыши в режиме копирования.

  2. Настройка iTerm2: Перейдите в настройки iTerm2, откройте секцию "Advanced" и установите параметр "Scroll wheel sends arrow keys when in alternate screen mode" в значение "yes". Это поможет iTerm2 корректно интерпретировать сигналы прокрутки.

  3. Проверка версии tmux: Убедитесь, что ваша версия tmux — 2.1 или выше, выполнив команду tmux -V. Если у вас более старая версия, используйте команду set -g mode-mouse on, но настоятельно рекомендуется обновить tmux до актуальной версии для расширенной поддержки и функций.

  4. Используйте комбинации клавиш: В режиме копирования tmux вы можете использовать как клавиатуру, так и мышь (если она включена) для прокрутки.

  5. Решение конфликтов: Если у вас возникли проблемы с отображением "~" при попытке прокрутки, проверьте, нет ли конфликтующих сочетаний клавиш или настроек, которые могут переназначать стандартные команды.

Это решение позволяет эффективно управлять прокруткой в iTerm2 с использованием tmux, улучшая ваш рабочий процесс на macOS. Тщательная настройка обоих инструментов позволяет использовать их возможности на максимуме, создавая комфортное и продуктивное рабочее окружение.

Оцените материал
Добавить комментарий

Капча загружается...