代码编辑器 — Liu Terminal

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

与你的代理同处一个窗口的语法高亮编辑器。可以在 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 查看器 →

文档

开始使用

指南

参考

其他语言

English · Türkçe · 한국어 · Español · Deutsch · Italiano · Français · 日本語 · العربية