> ## Documentation Index
> Fetch the complete documentation index at: https://vibex.peatboy.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 代码工作台

> 浏览、搜索、编辑和预览工作区文件。

代码工作台把文件树、搜索、编辑器、Git 差异和内容预览放在同一个窗口。所有文件操作都以当前工作区为边界。

## 文件树和搜索

从右侧栏的 **文件** 图标打开文件树：

1. 展开工作区目录，或用文件名直接输入定位（type-ahead）。
2. 使用 **搜索工作区文件** 按内容搜索，可以切换 **区分大小写**、**匹配整个词** 和正则模式。
3. 点击文件在预览标签中打开；多个标签可以并列或分栏显示。

文件树的右键菜单提供 **新建文件**、**新建文件夹**、**剪切**、**复制**、**粘贴**、**复制相对位置**、**复制绝对位置**、**复制文件名**、**重命名**、**删除**，以及 **Open In** 子菜单（**编辑器** / **默认应用** / **终端** / **本机终端** / **文件管理器**）。文件也支持拖放移动。

搜索不会自动修改文件。大型文件、不可解码内容和工作区外路径会被文件服务拒绝。

## 编辑和保存

* 在编辑器中直接修改文本。
* 用 **保存文件** 保存当前文件（`cmd-s`）。
* 默认开启自动保存：停止输入一段时间（默认 1000 毫秒）后写回，编辑器或窗口失去焦点时也会写回；在 **设置 → 工作台** 里可以改成 **手动**（只用 `cmd-s`）或 **失焦保存**，并调整空闲延迟。
* 工具栏可以切换 **soft wrap** 和 **whitespace** 显示。
* 状态栏显示 `Ln N, Col N`、总行数、语言、编码（`UTF-8` / `UTF-8 BOM` / `Binary`）、行尾（`LF` / `CRLF` / `Mixed EOL`）和文件大小。
* 标题栏状态显示 **已修改**（有未保存改动）、**正在保存** 或 **已保存**。

<Note>
  编辑器**没有** Save As：保存始终写回原路径。也没有文件内查找栏——`cmd-f` 打开的是 **在当前会话中查找**。
</Note>

### 大文件与只读

以下情况文件会以只读方式打开，并在标题栏标记 **大文件 - 只读** 或 **二进制文件 - 只读**：

* 大于 8 MiB
* 超过 5 万行
* 内容被截断
* 被识别为二进制

## 编辑器保护与恢复

每个编辑缓冲区同时记录已保存内容、外部 revision 和本地 revision。保存请求使用乐观并发控制：如果磁盘上的内容已经变化，保存会失败并返回 `file_external_revision_changed`，而不是静默覆盖。

有未保存改动的标签在关闭时会提示 **Save or discard the dirty editor before closing it**；自动保存开启时，待写回的改动会先落盘再关闭，不再打断你；切换工作区时同样会拦截。

权威运行时重启后，Vibex 会恢复未保存的缓冲区，它们仍然标记为 **已修改**，仍需你主动保存，不会自动覆盖磁盘文件。文件在磁盘上已被删除时，标题栏状态显示 **已删除 - 恢复缓冲区**。

<Warning>
  删除文件会改变工作区内容。删除前查看 Git 状态，必要时先复制内容或创建提交。
</Warning>

## 内容预览

| 类型       | 扩展名                                   | 能做什么                                             |
| -------- | ------------------------------------- | ------------------------------------------------ |
| Markdown | `md` `mdx` `markdown`                 | 渲染视图，支持代码块、表格、任务列表、脚注、公式和图表（Mermaid / PlantUML）。 |
| 图片       | `png` `jpg` `jpeg` `gif` `webp` `svg` | 预览图片。                                            |
| PDF      | `pdf`                                 | 原生 PDF 预览，支持 **Fit width**、50%–200% 缩放和页码跳转。     |
| Office   | `docx` `xlsx` `ods` `pptx`            | 只读内容预览。                                          |
| 音视频      | `mp4` `mp3` `wav` 等                   | **不在应用内播放**，交给系统默认应用。                            |
| 其他       | 其余文本格式                                | 以编辑器打开。                                          |

Markdown 预览提供 **Contents** 大纲、**Copy document text**、逐块 **Copy code** / **Copy diff**、图表源码查看和全屏。工作区相对链接在预览内打开，外部链接交给系统浏览器。

Office 预览是**只读的提取视图**，不是版面还原：

* `docx` —— 标题与段落。
* `xlsx` / `ods` —— **仅第一个工作表**，最多 80 行 × 20 列。
* `pptx` —— 幻灯片文字，最多 200 页。

PDF 预览同样只读，不支持搜索、批注和表单。

### 无法预览的格式

| 格式                     | 现象                                             |
| ---------------------- | ---------------------------------------------- |
| `.bmp`                 | 显示 **不支持的文件**。                                 |
| `doc` `xls` `ppt`      | 报 `office_legacy_format_unsupported`，请先转换为新格式。 |
| `odt` `odp`            | 没有处理程序。                                        |
| `.html`                | 以带高亮的源文本打开，**不会渲染页面**。                         |
| `.json` `.yaml` `.csv` | 以源文本打开，不做格式化或表格化。                              |
| `.ipynb`               | 当作 JSON 文本打开，不是 Notebook。                      |

<Info>
  语法高亮覆盖 Rust、TypeScript/TSX、JavaScript、JSON、Markdown、TOML、YAML、Python、Go、Java、CSS、HTML 和 Shell。其它语言以纯文本显示。
</Info>

## 图片编辑

图片编辑器用于**在发送前标注附件图片**，不是工作区图片文件的通用编辑器。在输入框的附件区点击 **编辑图片** 进入。

可用工具：**裁剪**、**笔画**、**文字**、**矩形框**、**圆形框**、**箭头**、**马赛克**，以及 **撤销编辑** / **重做编辑**。支持 25%–400% 缩放和拖拽平移。

* macOS：`cmd-z` 撤销，`cmd-shift-z` 重做。
* Windows/Linux：`ctrl-z` 撤销，`ctrl-shift-z` 重做。

保存时会重新编码为 **PNG**，不支持选择其它格式，也没有旋转、缩放、翻转或图层。

## 预览标签和分栏

拖动标签或使用标签菜单中的 **向右拆分** / **向下拆分** 把视图分栏，分栏边界可以拖动调整。代码、差异、终端和文档都可以放在同一窗口里。

预览面板标题栏的 **弹出为独立窗口** 按钮把整个多标签面板弹出为独立窗口，**嵌入主窗口** 把它收回工作台。面板实体始终没有易主，所以打开的标签、编辑缓冲区和终端都会跟着走，同一时间只存在一个面板；关闭独立窗口会把面板交还工作台列，关闭面板则会关掉它的窗口。独立窗口沿用外壳同一套编辑器操作，`cmd-s` 保存和跳转到行都仍然可用。

全屏把工作台列交给预览面板，侧栏和右侧栏保留各自的位置、宽度和活动栏，右侧栏也保留拖拽调整宽度的手柄。

在 **设置 → 工作台** 的 **预览窗口** 里选择面板默认打开的位置：**内嵌**（默认，内嵌在工作台列）或 **独立窗口**；标题栏的弹出和停靠按钮会写入同一项设置。

关闭标签不会删除文件或终端，只关闭当前视图。

## 标签操作

* 悬停在文件或差异标签上可查看完整路径。
* 标签右键菜单：**关闭标签**、**关闭其他标签**、**关闭左侧标签**、**关闭右侧标签**、**关闭所有标签**、**向右拆分**、**向下拆分**、**固定标签** / **取消固定标签**、**定位文件**、**Open In**。
* 固定标签必须先取消固定才能关闭。关闭其它标签时，固定标签和未保存的标签会保留。
* `cmd-w` 关闭当前预览标签；`cmd-tab` / `cmd-shift-tab` 和 `cmd-pageup` / `cmd-pagedown` 循环切换标签。终端标签不使用这些快捷键。

完整快捷键列表见[快捷键参考](/docs/reference/shortcuts)。
