Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>共享终端资源管理器New to Visual Studio Code? Get it now.
共享终端资源管理器

共享终端资源管理器

adaex

|
2 installs
| (0) | Free
跨电脑共享 devbox 终端,切换机器不丢历史、滚动无损
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

共享终端资源管理器

跨电脑共享 devbox 上的终端:换台电脑接回来,历史还在、滚动无损。

在左侧「共享终端」视图里新建/接入终端,它们跑在 devbox 的 zellij 里 —— 关掉 VS Code 窗口、 换到另一台电脑,点同一行就接回同一个终端,正在跑的进程没有中断。

为什么不是直接 tmux attach

跨电脑共享终端要同时满足两件事,而常见做法各缺一角:

方案 attach 期间滚动 换电脑后历史
tmux attach ❌ 进 alt-screen,滚轮废掉、要进 copy-mode ✅
dtach ✅ 透明字节管道 ❌ 0 scrollback
VS Code 原生终端 ✅ 原生 ❌ 关窗即杀进程
本扩展 ✅ 内联写进 xterm.js ✅ 接入时灌入历史

做法是用 Pseudoterminal 把 zellij pane 的内容内联渲染进 VS Code 终端 —— 不进 alt-screen(实测 ESC[?1049h 计数为 0),所以滚轮、选中、查找都是 VS Code 原生的。

要求

  • devbox 上装了 zellij,锚定 0.45.0(0.44.3 亦可)
  • zellij 需带 web server 能力(官方 release 默认带)—— 用于精确对齐终端宽度。 没有也能跑,会自动回退到受控 pty 方案

用法

  1. 打开左侧活动栏的「共享终端」
  2. 点 + 新建共享终端(入口目录 = 工作区第一根;也可以在某个文件夹行点 + 建到该目录)
  3. 终端列表按入口目录分文件夹展示(视图标题栏可切换平铺/分组);目录随 zellij 会话 持久,换电脑接回后分组不丢,pane 里 cd 不影响归属
  4. 换台电脑连同一个 devbox -> 列表里是同一批终端 -> 点行接回来

关掉终端标签页不会杀掉 devbox 上的进程 —— 那正是「换电脑接回来」的实现方式。 要真正销毁,用 zellij 自己的命令。

配置

配置项 默认 说明
terminalExplorer.sessionName shared 承载所有共享终端的 zellij 会话名
terminalExplorer.scrollbackLines 5000 接入时灌入的历史行数
terminalExplorer.useWebClient true 用 zellij web server 精确对齐宽度(见下)
terminalExplorer.webPort 8082 web server 端口,仅监听 127.0.0.1

关于 web server:zellij 没有「按列数设尺寸」的命令,而无客户端连接时它的视口是固定的 50 列。要让 pane 宽度跟 VS Code 终端对齐(否则输出的换行位置会错乱),唯一办法是以 常规客户端身份连上去 —— 扩展为此按需拉起 zellij 自带的 web server,只在本机回环地址监听, 认证 token 存在 VS Code 的 secrets 里。不想用可以关掉,会回退到精度略低但可用的方案。

已知边界

  • 暴涨输出时的实时逐行动画会丢帧:zellij 把渲染 debounce 到每 10ms 一次, 窗口内的多次变化合并成一帧。不影响最终内容与历史 —— 接入时灌入的 scrollback 是完整的(实测 300 行零缺失)
  • 不提供普通本地终端:点新建一律开共享终端,心智模型统一
  • 不支持分屏:一个 VS Code 终端 = zellij 里一个独占 tab,分屏交给 VS Code 自己

开发

npm install
npm test              # tsc + 编译 + 单测 + 两套真机验证
npm run test:ci       # 只跑 headless(CI 用)
# F5 开扩展开发宿主

设计决策与实测前提见 docs/plan.md,逐文件说明见 docs/architecture.md。

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft