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


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


1050
2017-11-10 18:40


Источник


Какие издержки вы занимаетесь? copy-mode является способом просмотра истории (и, возможно, копирования из нее). - Chris Johnsen
для меня вы можете нажать f7 для режима прокрутки и q, чтобы выйти - JohnMerlino
set -g mode-mouse on за ответ @ chaiyachaiya был победитель для меня - Peter Berg


Ответы:


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

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

В vi (см. ниже), вы также можете прокручивать страницу вверх / вниз по строкам, используя сдвиг-К а также сдвиг-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-б, тогда

:set-window-option mode-keys emacs

или vi,


1285
2017-11-11 03:02



я думаю C-b = является choose-buffer по умолчанию. Ты имел ввиду C-b [ (который copy-mode по умолчанию)? Также вы также можете использовать C-b PageUp для запуска режима копирования непосредственно на предыдущей странице (очень удобно, когда вы знаете, что вы хотите просмотреть / копировать уже прокрутила текущую страницу). - Chris Johnsen
Правильно, у моего tmux нет режима прокрутки. Тебе нужно C-b [ для входа в режим копирования, а затем используйте клавиши emacs или vi для прокрутки. Это похоже на множество шагов только для прокрутки, но преимущества tmux все еще перевешивают эти неприятности. Я нахожусь в macbook, и нет ключа PageUp: - \. (Также, как мне сделать ключи с уценкой, как вы, Деннис?) - chadoh
@chadoh: попробуйте использовать их на своем Macbook: Home: fn-LeftArrow; Конец: fn-RightArrow; Страница вверх: fn-UpArrow; Страница вниз: fn-DownArrow. Чтобы сделать keycaps: <kbd>Ctrl</kbd> - Dennis Williamson
на macbook, fn + up переходит прямо в приложение терминала и никогда не попадает в tmux - Tyler
На macbook, если вы находитесь в режиме прокрутки, вы можете использовать fn + Shift + LeftArrow для прокрутки страницы. - Nick Hammond


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


235
2017-11-25 13:05



Когда я это делаю, клики и прокрутки мыши вызывают отображение табелей в область подсказки терминала, который я использую с tmux. Есть идеи? - ely
Будущие пользователи мыши tmux: чтобы сохранить вас, прежде чем вводить текст, прокрутите страницу до конца, вы можете нажать q для выхода из режима прокрутки. - Jezen Thomas
Прокрутка мыши отлично работает с этим, но, к сожалению, я больше не могу использовать мышь для выбора текста. Использование Tilda и tmux. - friederbluemle
Заметим, что в tmux 2.1 и up это заменяется на set -g mouse on, и прокрутка автоматически не вводит режим копирования, как раньше. - thrnio
Важное примечание: этот параметр нарушает выделение и копирование текста. Для поддержания этой функции используйте shift + click. - Shadoninja


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

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

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


124
2017-08-22 20:49



Можете ли вы объяснить, что это делает? - Ivo
Я не знаю, что он делает, но это чистый гений. Наконец, прокрутка tmux работает, yay! - oneself
Это не работает для меня на OS X ... - Nick
Решение: gist.github.com/1297707 - Nick
Проверьте это, если вы запутались в ответе togdon: superuser.com/questions/310251/...   ИМО, если у вас только одно окно, это решение работает лучше, чем принятый ответ. - thameera


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


39
2017-12-01 16:09



Как это не принятый ответ? - Marcel
примечание в этом ответе о том, что «недостаточно для просто перезагрузки .tmux.conf помогло» и выхода из всех сеансов tmux для меня (возможно, kill-server будет работать) помогло! - Colin D
не могли бы вы рассказать о том, как это работает? - oligofren
Кажется, он пересылает события мыши при щелчке мыши / прокрутке / и т. Д. если панель находится в каком-либо косвенном / буферизованном состоянии (только режим копирования?), и мышь нажимает кнопку, прокрутку и т. д. Последняя часть охватывает прокрутку в прямом режиме, сначала переключаясь в косвенный режим. Если не для этих элементов управления, терминал может интерпретировать события как прокрутку истории, если вообще. Сказав это, я не знаю, смогу ли я когда-либо заставить мой пейджер и Vim прокручивать их в одно и то же время, и я попробовал кучу фрагментов. - John P


В моем случае просто выбирать + Стрелка вверх а также выбирать + Кнопка "Стрелка вниз на OSX.


12
2018-04-17 03:43



@ fixer1234 Вопрос вообще не упоминается в Linux. tmux может использоваться и для OS X. - slhck
@slhck: Спасибо. Слишком смугло; астигматизм. Я неправильно читал тег tmux как тег linux. - fixer1234


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

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

10
2018-06-21 15:33





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

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

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


6
2018-03-31 00:42



Цените свой ответ. Но многие раз ссылки могут быть нарушены. Было бы полезно добавить основную часть вашего ответа здесь и предоставить ссылку только для справки. - Prasanna


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

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


4
2017-12-07 16:34



Спасибо, это лучшее решение для меня. Он охватывает все мои привязки колес мыши, которые я добавил вручную (так что они мне больше не нужны), и есть две возможности убийцы, которые я очень хотел: scroll-without-changing-pane в комбинации с scroll-without-changing-pane а также emulate-scroll-for-no-mouse-alternate-buffer, Теперь мой опыт использования tmux - путь, путь лучше. - selurvedu


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


4
2017-10-28 10:59



Это фактически решает мою проблему прокрутки в приложении iPhone. - NathaneilCapital
Последнее, что я пробовал, больше не работает, но это сработало. Странный. set -ga terminal-overrides ',xterm*:smcup@:rmcup@' - phocks


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

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

1
2018-01-04 20:22