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

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

16 ответов

Решение

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,

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

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

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

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

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

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

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

Чтобы попробовать это, поместите все разделы кода в ~/.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

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

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

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

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

I searched around a lot for this and the best solution for me works as mentioned in this detailed guide: http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

Add these bindings in ~/.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

With the above approach implemented, you can copy from panes in a window as well by zooming into each pane first using Prefix + .

One important detail that was missing with the mouse mode is to press Shift before selecting an area to copy. This will copy it to traditional terminal buffer instead of the tmux copy buffer. ( https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues )

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

FWIW, на MacBook/OSX Мохаве, после ctrl+[ делать:

  • up arrow для очереди
  • down arrow для линии вниз
  • fn + up arrow для страницы вверх
  • fn + down arrow для страницы вниз
  • q чтобы выйти из режима просмотра

В верхних ответах уже объясняется, как прокручивать. Я хотел бы добавить опцию, позволяющую избежать необходимости прокрутки: передавать вывод длинных команд вless. less — программа для навигации по текстовым файлам.

superlongcommand | less

Затем вы можете использовать привязки типа vim (d/u) или PgUp/PgDn для прокрутки иqвыйти. См. меньше шпаргалок

Host+ [мой ключ Ctrl+ aключ по умолчанию Ctrl+b

после этого легко ориентироваться с помощью конфигурации vim

Ответы выше не помогли мне включить прокрутку клавиатуры, но этот ответ на другой вопрос сработал:

      bind -n Pageup copy-mode -u
bind -n S-Pageup copy-mode -u
bind -n S-Pagedown send-keys Pagedown

Единственное, что мне помогло, это vim ~/.tmux.conf установить -g mode-mouse на ### Вставить этот параметр с помощью vim, а затем получить исходный файл. исходный файл tmux ~ /.tmux.conf

  • Ctrl + A - начать прокрутку
  • Ctrl + C - остановить прокрутку
Другие вопросы по тегам