Tmux
將所有 tmux 回滾寫入文件
如何將 tmux 會話中的所有回滾寫入文件?
capture-panel
可以抓取目前螢幕,但不能抓取整個回滾。
對於那些尋找簡單答案的人:
- 使用
prefix
+:
,然後輸入capture-pane -S -3000
+Return
。(用-3000
你想保存的多行替換,或者用-
所有行替換。)這會將這些行複製到緩衝區中。- 然後,要將緩衝區保存到文件中,只需再次使用
prefix
+:
並輸入save-buffer filename.txt
+return
。(預設
Prefix
為Ctrl
+B
。)
在tmux 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 行歷史記錄以及目前顯示的行。從tmux 1.6 開始,如果您的窗格的歷史記錄超過 32Ki 行(通常最多 2Gi 行),您可以使用低至 INT_MIN 的數字。從tmux 2.0 開始,您可以使用
capture-pane -S -
來表示“從歷史的開頭開始”(即沒有大的、硬編碼的負數)。注意:保存文件中的行數並不總是等於窗格的歷史限制加上它的高度。
當窗格的歷史緩衝區已滿時,tmux會丟棄最舊的 10% 行,而不是僅丟棄一行。這意味著窗格的有效歷史深度有時會低至其配置限制的 90%。