it-swarm-ru.tech

Как мне прокрутить в tmux?

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

1206
chadoh

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

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

В режиме 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.

1481
Dennis Williamson

Что ж, вы должны подумать о том, как правильно настроить прокрутку: добавьте свой 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.

274
chaiyachaiya

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

# Sane scrolling
set -g terminal-overrides 'xterm*:[email protected]:[email protected]'

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

135
togdon

Для новейшего 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

48
Flov

В моем случае просто opt + UpArrow а также opt + DownArrow на OSX.

13
ythdelmar

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

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

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

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

Шаг 2. «S» (для входа в режим копирования): 1) закрыть (та же причина, что и выше), 2) включает в себя другую руку (сравните: 1-2 в боксе, или команда ls для просмотра файлов в directory), и 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
11
Emanuel Berg

Я много искал это, и лучшее решение для меня работает, как упомянуто в этом подробном руководстве: 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

При реализации вышеупомянутого подхода вы также можете копировать из панелей в окне, сначала zoom в каждую панель, используя Префикс + .

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

7
muneeb

Единственное, что работает для меня, это поместить следующее в ~/.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:[email protected]:[email protected]:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

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

Обновление:

Я обнаружил, что если вы измените настройку в соединении PuTTY> Данные> Тип терминала на «PuTTY» (используется для устранения некоторых проблем форматирования) с «xterm», то это решение перестает работать.

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

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

6
phocks

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

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

6
aymericbeaumet

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

vim ~/.tmux.conf
set -g mode-mouse on      ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf
2
Chhetri