TMuxスクロールバッファーの内容を取得する


13

TMuxで、現在のコマンドラインの上からスクロールバッファの内容をプログラムで取得する方法はありますか?

基本的には、一致する文字列が見つかるまで上向きに反復するbashスクリプトを作成しようとしています。明確にするために、入力したコマンドの履歴を調べたくありません。コンソールに表示されるすべてを確認したい。

回答:


21

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

すばらしいです。これを任意のペインに対して実行すると、期待以上に優れています。
mahemoff 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.