Эмуляторы терминала GUI, такие как xfce4-терминал, имеют несколько способов прокрутки буфера терминала. Прежде всего:

  1. shift-(pgup/pgdown, home/end, вверх / вниз)
  2. колесико мыши
  3. нажатие и перетаскивание кнопки на полосе прокрутки

Я хочу, чтобы все три работали в tmux.

Я знаю, что 3 не будет работать в разделенных экранах. Я в порядке с этим. Я не буду использовать разделенные экраны.

Я знаю, что set -g mouse on . Это только делает номер 2 в списке выше. Я действительно очень хочу, чтобы все три в этом списке.

Экран GNU на самом деле обладает этой способностью. Вы используете линию

termcapinfo xterm* ti@:te@

в .screenrc. Мне бы хотелось такого поведения. Я не использую экран GNU, потому что он очень плохо справляется с изменением размеров терминала.

1 ответ1

0

Я не верю, что это возможно для работы - во многом так же, как этот подход к прокрутке не будет работать в приложениях, таких как vim / nano .

Можно передавать щелчки мыши приложениям, работающим на терминале, но это расширение используемого вами терминала ... как вы уже говорили, некоторые эмуляторы терминала также могут передавать мышь события колеса, но приложение также должно поддерживать такие события.


Это не сразу возможно, потому что приложения перемещают курсор к абсолютным координатам на терминале и выводят их вывод. Это расширение - старые терминалы могут печатать только новую информацию в нижней части экрана (или на бумаге ... xterm и друзья являются прямыми потомками от телетайпов). По мере развития технологий появились такие функции, как перемещение курсора по экрану. Теперь мы используем « Эмуляторы терминалов » (вот что такое xterm), а не физические « Терминалы ».

Когда вы используете Shift + PgUp/PgDn или перетаскиваете полосу прокрутки, вы прокручиваете обратно через « буфер прокрутки » эмулятора терминала - считайте, что вам повезло, что такая вещь есть!

Когда новые строки выводятся внизу, старые строки выталкиваются из верхней части экрана и затем становятся доступными, просматривая буфер обратной прокрутки терминала. Это статично и не изменяется (неизменяемый).

Было бы бессмысленно пытаться просмотреть буфер обратной прокрутки и наблюдать, как приложения корректно перерисовывают себя.

Не забывайте, что буфер терминала и приложение - это две разные вещи!


В tmux вы можете использовать Ctrl+B, а затем PgUp/PgDn для просмотра буфера обратной прокрутки одной панели (помните, что tmux фактически является эмулятором терминала, работающим внутри эмулятора терминала). В этот момент tmux « заморозит » эту панель, и вы сможете прокручивать вверх /вниз и выполнять поиск назад /вперед, используя ? и / (так же, как vim и less).

Нажмите Return или Ctrl+C, чтобы вернуться вниз и снова взаимодействовать с приложением / оболочкой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .