# 代码编辑器 — Liu Terminal

> Liu Terminal 代码编辑器。终端窗口内的语法高亮编辑器：资源管理器栏、覆盖 400 多种文件类型的 54 个词法分析器、查找与替换、识别语言的状态栏和 git diff 停靠面板。

URL: https://liu.software/zh/docs/code-editor/  
Language: zh  
Updated: 2026-10-17

与你的代理同处一个窗口的语法高亮编辑器。可以在 Shell 旁的侧边栏打开，也可以给它整个标签页：左侧资源管理器栏，右侧文档，查找与替换，以及识别语言的状态栏 —— 无需离开终端。

## 打开

在文件浏览器中点击任意代码或文本文件，它会在查看面板中直接以编辑模式打开 —— 没有单独的"编辑"步骤。Markdown 是例外：它以渲染视图打开，标题栏有 Read / Edit 切换。

⌘ K → Code Editor 把整个标签页交给编辑器，而不是侧边栏的窄条。标签页在活动终端的工作目录打开；如果侧边栏查看器已经打开了一个文档，该文档会一起带过去，侧边栏中的副本关闭，同一文件不会在两处打开。

## 标签页布局

打开文档后，标签页会像一个小型 IDE 一样布局：文件列表停靠为左侧窄窄的资源管理器栏，文档占据窗口其余部分。栏中每一行都带有文件类型图标，标签栏中的标签胶囊也以同样的图标开头，紧挨着文件名。未保存的更改显示为文件名后的琥珀色圆点。

点击栏中的另一个文件即可切换文档。在文本中点击以放置光标；长行可以水平滚动，当光标离开可见列时视图会跟随它。

## 语法高亮

Liu 只有一个高亮器，三个界面共用它：编辑器、git diff 停靠面板和 Markdown 阅读器中的围栏代码块。它由表驱动 —— 每种语言一行，保存其关键字表、注释标记和行为标志 —— 400 多个文件扩展名和文件名的表背后是 54 个词法分析器，因此编辑器中的 "main.rs" 与笔记中的 \`\`\`rs 围栏永远不会不一致。

- **嵌入区域。** Vue、Svelte、Astro、HTML、Jinja 和 ERB 文件是标记宿主：其中的 \<script\> 由 JavaScript 行分析，\<style\> 由 CSS 行分析 —— 与分析 .js 或 .css 文件的是同一段代码，而不是"从标签看到的 JS"变体。Astro frontmatter、{{ }} / {% %} 模板标签和 \<% %\> 遵循同样的规则。
- **跨行结构。** 块注释（包括嵌套的）、三引号字符串和模板字面量会将状态逐行传递，因此第 10 行开始的注释到第 40 行仍然是注释。
- **Diff。** .patch 文件或 \`\`\`diff 围栏是唯一允许使用绿色和红色的语言：新增和删除的行就是这一行的含义。

## 查找与替换

查找条浮在文档右上角，边输入边搜索：每个匹配都会着色，当前匹配颜色更深，计数器显示 "2 of 7"。它打开时，它的按键优先于编辑器。

- `⌘ F` 打开查找
- `⌘ ⇧ F / ⌘ ⌥ F` 打开查找与替换
- `Enter / ⌘ G` 下一个匹配
- `⇧ Enter / ⌘ ⇧ G` 上一个匹配
- `Tab` 在查找和替换字段间切换
- `Enter` 在替换字段中：替换当前匹配并移到下一个
- `⌘ Enter` 全部替换
- `Esc` 关闭工具条；光标停留在当前匹配处

## 编辑按键

按 macOS 显示；Linux 将 ⌘ 映射为 Ctrl，⌥ 映射为 Alt。行命令作用于光标所在的行。

- `⌘ S` 保存
- `⌘ Z / ⌘ ⇧ Z` 撤销 / 重做
- `⌘ V` 在光标处粘贴
- `⌘ D` 复制当前行
- `⌘ C / ⌘ X` 复制 / 剪切当前行
- `⌘ ⌫` 删除到行首
- `⌘ ← / ⌘ →` 行首 / 行尾
- `⌘ ↑ / ⌘ ↓` 文档开头 / 结尾
- `⌥ ← / ⌥ →` 按单词移动
- `⌥ ⌫ / ⌥ ⌦` 删除光标前 / 后的单词
- `Tab` 插入四个空格
- `PgUp / PgDn` 移动二十行

## 状态栏

左端显示光标位置 —— Ln 42, Col 17 —— 右端显示语言、换行符和编码：C · LF · UTF-8。语言标签来自选择词法分析器的同一张表，因此 ".ts" 显示为 "TypeScript"，尽管高亮它的是 JavaScript 行；表中不认识的扩展名以大写显示，无扩展名的文件显示 "Text"。换行符从文件中测得（CRLF 多于 LF 时以 CRLF 为准）。⌘ S 先写入临时文件再重命名到位，因此保存中途崩溃也不会留下写了一半的文件。

## Git 更改

当活动标签页位于仓库内时，状态栏的 git 段会显示仓库、分支和 +N −M 徽标。点击它 —— 或运行 ⌘ K → Toggle Git Changes —— 工作树的完整 diff 就会停靠在右侧。它就是 diff，别无其他：两列行号栏、每行整行着色、每个文件一个卡片标题（其行滚动时固定在顶部），以及长行的水平滚动 —— 因为 diff 绝不能换行。git 调用在工作线程上运行，大仓库的冷 diff 从不卡住一帧。

[下一步 Markdown 查看器 →](https://liu.software/zh/docs/markdown.md)
