更新于

Fresh——用 Rust 编写的新一代终端编辑器


Fresh——用 Rust 编写的新一代终端编辑器

Fresh 是一款由 Rust 编写的现代化、全功能终端文本编辑器(TUI),它的设计初衷是为终端带来类似 VS Code 或 Sublime Text 的交互体验。对于那些觉得 Vim/Emacs 学习曲线太陡,又觉得 Nano 功能太弱的用户来说,Fresh 提供了一个”零配置、上手即用”的中间地带。

1. 核心设计理念

零学习成本: 放弃了传统的”模式编辑”(Modal Editing,如 Vim 的命令模式),采用与现代桌面编辑器一致的快捷键,如 Ctrl+S 保存、Ctrl+C/V 复制粘贴。

极致性能: 凭借 Rust 的优势,它能瞬间打开数 GB 大小的日志文件,且内存占用极低(2GB 文件通常仅需几十 MB 内存)。

开箱即用: 默认集成了文件树、命令面板和 LSP 支持,无需像配置 Neovim 那样编写复杂的初始化脚本。

2. 关键特性

极致的性能表现

Fresh 使用了 Persistent Piece Tree 数据结构和 延迟加载(Lazy Loading) 技术。这意味着它在打开超大文件时不会一次性读入内存,而是只加载屏幕显示的部分,从而实现”秒开”大文件。

现代 IDE 功能

  • LSP (Language Server Protocol) 支持: 原生支持代码补齐、转到定义、悬停显示文档和错误诊断。
  • 多光标编辑: 支持像 Sublime 那样同时选中并编辑多个位置。
  • 内置命令面板: 通过 Ctrl+P 快速查找文件或执行命令。
  • 内置终端: 可以在编辑器内部直接打开一个功能完备的终端。

全面的鼠标支持

在传统的终端编辑器中,鼠标往往是摆设。Fresh 完整支持鼠标点击定位、拖拽选中、滚轮缩放以及菜单操作,体验非常接近 GUI 软件。

插件与扩展性

Fresh 的插件系统基于 TypeScript(运行在沙盒化的 Deno/QuickJS 环境中)。这意味着开发者可以用前端开发者熟悉的语言来扩展编辑器功能,而无需学习复杂的底层 API。

3. 安装方式

# Node.js 临时体验
npx @fresh-editor/fresh-editor

# Rust (Cargo)
cargo install fresh-editor

# Arch Linux (AUR)
yay -S fresh-editor-bin

# 安装脚本(推荐)
curl https://raw.githubusercontent.com/sinelaw/fresh/refs/heads/master/scripts/install.sh | sh

4. 常用快捷键

动作快捷键
保存文件Ctrl + S
快速搜寻文件Ctrl + P
侧边栏文件树Ctrl + E
查找/替换Ctrl + F
撤销/重做Ctrl + Z / Ctrl + Y
多行缩进Tab / Shift + Tab

5. 适用人群

  1. 开发者: 需要在 SSH 远程服务器上进行复杂代码编辑,但不想背 Vim 快捷键。
  2. 运维人员: 经常需要查看几 GB 级别的巨大日志文件。
  3. 初学者: 想要一个比 Nano 强大、比 Vim 友好的 Linux 终端工具。

它代表了新一代 TUI 工具的方向:性能像命令行工具一样强悍,体验像图形软件一样自然。