---
title: "文件与画布：在 Halo 里预览、编辑和管理工作区文件"
description: "在 Halo 右侧的工作区资源栏里管理文件，在画布中预览和编辑代码、Markdown、表格、图片和 PDF，并看懂新/改标记、快捷键和磁盘变更提示。"
type: "how-to"
audience: ["office"]
related: ["features/spaces", "features/office-documents", "features/code-review"]
lang: "zh-CN"
canonical: "https://hello-halo.cc/docs/features/files-and-canvas.html"
last_updated: "2026-10-19T00:11:17+08:00"
source: "Halo 3.0.4 docs"
---
# 文件与画布

在 Halo 右侧的工作区资源栏里管理文件，在画布中预览和编辑代码、Markdown、表格、图片和 PDF，并看懂新/改标记、快捷键和磁盘变更提示。

::: say
> 把 reports 文件夹里的三个 CSV 合并成一个表

Halo 会读这三个文件，把合并后的表格写进当前工作区的文件夹，并在回复里告诉你文件名。新文件出现在右侧 **文件** 列表里，点一下就能在画布中查看。

**前提**：无。
:::

## 打开工作区资源栏 {#resources-rail}

工作区资源栏在会话右侧，列出当前[工作区](https://hello-halo.cc/docs/features/spaces.html)里的文件、数字人、技能和 MCP 服务器。

1. 在会话顶栏点文件夹图标 **展开工作区资源**。资源栏从右侧展开；再点一次（**收起工作区资源**）或点栏上的 `›` 收起。
2. 在栏顶部切换四个标签页：

| 标签页 | 显示什么 | 点一下会怎样 |
|---|---|---|
| **文件** | 工作区文件夹的实时文件树 | 在画布中预览文件，见[文件列表](#files-tab) |
| **数字人** | 这个工作区里的数字人和状态（只读） | 打开它的页面；悬停时点 **聊天** 开始新对话。见[数字人概述](https://hello-halo.cc/docs/digital-humans/overview.html) |
| **技能** | 这里能用的技能，标 **此工作区** 或 **全局** | 在画布中打开技能说明；悬停时点 **去使用**，输入框里会填好 `/技能名`。见[技能](https://hello-halo.cc/docs/features/skills.html) |
| **MCP** | 在这个工作区生效的 MCP 服务器和范围 | 打开它在数字人页上的详情，这里不能管理。见 [MCP 服务器](https://hello-halo.cc/docs/features/mcp.html) |

资源栏的行为：

- 默认收起。AI 在你正看着的会话里用文件工具写入或修改文件时，它会自己展开。
- 展开还是收起，按工作区分别记住。
- 拖动资源栏的边缘调宽度，范围 200–400 px，默认 300 px，宽度会记住。
- 画布当前标签页自带文件列表（如 **变更**），或者画布会被挤到 480 px 以下时，资源栏会暂时让开，不改你的设置。画布全屏时它也会收起，退出全屏后恢复。

## 在文件列表里管理文件 {#files-tab}

**文件** 标签页显示工作区工作目录里的文件；Halo 工作区显示它的专用文件夹。文件在磁盘上变了，列表会自己更新，不用手动刷新。

| 想做的事 | 怎么做 |
|---|---|
| 预览文件 | 单击文件，它在右侧[画布](#canvas)中打开 |
| 用系统应用打开 | 双击文件，见[预览还是用系统应用打开](#open-externally) |
| 新建文件或文件夹 | 点工具栏右侧的 **新建文件** / **新建文件夹**；或右键一个文件夹选同名命令，建在它里面 |
| 改名 | 右键 › **重命名**，或选中后按 <kbd>F2</kbd> |
| 删除 | 右键 › **删除**，或选中后按 <kbd>Delete</kbd> / <kbd>Backspace</kbd>；可以多选。确认框 **移至回收站** 提示「您可以从回收站恢复此文件。」 |
| 移动 | 把一行拖到目标文件夹上 |
| 复制路径 | 右键 › **复制相对路径** |
| 在访达或资源管理器里找到它 | 右键 › **在文件夹中显示** （仅桌面版） |
| 打开整个工作区文件夹 | 点工具栏左侧的 **打开文件夹** （仅桌面版） |
| 交给 AI | 把文件从列表拖进输入框，会插入这个文件的引用 |
| 重新检查 | 点 **刷新文件树** |

- 删除的文件进入系统回收站（macOS 的废纸篓），可以还原。在网页版或手机上删除，也是进入运行 Halo 那台电脑的回收站。
- 起名时不能用 `\ / : * ? " < > |`，不能叫 `.` 或 `..`，也不能和已有文件重名。Windows 上还不能以点或空格结尾，不能用 `CON`、`PRN`、`AUX`、`NUL`、`COM1`–`COM9`、`LPT1`–`LPT9` 这类保留名。
- 不能把文件夹拖进它自己里面，会提示「无法将文件夹移动至其自身内部」。
- 空文件夹显示「无文件」。

### 新/改 标记 {#badges}

文件名后的小标记告诉你 AI 在当前会话里碰过哪些文件：

| 标记 | 含义 |
|---|---|
| **新** | AI 用文件工具整份写入了这个文件，通常是新建的 |
| **改** | AI 用文件工具改过这个文件 |

这两个标记只看**当前会话**里 AI 用文件工具做的改动，换一个会话就不同了。它们不是 Git 状态。AI 运行命令或脚本生成的文件不带标记，比如用文档技能做出的 Word、Excel、PPT；这些文件照样出现在列表里，只是没有标记，资源栏也不会因此自己展开。

### 隐藏和变暗的文件 {#hidden-files}

列表只隐藏版本控制文件夹：`.git`、`.hg`、`.svn`、`CVS`、`.bzr`。其他都显示，包括 `node_modules`、`build`、`dist`、以点开头的文件和 `.halo`。以点开头的文件和常见的依赖、构建文件夹会显示成浅色。

## 预览还是用系统应用打开 {#open-externally}

单击文件在画布中预览，双击用系统默认应用打开（文件列表的提示是「单击预览 · 双击用系统打开」）。

- 画布能预览的类型见[查看器](#viewers)。
- 画布不能预览的文件，单击也直接交给系统应用：压缩包、音视频、字体、可执行文件、数据库、磁盘映像，以及旧格式 `.doc`、`.ppt`、`.odt`、`.ods`、`.odp`。
- 已经在画布里打开的文件，点查看器工具栏上的 **在外部应用中打开**，用系统应用接着看或改。

**在外部应用中打开** 和双击打开只在桌面版里有 （仅桌面版）。网页版和手机上改为下载，见[网页版和手机上的区别](#remote)。

## 画布 {#canvas}

画布是会话右侧的标签页区域，用来看文件、网页、终端、团队、目标和变更。点文件列表里的文件、回复里的文件链接、技能，或打开浏览器、终端时，画布会打开。没有标签页时显示「未打开文件」。

### 标签页 {#tabs}

- 拖动标签页可以调整顺序。点 ×、鼠标中键或按 ⌘ W（macOS）/ Ctrl W（Windows、Linux） 关闭。
- 点 **+**（**新标签页 (⌘T)**）新开一个浏览器标签页，打开浏览器主页。
- 再次打开已经开着的文件，会直接切到它的标签页。
- 有未保存修改的标签页上有一个小圆点。
- 最多同时开 30 个标签页。超出时，最久没用的标签页会自动关闭，并提示「已关闭 2 个最久未使用的标签页」这样的消息。有未保存修改的标签页、当前标签页和终端不会被自动关闭。
- 每个工作区有自己的一组标签页。切换工作区时整组换掉，未保存的修改和运行中的终端都保留着，切回来还在。

右键标签页会弹出系统菜单 （仅桌面版），菜单项在中文界面里也是英文：**Close**（关闭）、**Close Others**（关闭其他）、**Close to the Right**（关闭右侧）、**Copy Path**（复制路径）、**Refresh**（刷新）。后两项只对文件标签页有。

### 收起、全屏和调整宽度 {#layout}

画布右上角有三个按钮：

| 按钮 | 作用 |
|---|---|
| **进入全屏** / **退出全屏** | 窗口最大化，隐藏会话、顶栏和资源栏；左侧有一个圆形按钮 **返回对话**，点它退出全屏 |
| **关闭画布（将清除所有标签页）** | 关掉画布和全部标签页 |
| **收起画布** | 收回到会话，标签页都保留；也可以按 <kbd>Esc</kbd>。边缘会留一个 **展开画布** 把手，上面显示标签页数量 |

画布开着时，可以拖动会话和画布之间的分隔线调会话栏宽度，范围 320–800 px，默认 420 px，按工作区记住。

::: warning
关闭标签页、按 ⌘ ⇧ W（macOS）/ Ctrl Shift W（Windows、Linux） 关闭全部，或点 **关闭画布（将清除所有标签页）** 时，Halo **不会提醒**你有没保存的修改，修改直接丢失。只有目标标签页会先问你；单独关闭 AI 用过的终端标签时也会先问你。关之前先保存。
:::

## 快捷键 {#shortcuts}

| 快捷键 | 作用 | 什么时候有效 |
|---|---|---|
| ⌘ T（macOS）/ Ctrl T（Windows、Linux） | 新开一个浏览器标签页 | 会话页面里随时可用，画布关着也行 |
| ⌘ W（macOS）/ Ctrl W（Windows、Linux） | 关闭当前标签页 | 画布开着时 |
| ⌘ ⇧ W（macOS）/ Ctrl Shift W（Windows、Linux） | 关闭全部标签页 | 画布开着时 |
| ⌃ Tab（macOS）/ Ctrl Tab（Windows、Linux） / 加 <kbd>Shift</kbd> | 下一个 / 上一个标签页 | 画布开着时 |
| ⌘ 1–9（macOS）/ Ctrl 1–9（Windows、Linux） | 跳到第 1–9 个标签页 | 画布开着时 |
| <kbd>Esc</kbd> | 收起画布，回到会话 | 画布开着、没有在编辑文件时 |
| ⌘ S（macOS）/ Ctrl S（Windows、Linux） | 保存正在编辑的文件 | 编辑文件时 |
| <kbd>Esc</kbd> | 取消编辑，放弃这次的修改 | 编辑文件时 |

全应用的快捷键见[命令与快捷键](https://hello-halo.cc/docs/features/commands.html)。

## 查看器 {#viewers}

画布按文件扩展名选查看器；扩展名不认识时，看内容是文字还是二进制，文字用文本查看器打开，二进制交给系统应用。

| 文件 | 画布里能做什么 | 能编辑吗 |
|---|---|---|
| 代码、文本、JSON | 语法高亮、行号、折叠、查找；**复制代码**；**在外部应用中打开** | 能。点 **编辑文件** 开始编辑 |
| Markdown | **预览** / **来源** 切换；**复制** | 能。点 **编辑** 进入编辑器 |
| HTML | 安全隔离的 **预览** / 源码；**浏览器模式** 在内置浏览器标签页里完整渲染（桌面版）；**在外部浏览器中打开** | 不能 |
| 图片（png、jpg、jpeg、gif、webp、svg、ico、bmp） | **放大** / **缩小**（10 %–500 %）、滚轮缩放、拖动平移、**适应窗口**、**重置**、**下载** | 不能 |
| CSV（`.csv`） | **表格视图** / **源码视图**；**复制** | 不能 |
| Excel（`.xlsx`、`.xls`） | 表格，底部切换工作表；每个工作表最多显示 20,000 行 × 256 列 | 不能 |
| Word（`.docx`） | 按页面显示 | 不能 |
| PDF | 桌面版用内置的 PDF 阅读器；网页版和手机上有翻页、25 %–400 % 缩放和 **适应宽度** | 不能 |
| PowerPoint（`.pptx`） | 不渲染，显示「暂不支持预览演示文稿」 | 不能。用系统应用打开或下载 |

Office 文档和 PDF 的细节见 [Office 文档](https://hello-halo.cc/docs/features/office-documents.html#preview)。

画布里还有几种不是文件的标签页：

| 标签页 | 详见 |
|---|---|
| 浏览器 | [AI 浏览器](https://hello-halo.cc/docs/features/ai-browser.html) |
| 终端 | [AI 终端](https://hello-halo.cc/docs/features/ai-terminal.html) |
| 团队 | [数字人团队](https://hello-halo.cc/docs/digital-humans/collaboration.html) |
| 目标 | [给会话设定目标](https://hello-halo.cc/docs/features/conversations.html#goal) |
| 变更 | [变更、代码评审与 Git](https://hello-halo.cc/docs/features/code-review.html) |

预览大小上限：

| 类型 | 上限 |
|---|---|
| 文本类文件 | 10 MB |
| `.xlsx`、`.xls`、`.docx`、`.pptx`、`.pdf` | 25 MB |
| 图片和其他二进制文件 | 50 MB |

HTML 预览在隔离环境里运行，不能把数据发到外部网站。桌面版里，工作区内的 HTML 可以加载同一文件夹里的相对路径文件（以点开头的文件除外）和 https 上的脚本、样式；工作区外的文件、主目录或磁盘根目录下的文件，以及网页版和手机上，用更严格的预览，只能显示相对路径的图片。

## 编辑并保存文件 {#edit-a-file}

代码、文本、JSON 和 Markdown 可以直接在画布里改。只有对应磁盘上真实文件的标签页能编辑。

1. 在文件列表里单击文件，它在画布中打开。
2. 点 **编辑文件**（Markdown 点 **编辑**）。工具栏显示 **编辑中**。
3. 修改内容。标签页上出现小圆点，表示有未保存的修改。
4. 点 **保存 (⌘S)**，或按 ⌘ S（macOS）/ Ctrl S（Windows、Linux）。小圆点消失，文件写回磁盘。

不想要这次的修改，点 **取消 (Esc)** 或按 <kbd>Esc</kbd>，修改会直接丢弃，不会再问。

关闭带小圆点的标签页时，Halo 不会提醒你保存，没保存的修改直接丢失，见[收起、全屏和调整宽度](#layout)下的提醒。

已保存文件里的几行也可以选中后引用到输入框，让 AI 针对这几行处理，见[引用回复里的片段](https://hello-halo.cc/docs/features/conversations.html#references)。

::: done
标签页上的小圆点消失，就说明保存好了。在系统应用里打开这个文件，能看到你改的内容。
:::

## 文件在磁盘上变了 {#disk-changes}

AI 或别的程序改了一个已在画布里打开的文件时：

- 标签页**没有**未保存修改：内容自动重新载入，不需要你操作。
- 标签页**有**未保存修改：顶部出现「在您编辑此文件期间，磁盘上的文件已被更改。」，二选一：
  - **加载磁盘版本**：放弃你的修改，换成磁盘上的新内容。
  - **保留我的编辑**：继续用你的版本；之后保存会覆盖磁盘上的内容。

文件列表和画布的更新通常在 0.5 秒内到达，最慢 2 秒。

## 回复里的文件链接 {#file-links}

AI 回复里提到的文件可以直接点开：

- 写在行内代码里的文件路径，或写出名字的 Markdown 文件，只要工作区里真有这个文件，就会变成链接。点它，文件在画布中打开。
- 写成 `path:line` 的形式（如 `src/app.ts:42`），会打开文件并跳到那一行。
- 回复里的表格，鼠标移上去右上角会出现 **在画布中打开** 按钮。点它，表格作为「表格」标签页在画布里打开，宽表格更好看。

AI 用文件工具写入或修改了文件时，这条回复下方会显示「修改了 3 个文件」、增删行数和 **查看变更**。点 **查看变更**，在画布里打开这条回复的只读变更视图，不需要 Git。只统计 AI 用文件工具做的改动，运行命令或脚本改的文件不算在内。详见[回复下的查看变更](https://hello-halo.cc/docs/features/code-review.html#reply-changes)。

## 网页版和手机上的区别 {#remote}

通过[远程访问](https://hello-halo.cc/docs/features/remote-access.html)在浏览器里用 Halo，或者[在手机上用 Halo](https://hello-halo.cc/docs/features/mobile.html) 时，文件操作作用在运行 Halo 的那台电脑上，但有这些不同：

| 功能 | 网页版和手机上 |
|---|---|
| **在文件夹中显示**、**打开文件夹** | 没有；工具栏左侧改为提示「请在客户端中打开文件夹」 |
| **在外部应用中打开**、双击用系统打开 | 没有；画布不能预览的文件，单击会下载（「点击下载文件」） |
| Office 文档和 PDF | 文件列表里始终带一个 **下载** 按钮 |
| 标签页右键菜单 | 没有 |
| PDF | 用内置的翻页阅读器 |
| HTML 预览 | 只用更严格的隔离预览 |
| 浏览器标签页 | 显示「浏览器功能仅在桌面客户端中可用」 |
| 新建、改名、移动、删除、保存 | 都能用，删除的文件进入那台电脑的回收站 |

屏幕窄于 640 px 时（手机都是这样），资源栏不在右侧常驻：点屏幕右边缘的小标签，它从右侧滑出，点 × 关闭。画布会铺满整个屏幕，点 **返回对话** 回到会话。

## 遇到问题 {#troubleshooting}

### AI 做好的文件没有「新」标记

这个文件多半是 AI 运行脚本生成的（比如 Office 文档），不是用文件工具写入的，所以没有标记，资源栏也不会自己展开。文件本身在列表里，按回复里的文件名找即可。见[新/改 标记](#badges)。

### node_modules 之类的文件夹里的改动没有自动出现

`.halo`、版本控制文件夹和 `node_modules`、`.next`、`.cache`、`__pycache__` 等依赖或缓存文件夹不做实时监听。点 **刷新文件树**，或切回 Halo 窗口，它们就会更新。工作区文件夹如果是磁盘根目录（如 `/` 或 `C:\`），整个列表都不会自动更新，建议把工作区指向一个具体的项目文件夹，见[更换工作目录](https://hello-halo.cc/docs/features/spaces.html#working-directory)。

### 关掉标签页后，改的内容没了

关闭标签页或画布时 Halo 不会提醒未保存的修改。下次关之前先按 ⌘ S（macOS）/ Ctrl S（Windows、Linux） 保存，留意标签页上的小圆点。

### 标签页自己关掉了

同时开着的标签页超过了 30 个，Halo 关掉了最久没用的几个，并显示「已关闭 … 个最久未使用的标签页」。重新打开文件即可。

### 资源栏不见了

当前画布标签页是 **变更** 这类自带文件列表的标签页，或者窗口太窄、画布不到 480 px 时，资源栏会暂时让开。切到别的标签页、收起画布或把窗口拉宽，它就回来。全屏时它也会收起。

### 画布显示「文件较大，正在加载...」或「无法加载查看器。请重新打开文件重试。」

前一条说明文件较大，等一会儿即可。后一条说明查看器出错，关掉标签页再从文件列表打开一次。文件超过[预览大小上限](#viewers)时不会预览，双击用系统应用打开。

## 下一步 {#next-steps}

- [Office 文档](https://hello-halo.cc/docs/features/office-documents.html)：让 Halo 做 Word、Excel、PPT，并在画布里查看。
- [变更、代码评审与 Git](https://hello-halo.cc/docs/features/code-review.html)：逐行看 AI 改了什么，暂存和提交。
- [工作区](https://hello-halo.cc/docs/features/spaces.html)：换工作目录、新建工作区，决定文件列表显示哪个文件夹。
