工作区导轨
实验性功能
工作区导轨是实验性功能,默认关闭。请在 设置 → 文件与图片 → 工作区 → 工作区侧栏 中启用。导轨关闭时,VMark 的行为与以往完全相同——每个窗口一个工作区。
工作区导轨让一个窗口可以同时容纳多个工作区,它们以一列彩色图标的形式显示在窗口左侧边缘。点击某个工作区会执行一次完整的上下文切换:编辑器标签页、侧边栏文件树、分屏布局以及侧边栏/大纲状态,都会换成该工作区自己的那一套——就像在浏览器中切换空间(Spaces),而不只是换一个筛选条件。
哪些会切换,哪些保持不变
| 界面 | 在导轨上切换时 |
|---|---|
| 编辑器标签栏 | 只显示当前工作区的标签页(以及浏览器页面) |
| 侧边栏文件树 | 以当前工作区为根重新显示,并保留该工作区自己的文件夹展开与滚动状态 |
| 分屏窗格 | 每个工作区记住自己的分屏布局 |
| 大纲 | 每个标签页的折叠/筛选/滚动状态随工作区切换 |
| 下一个/上一个标签页、标签页右键菜单、快速打开中的“已打开的标签页” | 仅限当前工作区 |
| 重新打开已关闭的标签页 | 已关闭的标签页按工作区分别记录(另有一个共享的浏览器范围),并可从 文件 → 重新打开已关闭的标签页、命令面板或你在 设置 → 快捷键 中指定的快捷键按最近关闭的顺序重新打开(它默认没有快捷键:附近的组合键都已被占用)。重新打开的文档会从磁盘重新读取,因此显示的是文件当前的内容;如果文件已被移动或删除,该标签页不会被恢复,并会有提示说明原因。未命名的标签页重新打开时为空。未保存的编辑不会被找回——关闭有未保存更改的标签页时,已经询问过是否保存 |
| 浏览器页面 | 窗口级全局——在每个工作区中都能访问 |
| 最近文件 / 最近工作区菜单 | 全局 |
| 自动保存、保存提示、文件监视 | 覆盖所有标签页,无论是否隐藏 |
切换从不关闭任何东西:隐藏工作区的标签页会在后台保持打开、继续自动保存;如果你关闭窗口时仍有未保存的更改,它们同样会弹出保存提示。
独立文件
从所有工作区根目录之外打开的文件,会归入一个合成的独立文件条目(堆叠文件图标)。切换到它即可看到这些标签页;需要时它会自动出现。
在工作区之间移动文件
归属跟随文件的路径:
- 用 另存为 保存到另一个工作区的文件夹中,会把标签页移到那里——如果这正是你当前查看的标签页,可见的工作区也会随之切换。
- 在磁盘上的重命名或移动(包括在 Finder 中操作)也会以同样的方式为标签页重新归属。
- 打开一个属于隐藏工作区的文件(通过快速打开、最近文件或文件对话框)时,会先切换到该工作区,因此你要打开的标签页就是你看到的标签页。
会话与重启
每个工作区的配置只记住它自己的标签页和分屏布局。由用户打开的浏览器页面按窗口持久保存。热退出会恢复窗口中的每一个工作区——包括每个工作区的侧边栏状态和记录下来的已关闭标签页历史——并重新激活你之前所在的工作区。
AI(MCP)行为
通过 MCP 打开文档的 AI 客户端永远不会强行切走你正在查看的工作区:workspace.open 会创建一个后台标签页,并返回其 tabId 供后续的文档调用使用。只有显式的 workspace.switch_tab 操作才会改变你看到的内容,其响应会报告 workspaceSwitched: true,以便 AI 告诉你发生了切换。参见 MCP 工具参考。
导轨操作
| 操作 | 方法 |
|---|---|
| 切换工作区 | 点击其图标 |
| 添加工作区 | 文件 → 打开工作区...(已在导轨上的文件夹会直接切换过去,而不会重复添加) |
| 调整顺序 | 把一个图标拖到另一个图标上 |
| 移到单独的窗口 | 把图标拖出窗口 |
| 复制到新窗口 | 悬停时出现的 ⧉ 按钮 |
| 关闭工作区 | 右键 → 关闭。它的所有标签页都会随之关闭,固定的标签页也不例外;每个有未保存更改的标签页会先分别提示,取消则保留该工作区 |
终端会话
导轨上的每个工作区都拥有自己的终端会话。在导轨上切换会替换可见的终端标签;隐藏工作区的 Shell 会原封不动地继续运行——无论忙碌还是空闲,都不会有 cd 被输入其中——切换回来时会重新显示同样的 Shell,并且每个工作区会记住你上次所在的会话。新会话(+ 按钮、“在此处打开终端”、“在终端中运行”)会在当前工作区中创建,并从其根目录启动;关闭一个工作区或把它移到单独的窗口时,其会话也会随之关闭。详见终端指南。
已知限制
在 macOS 上,同一文件夹的两种仅大小写不同的写法(在不区分大小写的卷上可能出现)会被视为不同的工作区。这是有意为之:在 macOS 和 Linux 上,工作区的身份按字节精确比较;在 Windows 上则忽略大小写。