更新于
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. 适用人群
- 开发者: 需要在 SSH 远程服务器上进行复杂代码编辑,但不想背 Vim 快捷键。
- 运维人员: 经常需要查看几 GB 级别的巨大日志文件。
- 初学者: 想要一个比 Nano 强大、比 Vim 友好的 Linux 终端工具。
它代表了新一代 TUI 工具的方向:性能像命令行工具一样强悍,体验像图形软件一样自然。