1160

Я только начал использовать tmux, и мне действительно это нравится, но мне нужно иметь возможность прокручивать открытые буферы / панели / окна. Мне все равно, работает ли это с мышью или нет. При поиске на справочной странице tmux я вижу только два экземпляра слова "прокрутка", и оба они имеют отношение к режиму копирования. Есть ли способ прокрутки без дополнительных затрат при входе в режим копирования?

11 ответов11

1406

Ctrl - b затем [ затем вы можете использовать обычные навигационные клавиши для прокрутки (например, Стрелка вверх или PgDn). Нажмите q, чтобы выйти из режима прокрутки.

В качестве альтернативы вы можете нажать Ctrl - b PgUp, чтобы перейти непосредственно в режим копирования и прокрутить одну страницу вверх (как это звучит, как вы хотите, большую часть времени)

В режиме vi (см. Ниже) вы также можете прокручивать страницу вверх / вниз построчно, используя Shift -k и Shift- j (если вы уже находитесь в режиме прокрутки). Без смещения курсор перемещается вместо страницы.

Выдержки из справочной страницы:

Управлять tmux можно с подключенного клиента, используя комбинацию клавиш префиксной клавиши, по умолчанию «C-b» (Ctrl-b), за которой следует командная клавиша.

 The default command key bindings are:

[           Enter copy mode to copy text or view the history.

Function                     vi              emacs
--------                     --              -----
Half page down               C-d             M-Down
Half page up                 C-u             M-Up
Next page                    C-f             Page down
Previous page                C-b             Page up
Scroll down                  C-Down or C-e   C-Down
Scroll up                    C-Up or C-y     C-Up
Search again                 n               n
Search again in reverse      N               N
Search backward              ?               C-r
Search forward               /               C-s

Плюс еще куча. Обратите внимание, что вы должны нажать C-b дважды, если вы используете это для перехода на страницу вверх, так как C-b связан как командная клавиша. См. Справочную страницу для получения информации о предварительном отображении команды режима копирования с количеством повторов.

Вы можете установить режим привязки клавиш, используя Ctrl - b, затем

:set-window-option mode-keys emacs

или vi .

260

Что ж, вам следует подумать о том, как правильно настроить прокрутку: добавьте в свой tmux.conf

set -g mouse on        #For tmux version 2.1 and up

или же

set -g mode-mouse on   #For tmux versions < 2.1

У меня это работало в окнах и панелях. Теперь tmux просто идеален.

Практический tmux имеет больше информации о файлах tmux.conf.

132

Из моего .tmux.conf:

# Sane scrolling
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

Это включает собственную прокрутку xterm.

44

Для новейшего tmux 2.1, для разумной прокрутки мышью, это правильный ответ:

set -g mouse on
" sane scrolling:
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"

недостаточно просто перезагрузить ваш .tmux.conf, вам нужно перезапустить tmux, например, tmux kill-server && tmux

взято с https://github.com/tmux/tmux/issues/145

12

В моем случае просто выберите опцию + UpArrow и opt + DownArrow для OSX.

10

Это способ, которым я сделал это, и причины, почему я думаю, что это лучше, чем способ по умолчанию.

Чтобы попробовать, поместите все разделы кода в ~/.tmux.conf .

Шаг 1. Измените префиксный ключ, чтобы вам не пришлось набирать один бит. «B» - это, казалось бы, клавиша закрытия, но она находится в середине двух указательных пальцев (на «F» и «J» соответственно). Поскольку этот ярлык необходим в tmux, Cj намного лучше, так как включает в себя нулевое движение руки (кроме нажатия клавиши).

set -g prefix C-j
unbind C-b
bind C-j send-prefix

Шаг 2. "S" (для входа в режим копирования): 1) закрыть (по той же причине, что и выше), 2) задействовать другую руку (сравните: 1-2 в боксе или команда ls для просмотра файлов в каталоге), и 3) можно рассматривать как мнемонику для "прокрутки" (хотя режим копирования - это не только прокрутка).

bind s copy-mode

Шаг 3. Последняя часть, фактическая прокрутка. 'P' и 'N' знакомы для этой цели пользователям Emacs. Они близки, интуитивно понятны ("P" выше "N" на клавиатуре) и мнемоничны ("предыдущий" и "следующий"). Если вы просто выполнили прокрутку в Emacs, а затем пошли в tmux, есть смысл использовать эти ярлыки.

Тем не менее, я обнаружил, что «I» и «K» даже лучше - они даже ближе, чем «P» и «N», и интуитивно понятны (по той же причине); что касается мнемоники - поскольку прокрутка - это обычное дело, мнемоника не будет иметь большого значения, поскольку быстрые клавиши скоро обойдут ваш мозг и войдут в мышечную память.

bind -t emacs-copy 'p' scroll-up
bind -t emacs-copy 'n' scroll-down
bind -t emacs-copy 'i' scroll-up
bind -t emacs-copy 'k' scroll-down
6

Я много искал это, и лучшее решение для меня работает, как упомянуто в этом подробном руководстве:http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

Добавьте эти привязки в ~/.tmux.conf:

set -g mode-mouse on

unbind +
bind + \
  new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
  swap-pane -s tmux-zoom.0 \;\
  select-window -t tmux-zoom

unbind -
bind - \
  last-window \;\
  swap-pane -s tmux-zoom.0 \;\
  kill-window -t tmux-zoom

С реализованным выше подходом вы можете также копировать из панелей в окне, сначала увеличивая масштаб каждой панели с помощью Prefix +.

Одной важной деталью, которая отсутствовала в режиме мыши, является нажатие клавиши Shift перед выбором области для копирования. Это скопирует его в традиционный терминальный буфер вместо буфера копирования tmux. (https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues)

5

Единственное, что работает для меня, это поместить следующее в ~/.tmux.conf

# Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

(может потребоваться перезагрузка, чтобы это вступило в силу)

Обновить:

Я обнаружил, что если вы измените настройку в Putty Connection> Data> Terminal-type на "putty" (используется для исправления некоторых проблем форматирования) с "xterm", то это решение перестает работать.

Обновление 2:

Используйте это, если вы хотите использовать "putty" в качестве типа терминала: set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

5

Я бы порекомендовал попробовать подключаемый модуль tmux-better-mouse-mode, чтобы решить большинство проблем, связанных с мышью tmux.

Он совместим с Tmux 2.1+ и новым подходом set-option -g mouse on .

1

Это сработало для меня:

vim ~/.tmux.conf
set -g mode-mouse on      ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf
-1
  • Ctrl + A - начать прокрутку
  • Ctrl + C - остановить прокрутку

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