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

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

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

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

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

В режиме 

1
vi

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

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

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


1
 The default command key bindings are: [ Enter copy mode to copy text or view the history. Function vi emacs -------- -- ----- Half page down Cd M-Down Half page up Cu M-Up Next page Cf Page down Previous page Cb Page up Scroll down C-Down or Ce C-Down Scroll up C-Up or Cy C-Up Search again nn Search again in reverse NN Search backward ? Cr Search forward / Cs

Плюс еще больше. Обратите внимание, что вы должны дважды нажимать 

1
Cb

 если вы используете это для страницы, так как 

1
Cb

 связан как командный ключ. См. Справочную страницу для информации о предваряющей команде режима копирования с подсчетом повтора.

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


1
:set-window-option mode-keys emacs

Или 

1
vi

 .

Ну, вы должны рассмотреть правильный способ установки прокрутки: добавьте в свой 

1
tmux.conf

1
set -g mouse on

(Tmux версии 2.1 и выше) или


1
set -g mode-mouse on

(Более ранние версии)

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

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

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


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

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

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


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, например 

1
tmux kill-server && tmux

Взято из https://github.com/tmux/tmux/issues/145

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

Чтобы попробовать, поместите все разделы кода в 

1
~/.tmux.conf

 .

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


1
set -g prefix Cj unbind Cb bind Cj send-prefix

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

1
ls

 для просмотра файлов в Каталог) и 3) можно было считать мнемоническим для «прокрутки» (хотя режим копирования – это не просто прокрутка).


1
bind s copy-mode

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

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


1
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

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

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

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


1
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

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

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

Единственное, что работает для меня, заключается в следующем: 

1
~/.tmux.conf

1
# 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», это решение перестанет работать.

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

Он совместим с Tmux 2.1+ и новой 

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
  • Ctrl + A – для начала прокрутки
  • Ctrl + C – для остановки прокрутки

 



Запись опубликована в рубрике Программы, Софт с метками . Добавьте в закладки постоянную ссылку.


Поделиться с друзьями




Добавить комментарий