TMuxを使用して、現在のコマンドラインの上からスクロールバッファーの内容をプログラムで取得する方法はありますか?
基本的には、一致する文字列が見つかるまで上方向に反復するbashスクリプトを記述しようとしています。明確にするために、入力したコマンドの履歴を調べたくありません。コンソールに表示されたすべてを確認したい。
tmux 1.5以降では、-S
のcapture-pane
オプションに負の数を指定して、スクロールバックバッファーにアクセスできます。
例:
ペインの現在のテキストと一緒に、最大32768行のスクロールバックバッファーをキャプチャします。
tmux capture-pane -pS -32768
直近の10番目の「スクロールオフ」ラインのみをキャプチャします。
tmux capture-pane -pS -10 -E -10
最も最近の「スクロールオフ」された100行を(最大で)キャプチャします。
tmux capture-pane -pS -100 -E -1
ペインの現在の一番上の行にまたがる11行をキャプチャします(5つの「スクロールオフ」行と、ペインの一番上の6行):
tmux capture-pane -pS -5 -E 5
注:ほとんどのtmuxコマンドと同様に、「現在の」ペインがプローブ対象のペインでない場合は、-t
を使用して特定のペインをターゲットにすることができます。
上記の例では、-p
オプションをcapture-pane
に使用しています。これはtmux 1.8以降でのみ使用できます。古いバージョンでは、save-buffer
を使用することで回避できます:
tmux capture-pane -S -32768 \; save-buffer - \; delete-buffer