一直都不觉得对这个功能有需求,直到昨天用tmux打开2个sessions,5个windows和数个panes后误按了电脑的启动键💩。
再次开机之后,面对空白的tmux,以及怎么都想不起来的十几个路径,我突然意识到这个功能太重要了😇。
使用tmux-resurrect和tmux-continuum插件实现自动保存和手动恢复上次的工作环境。
.tmux.conf中进行相关配置。tmux-resurrect是一款用来保存及恢复tmux工作环境的插件,它通过将tmux工作环境保存在硬盘中的方法来使用户可以在重启电脑 / 服务器后快速恢复到上次工作时的状态。官方文档中给出的路径为~/.tmux/resurrect,但在我实际使用中发现保存路径并不在这里,我通过set -g @resurrect-dir '~/.tmux/resurrect'语句对其进行了重新设置。
使用<prefix> C-s进行保存,<prefix> C-r进行恢复。在实现上,tmux-resurrect通过一个符号链接last来指向最后一次保存的工作环境文件,可以在工作环境的保存路径下通过指令$ ln -sf <file_name> last修改last指向的文件,实现恢复之前某个版本的工作环境。
tmux-continuum是一款用来自动保存及恢复的插件,它依赖tmux-resurrect。
set -g @continuum-save-interval '30'用来设置自动保存的时间间隔,我设置为了30分钟保存一次。
还可以设置每期开启tmux自动恢复到上次的工作环境,但考虑到有时我并不希望这么做,而且敲快捷键几乎是零成本,因此没有设置。
发现官方文档给出的路径不存在,但是tmux-resurrect可以正常使用,因此我猜测可能是存储位置发生了改变,通过$ find ~ -name resurrect语句搜索resurrect文件夹,发现这一文件夹出现在了~/.local/share/tmux路径下,为了方便,我手动修改了默认保存位置。对于为何保存在这一地址,以及.local文件夹的作用,我找到了这样一个回答👇