tmuxセッションのすべてのロールバックをファイルに書き込むには?
capture-panel
現在、画面をキャッチできますが、スクロールバック全体をキャッチすることはできません。
答え1
簡単な答えを探している人のために:
- prefix+を使用して:+
capture-pane -S -3000
を入力しますReturn。 (-3000
保存する行数に置き換えるか、-
すべての行に置き換えます。)これにより、行がバッファにコピーされます。 - その後、バッファをファイルに保存するには、prefix+を再度使用して:+
save-buffer filename.txt
を入力しますreturn。 (デフォルトでは〜/にファイルが保存されます。)
(デフォルトは+Prefixです。)CtrlB
答え2
そしてマルチプレクサ1.5。capture-pane
このコマンドは、キャプチャの開始行と終了行を許可および指定し、レコードの行を指定-S
する-E
ために負の値を使用できます。バッファにデータがある場合save-buffer
。
.tmux.conf
以下は、ファイル名の入力を求めてすべてを終了するバインディングの例です。
bind-key P command-prompt -p 'save history to filename:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer'
これにより、(最大)32768の履歴行と現在表示されている行がキャプチャされます。から始まるマルチプレクサ1.6では、ポッドの履歴が32Ki行(通常は最大2Gi行)よりも深い場合は、INT_MINほど低い数字を使用できます。次から始まったマルチプレクサcapture-pane -S -
2.0、「歴史の始まりから」を意味するために使用することができます(つまり、ハードコードされた大きな負の数はありません)。
注:保存したファイルの行数は、常にウィンドウの履歴制限に高さを加えた値と同じではありません。
ウィンドウの履歴バッファがいっぱいになるとマルチプレクサ1行だけを削除するのではなく、最も古い10%の行を削除します。これは、ウィンドウの有効記録深さが設定された制限の90%低くなる可能性があることを意味します。
答え3
(tmuxプレフィックスキーを使用する代わりに)コマンドラインで実行できるタスクが必要な場合は、次のようにします。
tmux capture-pane -pS -1000000
実行したのに何もしないようであれば、画面に表示された内容をそのまま出力するので、同じように見えるからです。
もちろん、ファイルに転送することもできます。
tmux capture-pane -pS -1000000 > file.out
tmux
マニュアルページを参照して、capture-pane
実行できるその他の操作を検索します(たとえば、色を維持したい場合はエスケープシーケンスをキャプチャするか、新しい行が含まれていない場合は複数の視覚的な行をリンクするかどうかを指定するなど)。
答え4
私は標準キーバインディングを持っていますが、@jasonwryanの返信そして設定で何も変更しませんでした。
以下は私に効果があったレシピです。 tmux設定を変更せずにいくつかのロールバックをすばやくコピーしたい場合は、この方法が役に立ちます。
Prefix==Ctrl+b私のtmux(tmux 1.6、debian 7)で。
- 選択モード入力:Prefix+ [。
- 選択開始:Space。
- vimナビゲーションを使用して必要なテキストを強調表示します。たとえば、矢印キーを使用するか、キーを押してgg出力履歴の先頭に移動します。
- 実際には、内部クリップボードにコピーを使用してくださいEnter。コピーモードが終了します。
- vimを使用して(おそらく新しいtmuxタブで)ファイルを開き、Prefix+を使用する前にコピーした内容を貼り付けます]。
- その後、必要に応じてファイルを分類したり、出力を使用したりできます。