2010-11-10 18:40:45 +0000 2010-11-10 18:40:45 +0000
1389
1389

Как прокручивать в tmux?

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

Ответы (12)

1685
1685
1685
2010-11-11 03:02:16 +0000

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

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

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

Выдержки из man page :

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.

335
335
335
2012-11-25 13:05:29 +0000

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

или

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

147
147
147
2011-08-22 20:49:40 +0000

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

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

Это позволяет нативную прокрутку xterm.

63
63
63
2015-12-01 16:09:27 +0000

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

16
16
16
2015-04-17 03:43:47 +0000

В моем случае, просто выберите + UpArrow и выберите + DownArrow на OSX.

12
12
12
2013-06-21 15:33:39 +0000

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

Чтобы попробовать, поместите все секции кода в ~/.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 для просмотра файлов в каталоге), и 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
8
8
8
2016-12-07 16:34:30 +0000

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

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

8
8
8
2016-03-31 00:42:33 +0000

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

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

Одна важная деталь, которая отсутствовала в режиме мыши, чтобы нажать Shift перед выбором области для копирования. Это скопирует его в традиционный терминальный буфер вместо буфера копирования tmux. _COPY13_issues )

7
7
7
2015-10-28 10:59:33 +0000

Единственное, что меня устраивает, это поставить следующее в ~/.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:

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

6
6
6
2017-01-04 20:22:53 +0000

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

vim ~/.tmux.conf
set -g mode-mouse on ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf
4
4
4
2019-09-22 02:10:00 +0000

FWIW, на Macbook/OSX Mojave, после ctrl+[ do:

  • up arrow for line up
  • down arrow for line down
  • fn + up arrow for page up
  • fn + down arrow for page down
  • q чтобы выйти из режима просмотра
-2
-2
-2
2016-10-26 07:55:46 +0000
  • Ctrl + A - для начала прокрутки
  • Ctrl + C - для остановки прокрутки