web-dev-qa-db-ja.com

tmuxをスクロールするにはどうすればいいですか?

私はtmuxを使い始めたばかりで、本当に気に入っていますが、開いているバッファー/ペイン/ウィンドウ内をスクロールできる必要があります。マウスで動くかどうかは関係ありません。 tmuxのmanページを検索すると、Wordの "scroll"のインスタンスが2つしか表示されていないことがわかります。両方ともコピーモードに関するものです。コピーモードに入るためのオーバーヘッドを一切使わずにスクロールする方法はありますか?

1225
chadoh

Ctrl - b それから [ そうすれば、通常のナビゲーションキーを使ってスクロールできます(たとえば Up Arrow または PgDn)押す q スクロールモードを終了します。

代わりにあなたが押すことができます Ctrl - bPgUp 直接コピーモードに入り、1ページ上にスクロールする(これは、ほとんどの時間必要になると思われることです)

viモード(下記参照)では、ページを1行ずつ上下にスクロールすることもできます。 Shift - k そして Shift - j (すでにスクロールモードになっている場合)シフトしないと、ページの代わりにカーソルが移動します。

manページ からの抜粋

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を2回押す必要があります。コピーモードコマンドの繰り返し回数の前については、manページを参照してください。

キーバインドモードは次のように設定できます。 Ctrl - bそれから

:set-window-option mode-keys emacs

またはvi

1481

まあ、あなたはスクロールを設定するための適切な方法を考慮する必要があります:あなたの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ファイルに関するより多くの情報があります。

281
chaiyachaiya

私の.tmux.confから:

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

これはネイティブの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を再起動するために必要な.tmux.confを単にリロードするだけでは不十分です。 tmux kill-server && tmux

https://github.com/tmux/tmux/issues/145から取得しました

52
Flov

私の場合は、 opt + UpArrow そして opt + DownArrow OSXで。

13
ythdelmar

これが私がそれを機能させる方法であり、そして私がそれがデフォルトの方法より良いと思う理由です。

試してみるには、すべてのコードセクションを~/.tmux.confに入れてください。

ステップ1.あなたが1ビットに達する必要がないようにプレフィックスキーを変更してください。 'B'は一見近いキーですが、2本の人差し指の真ん中にあります(それぞれ '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コマンド) (copy-modeは単にスクロールに関するものではありませんが).

bind s copy-mode

ステップ3。最後の部分、実際のスクロール。 Emacsユーザーにとって、この目的には 'P'と 'N'がよく知られています。それらは近いもので、直感的(キーボードの '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-マウスモード/

〜/ .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

上記のアプローチを実装すると、ウィンドウ内のペインから最初にを使用してズームして各ペインにコピーすることができます。プレフィックス+

マウスモードで欠けていた1つの重要な詳細は、コピーする領域を選択する前に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:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

(これを有効にするには再起動する必要があるかもしれません)

更新:

PuTTY Connection> Data> Terminal-typeの設定を "PuTTY"(フォーマットの問題を修正するために使用)を "xterm"から変更すると、このソリューションは機能しなくなります。

アップデート2:

端末タイプとして "PuTTY"が必要な場合はこれを使用してください。set -g terminal-overrides "PuTTY*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

6
phocks

あなたのtmuxマウス関連の問題のほとんどを解決するために tmux-better-mouse-mode プラグインを試してみることをお勧めします。

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

私にとってうまくいったのはvim〜/ .tmux.conf set -g mode-mouse on ###だけでした。vimでこの設定を挿入してからファイルを読み込みます。 tmuxソースファイル〜/ .tmux.conf

0
Sarika Soni