Terminal State Recorder
Terminal State Recorder 是一个 VS Code 插件原型,用于记录并恢复工作区的受管终端会话。
当前版本仅支持 screen 后端。
功能
- 不读取终端输入历史命令
- 记录并恢复受管会话状态(状态文件存放于
~/.terminal-state-recorder/state/...)
- 自动恢复时只恢复真实存在的会话
- 默认不接管普通新建终端,仅接管
Managed Session 创建和其拆分终端
- 受管终端关闭后自动清理对应 screen 会话
- 支持
Managed Session 入口,点击后动态选择 shell(zsh/bash/fish 等)创建受管终端
命令
Terminal State Recorder: Start New Managed Session
Terminal State Recorder: Restore Managed Sessions
Terminal State Recorder: Attach Existing Managed Session
Terminal State Recorder: Save Snapshot Now
Terminal State Recorder: Clear Session Snapshot
启动测试
npm install
npm run compile
code --extensionDevelopmentPath=. --new-window
配置(精简版)
terminalStateRecorder.enabled: 全局开关
terminalStateRecorder.autoRestoreOnStartup: 启动自动恢复总开关
terminalStateRecorder.promptBeforeAutoRestore: 自动恢复前确认
terminalStateRecorder.backend.screen.executable: screen 可执行文件
terminalStateRecorder.session.namePrefix: 会话名前缀
terminalStateRecorder.restore.delayMs: 自动恢复延迟
说明
- 状态文件保存在
~/.terminal-state-recorder/state/...,按工作区目录隔离。
screen 会话启动时使用插件专用 rc:~/.terminal-state-recorder/screen/plugin.rc(仅影响插件受管会话)。
screen 创建/接管统一使用 attach/create 一体模式(-A -D -R)。
- 当前多根工作区场景默认使用第一个 workspace folder 作为隔离键。
- 无 workspace 时不会执行自动恢复/创建受管会话。
- 插件固定最小侵入 rc:
escape ~~、startup_message off、vbell off、msgwait 0、mouse on、defscrollback 10000、termcapinfo xterm* ti@:te@。
- 若
screen 可执行文件缺失,会降级为普通终端行为,并仅提示一次安装建议。
| |