私はtmuxを使い始めたばかりで、本当に気に入っていますが、開いているバッファー/ペイン/ウィンドウ内をスクロールできる必要があります。マウスで動くかどうかは関係ありません。 tmuxのmanページを検索すると、Wordの "scroll"のインスタンスが2つしか表示されていないことがわかります。両方ともコピーモードに関するものです。コピーモードに入るためのオーバーヘッドを一切使わずにスクロールする方法はありますか?
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
。
まあ、あなたはスクロールを設定するための適切な方法を考慮する必要があります:あなたの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を再起動するために必要な.tmux.confを単にリロードするだけでは不十分です。 tmux kill-server && tmux
私の場合は、 opt + UpArrow そして opt + DownArrow OSXで。
これが私がそれを機能させる方法であり、そして私がそれがデフォルトの方法より良いと思う理由です。
試してみるには、すべてのコードセクションを~/.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
私はこれについてたくさん調べました、そして、私のための最も良い解決策はこの詳細なガイドで述べられるように働きます: 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 )
私にとってうまくいく唯一のことは~/.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"
あなたのtmuxマウス関連の問題のほとんどを解決するために tmux-better-mouse-mode プラグインを試してみることをお勧めします。
Tmux 2.1以降および新しいset-option -g mouse on
アプローチと互換性があります。
これは私のために働いた:
vim ~/.tmux.conf
set -g mode-mouse on ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf
私にとってうまくいったのはvim〜/ .tmux.conf set -g mode-mouse on ###だけでした。vimでこの設定を挿入してからファイルを読み込みます。 tmuxソースファイル〜/ .tmux.conf