保存Tmux的屏幕输出分为两步:
首先用capture-pane
将屏幕输出保存在buffer里,
然后用save-buffer
将buffer内容保存到文件里。
在capture-pane
中可以用-S
和-E
指定要保存的屏幕输出的范围,
当前屏幕的最上一行为坐标原点,标记为0,下面一行坐标是1,依次类推;
原点的上一行坐标是-1,再上一行坐标是-2,依次类推。
用Alt-c
进入copy-mode后,屏幕右上角显示当前屏幕在整个pane中的坐标[X/Y],
其中X代表当前屏幕最高行的坐标,Y代表最早一行屏幕输出的坐标,
根据坐标确定要保存文本的起止坐标就可以保存了。
例如要保存第3个pane中的一段近5000行的输出,
进入copy-mode后按g
键,到最早的屏幕输出,右上角显示[5676/5676]
,
用Ctrl-f
或者J
键向下滚动屏幕,
当想要保存的第一行处于屏幕最上一行时,坐标显示为[5557/5676]
,
将想要保存的最后一行滚动到屏幕最上一行,坐标显示为[642/5676]
,
切换到另一个pane里执行:
tmux capture-pane -S -5557 -E -642 -t 3
tmux save-buffer output.log
这样这段输出就保存到文件output.log里了,其中-t 3
指定了要保存的pane的序号。
如果要保存所有历史输出,可以简写为tmux capture-pane -S -
.
除了新开一个pane执行tmux命令,也可以在当前pane用快捷键Alt-a
进入tmux命令行状态
即command-prompt,然后执行capture-pane -S -5557 -E -642
.