什么是 fresh-editor?
fresh-editor 是 Fresh 这款终端 IDE 与文本编辑器的软件包,作者 Noam Lewis,使用 Rust 编写。它把你对 IDE 的期待带进终端:语言服务器支持、语法高亮、多光标,以及一个运行 TypeScript 的插件系统,同时依然容易上手。超大文件也能立即打开;编辑会话由后台守护进程保持,可以用 fresh -a 重新连接;用 fresh --web 甚至可以把编辑器提供给网页浏览器。软件包名为 fresh-editor,你输入的命令是 fresh。
⚡ fresh-editor 的主要特性
🧠 语言服务器支持
Fresh 支持 Language Server Protocol,诊断、补全、跳转到定义和悬停信息都来自其他编辑器同样使用的服务器,例如 rust-analyzer、gopls 或 clangd。
🎨 语法高亮
代码一打开就有高亮,就在你平时用的终端里,第一个文件显示正确之前不需要额外的配置步骤。
✏️ 多光标
同时在多个位置放置光标并一起输入,是在代码块中重命名变量、或批量改写一列相似行的快捷方式。
🧩 TypeScript 插件
Fresh 内置用于插件的 TypeScript 运行时:扩展编辑器就是针对其插件 API 编写 TypeScript,而不必学习一门专有的配置语言。
🔌 不会丢失的会话
会话守护进程在终端关闭或 SSH 连接断开时仍保留编辑器及其打开的文件,fresh -a 即可重新连接。
🌐 终端或浏览器
fresh --web 把同一个编辑器提供给网页浏览器,适合那些用浏览器比用终端更容易访问的机器。
apt upgrade 就能让你保持最新。
📦 从 deb.griffo.io 安装
第 1 步:添加仓库
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 有一个永久免费的镜像。 deb-free.griffo.io 永久免费提供软件包 — 无需账号、无需订阅,最多落后上游 2 个月,安全修复立即发布。目前收录 cliamp、Ghostty、lazydocker、Oh My Posh、Uncloud 和 Zed;fresh-editor 不在其中,因此今天只能通过上面的仓库安装 — 提出请求即可将其加入。
🧩 关于 extrepo 选项。 extrepo 是 Debian 官方用于管理第三方仓库的工具:它会替你写好 sources 文件并安装签名密钥,并在使用前先对照签名元数据校验该密钥。本仓库以 griffo 之名登记其中,永久免费镜像则为 griffo-free,因此在 Debian(bookworm、trixie、forky、sid)上,上面的命令就是全部配置。
extrepo 只负责 sources 文件和密钥,订阅凭据仍然要写入 /etc/apt/auth.conf.d/deb.griffo.io.conf。Ubuntu 不在覆盖范围内,因为 extrepo 只发布 Debian 各套件的元数据:在 Ubuntu 上请使用 sudo 或 root 的命令。
第 2 步:安装 fresh-editor
# 安装最新版 fresh-editor
sudo apt install fresh-editor
# 验证安装,命令是 fresh,不是 fresh-editor
fresh --version# 安装最新版 fresh-editor
apt install fresh-editor
# 验证安装,命令是 fresh,不是 fresh-editor
fresh --version步骤 3:打开第一个文件
# 命令是 fresh。打开一个文件开始编辑
fresh README.md
# 按编译器和 grep 输出的 file:line:col 格式,直接跳到指定行和列
fresh src/main.rs:42:7
# man 手册页和完整的选项列表随软件包一起提供
man fresh
fresh --help🎯 基本用法示例
打开文件:
# 在编译错误或 grep 结果指向的位置打开文件
fresh src/lib.rs:120:5
# 超大文件无需久等即可打开,数 GB 的日志也一样
fresh /var/log/big-application.log比终端活得更久的会话:
# 重新连接到正在运行的编辑器会话及其打开的文件,
# 适用于关闭终端之后或 SSH 连接断开时
fresh -a
# 从新的 SSH 登录同样可以这样做
ssh devbox
fresh -a在网页浏览器中编辑:
# 把 Fresh 提供给网页浏览器,而不是在当前终端中绘制
fresh --web语言服务器:
# 先为你的语言安装语言服务器,再打开该语言的文件
sudo apt install clangd
fresh src/main.c
# rust-analyzer 可通过 rustup 安装
rustup component add rust-analyzer
fresh src/main.rs:1:1# 先为你的语言安装语言服务器,再打开该语言的文件
apt install clangd
fresh src/main.c
# rust-analyzer 可通过 rustup 安装
rustup component add rust-analyzer
fresh src/main.rs:1:1🔧 工具集成
Fresh 可以直接融入现有的终端工作流:
- Git:
git config --global core.editor fresh让提交信息和交互式 rebase 在 Fresh 中打开 - Shell: 在
~/.bashrc中写入export EDITOR=fresh,crontab -e、sudoedit等都会使用它 - 编译器和 grep: 它们输出的
file:line:col会直接在报告的位置打开 - 桌面: 软件包会安装桌面项和图标,因此 Fresh 会出现在应用程序菜单中
- SSH 和 tmux: 会话守护进程在远程端保持你的工作不中断,
fresh -a即可接着继续
🚀 为什么选择 deb.griffo.io?
- 官方 Debian: 未打包:从 Bookworm 到 Sid,任何 Debian 版本都没有 Fresh
- 上游 .deb: 下载当天是最新的,但上游只在 GitHub releases 中发布独立的 .deb 文件,没有 apt 仓库,所以
apt upgrade永远看不到新版本,每次发布都要再手动下载一次 - 用 cargo 构建: 需要 Rust 工具链,每次升级都要完整编译,而且没有桌面项、图标和 man 手册页
- deb.griffo.io:最新版本,自动更新
- ✅ 软件包 fresh-editor,命令 fresh:
sudo apt install fresh-editor,然后运行fresh;fresh-editor 是上游自己的软件包名,上游的 .deb、AUR、Homebrew 和 winget 都用这个名字,因此已安装上游 .deb 的机器从下一个版本起就能原地升级 - ✅ 上游版本通过 apt 更新: 上游提供 .deb 文件但没有仓库;这里每个版本都会进入 GPG 签名的 apt 仓库,并为每个 Debian 和 Ubuntu 版本分别构建
- ✅ 自动更新:上游发布后数小时内更新软件包
- ✅ 完整软件包:
fresh二进制文件、用于应用程序菜单的桌面项和图标,以及fresh(1)man 手册页 - ✅ 两种架构: amd64 和 arm64,笔记本、服务器和 64 位 ARM 开发板都能用上同一个 Fresh
- ✅ 多发行版:支持 Bookworm、Trixie、Forky 和 Sid
- ✅ 易于维护:使用标准 apt 命令即可更新
📦 软件包构建仓库
Debian 软件包在这个 GitHub 仓库中自动构建和维护:
- 🍃 fresh-debian - 最新版本构建
🔗 相关软件包
deb.griffo.io 同样提供:
- Helix - 内置语言服务器支持的模态终端编辑器
- Neovim - 高度可扩展的 Vim 系编辑器
- Zed - 离开终端时使用的图形化代码编辑器
- lazygit - 终端 git 界面,终端编辑器的天然搭档
apt upgrade 让它保持最新的用户。