fresh: 基于终端的IDE与文本编辑器:简单、强大且快速
摘要
Fresh 是一款现代、零配置的终端文本编辑器,具备IDE级别的功能和高性能,旨在易于使用和快速。
查看缓存全文
缓存时间: 2026/09/12 12:37
sinelaw/fresh
来源:https://github.com/sinelaw/fresh
Fresh
一款现代化、功能齐全的终端文本编辑器,无需任何配置。熟悉的快捷键、鼠标支持以及IDE级别的功能——无需学习即可上手。
官方网站 (https://sinelaw.github.io/fresh/) · 文档 (https://getfresh.dev/docs) · Discord (https://discord.gg/gqGh3K4uW3) · 贡献指南
快速安装: curl -fsSL https://raw.githubusercontent.com/sinelaw/fresh/refs/heads/master/scripts/install.sh | sh
Fresh 演示
Fresh 将 VS Code 和 Sublime Text 直观的用户体验带到了终端中。标准快捷键、完整的鼠标支持、菜单和命令面板——一切开箱即用,符合你的使用习惯。没有模式切换,无需记忆快捷键。
为真实世界性能而生:Fresh 能处理数 GB 大小的文件(https://noamlewis.com/blog/2025/12/09/how-fresh-loads-huge-files-fast),内存开销极小,并提供始终如一的低延迟输入,无论文件大小。
命令面板与模糊查找器
一个快捷键即可查找文件、运行命令、切换缓冲区并跳转到任意行。
命令面板
使用编排器进行多任务处理
在每个任务自己的工作树中启动,用方向键在任务间切换,让其他任务继续运行。
编排器
多光标编辑
同时选择和编辑多处相同内容——使用你在图形化编辑器中已熟悉的工作流。
多光标
主题与自定义
即时浏览和应用色彩主题。包含完整的设置界面和交互式快捷键编辑器。
选择主题
查看更多功能演示:编辑(搜索与替换、块选择、行排序……) · 效率(文件浏览器、分屏视图、集成终端……) · 主题
功能概览
| 类别 | 功能 |
|---|---|
| 文件管理 | 打开/保存/新建/关闭、文件浏览器、标签页、自动恢复、Git文件查找 |
| 编辑 | 撤销/重做、多光标、块选择、智能缩进、注释、剪贴板 |
| 搜索与替换 | 增量搜索、在选中范围内查找、查询替换、Git grep |
| 导航 | 跳转到行/括号、词移动、位置历史、书签、错误导航 |
| 视图与布局 | 分屏、行号、行内换行、背景、Markdown预览 |
| 语言服务器 (LSP) | 跳转到定义、引用、悬停、代码操作、重命名、诊断、自动补全 |
| 效率工具 | 命令面板、菜单栏、键盘宏、Git日志、诊断面板 |
| 多任务处理 (编排器) | 每个Git工作树一个工作区、每个工作区独立终端和长运行命令、可恢复会话的编码代理(Claude、Codex、Opencode、Aider)、停靠切换器、远程/SSH工作区 |
| 可扩展性 | TypeScript插件(沙箱化的QuickJS)、颜色高亮、TODO高亮、合并冲突、路径补全、键盘映射 |
| 国际化 | 多语言支持(参见 locales/)、插件翻译系统 |
安装
快速安装:
curl -fsSL https://raw.githubusercontent.com/sinelaw/fresh/refs/heads/master/scripts/install.sh | sh
在 Linux 上,这将安装通用构建版本:一个静态链接的二进制文件,可在所有发行版上运行,解压到 ~/.local 目录,归你所有。无需 root 权限,并且支持自动更新——fresh --cmd update,或编辑器内的更新提示。在 macOS 上则使用 Homebrew。
更喜欢使用发行版的包管理器?可以明确指定:
curl -fsSL .../install.sh | sh -s -- --method=deb # 也可选: rpm, aur, nix, cargo, npm, brew, appimage
完全支持包管理器安装——它们是可选的而非默认方式,因为安装需要 root 权限并将更新交给该包管理器处理。无论哪种方式,fresh 都会记录其安装方式,并通过相同机制进行更新。--method=auto 可恢复旧的自动检测行为,install.sh --help 则列出所有选项。
或者,选择你偏好的方式:
| 平台 | 方式 |
|---|---|
| Linux(任何发行版) | 通用构建版本 — 自动更新,无需 root |
| macOS | brew |
| Bazzite/Bluefin/Aurora Linux | brew |
| Windows | winget |
| Arch Linux | AUR |
| Debian/Ubuntu | .deb |
| Fedora/RHEL | .rpm,Terra (https://terra.fyralabs.com/) |
| OpenSUSE | .rpm |
| FreeBSD | ports / pkg (https://www.freshports.org/editors/fresh) |
| Gentoo | GURU |
| Linux(沙箱化/便携式) | AppImage、Flatpak |
| 所有平台 | 预构建二进制文件 |
| npm | npm / npx |
| Rust 用户(快速) | cargo-binstall |
| Rust 用户 | crates.io |
| Nix | Nix flakes |
| 开发者 | 从源码构建 |
通用构建版本 (Linux)
curl -fsSL https://raw.githubusercontent.com/sinelaw/fresh/refs/heads/master/scripts/install.sh | sh
一个独立的静态 (musl) 二进制文件,支持 x86_64 和 aarch64 架构,包含所有功能(含插件)。解压到 ~/.local/share/fresh-editor,并在 ~/.local/bin/fresh 创建符号链接;可通过设置 FRESH_INSTALL_DIR / FRESH_BIN_DIR 更改安装位置。请确保 ~/.local/bin 在你的 PATH 中。
由于没有其他程序占用这些文件,这是唯一能在 Linux 上自动替换自身的安装方式:fresh --cmd update 会下载下一版本,根据其发布的校验和及 GitHub 的发布证明进行验证,然后直接替换二进制文件。
该归档文件同样包含与 .deb 和 .rpm 安装包相同的桌面入口和图标主题,安装程序会将其复制到 $XDG_DATA_HOME(默认为 ~/.local/share),以便 Fresh 出现在你的应用程序菜单中。传递 --no-desktop-integration 或设置 FRESH_NO_DESKTOP=1 可跳过此步骤——通常在服务器或容器中使用时这是你想要的效果。安装目录外写入的所有文件都记录在 ~/.local/share/fresh-editor/installed-files.txt 中,因此重新运行安装程序会清理之前的安装,卸载只需删除该列表文件、安装目录和符号链接即可。
手动从发布页面 (https://github.com/sinelaw/fresh/releases) 下载归档文件也是同样的方式——它携带相同的安装收据,因此手动解压的副本也能自动更新。更新时只会替换二进制文件,桌面入口和图标通过重新运行安装程序而非 fresh --cmd update 来刷新。
Brew
在 macOS 和部分 Linux 发行版(Bazzite/Bluefin/Aurora)上:
注意: 在 macOS 上,请参阅 macOS 终端提示 (https://getfresh.dev/docs/configuration/keyboard#macos-terminal-tips) 获取推荐的终端配置。
brew install fresh-editor
Windows (winget)
winget install fresh-editor
或者,Windows 用户也可以使用 npm。
Arch Linux (AUR (https://aur.archlinux.org/packages/fresh-editor-bin))
二进制包(推荐,安装更快):
git clone https://aur.archlinux.org/fresh-editor-bin.git
cd fresh-editor-bin
makepkg --syncdeps --install
从源码构建:
git clone https://aur.archlinux.org/fresh-editor.git
cd fresh-editor
makepkg --syncdeps --install
使用 AUR 助手(如 yay 或 paru):
# 二进制包(推荐,安装更快)
yay -S fresh-editor-bin
# 或从源码构建
yay -S fresh-editor
Debian/Ubuntu (.deb)
下载并安装最新版本:
curl -sL $(curl -s https://api.github.com/repos/sinelaw/fresh/releases/latest | grep "browser_download_url.*_$(dpkg --print-architecture)\.deb" | cut -d '"' -f 4) -o fresh-editor.deb && sudo dpkg -i fresh-editor.deb
或从发布页面 (https://github.com/sinelaw/fresh/releases) 手动下载 .deb 文件。
Fedora/RHEL (.rpm)
下载并安装最新版本:
curl -sL $(curl -s https://api.github.com/repos/sinelaw/fresh/releases/latest | grep "browser_download_url.*\.$(uname -m)\.rpm" | cut -d '"' -f 4) -o fresh-editor.rpm && sudo rpm -U fresh-editor.rpm
或从发布页面 (https://github.com/sinelaw/fresh/releases) 手动下载 .rpm 文件。
OpenSUSE (.rpm)
目前 fresh 没有 openSUSE 官方仓库,请直接从发布版本安装 .rpm:
curl -sL $(curl -s https://api.github.com/repos/sinelaw/fresh/releases/latest | grep "browser_download_url.*\.$(uname -m)\.rpm" | cut -d '"' -f 4) -o fresh-editor.rpm && sudo zypper --no-gpg-checks install ./fresh-editor.rpm
或从发布页面 (https://github.com/sinelaw/fresh/releases) 手动下载 .rpm 文件。
Gentoo (GURU (https://wiki.gentoo.org/wiki/Project:GURU))
参照 Project:GURU/最终用户信息 (https://wiki.gentoo.org/wiki/Project:GURU/Information_for_End_Users) 启用仓库,然后安装软件包:
emerge --ask app-editors/fresh
AppImage
在大多数系统上,通用构建版本 是更好的选择:同样具有“随处运行“的特性,无 FUSE 依赖,且每次启动无挂载开销。
install.sh不再自动选择 AppImage——如果你明确需要,请传递--method=appimage。
从发布页面 (https://github.com/sinelaw/fresh/releases) 下载 .AppImage 文件并运行:
chmod +x fresh-editor-VERSION-x86_64.AppImage
./fresh-editor-VERSION-x86_64.AppImage
更快启动(推荐): 解压 AppImage 而非直接运行。这避免了每次启动的 FUSE 挂载开销(启动速度快约10倍):
./fresh-editor-VERSION-x86_64.AppImage --appimage-extract
mkdir -p ~/.local/share/fresh-editor ~/.local/bin
mv squashfs-root/* ~/.local/share/fresh-editor/
ln -sf ~/.local/share/fresh-editor/usr/bin/fresh ~/.local/bin/fresh
确保 ~/.local/bin 在你的 PATH 中。适用于 x86_64 和 aarch64 架构。
Flatpak
从发布页面 (https://github.com/sinelaw/fresh/releases) 下载 .flatpak 包并安装:
flatpak install --user fresh-editor-VERSION-x86_64.flatpak
flatpak run io.github.sinelaw.fresh
参见 flatpak/README.md 了解从源码构建。
预构建二进制文件
从发布页面 (https://github.com/sinelaw/fresh/releases) 下载适用于你平台的最新版本。
在 Linux 上,推荐使用 -unknown-linux-musl 归档文件:它们是静态链接的,因此可在任何发行版上运行(无论其 glibc 版本),并且采用 gzip 压缩,标准的 tar 无需 xz-utils 即可解压。每个归档文件都包含安装收据,因此解压后的副本知道如何更新自身。
使用 mise
mise use github:sinelaw/fresh
npm
npm install -g @fresh-editor/fresh-editor
或无需安装即可试用:
npx @fresh-editor/fresh-editor
使用 cargo-binstall
直接安装二进制文件,无需编译(比 crates.io 安装快得多):
首先,如果尚未安装 cargo-binstall,请先安装
cargo install cargo-binstall
然后安装 fresh
cargo binstall fresh-editor
Nix flakes
无需安装即可运行:
nix run github:sinelaw/fresh
或安装到你的用户配置:
nix profile add github:sinelaw/fresh
从 crates.io
cargo install --locked fresh-editor
从源码构建
git clone https://github.com/sinelaw/fresh.git
cd fresh
cargo build --release
./target/release/fresh [file]
文档
- 用户指南 (https://getfresh.dev/docs)
- macOS 提示 (https://getfresh.dev/docs/configuration/keyboard#macos-terminal-tips) - 针对 Mac 用户的终端配置、快捷键和问题排查
- 插件开发 (https://getfresh.dev/docs/plugins/development)
贡献指南
请参阅 CONTRIBUTING.md 了解指南。
隐私
Fresh 每日检查新版本以通知你可用的升级。同时,它会发送基本的匿名遥测数据(版本、操作系统/架构、终端类型)以帮助了解使用模式。不收集任何个人数据或文件内容。
要禁用升级检查和遥测,请使用 --no-upgrade-check 或在配置文件中设置 check_for_updates: false。
许可证
版权所有 (c) Noam Lewis
本项目采用 GNU 通用公共许可证 v2.0 (GPL-2.0) 授权。
相似文章
@yucheng: 最近种草 @superdoteng ,已经一个月没打开过任何像是 cursor 的 ide 了。天然适合多开 workspace, 项目,worktree。里面的各种快捷键包括左右切 workspace, 上下切 repo,上下切 wor…
The user recommends superdoteng as an IDE alternative that excels at managing multiple workspaces, projects, and worktrees, with keyboard shortcuts and support for Grok Build.
eh: 一个极简的类似vi的编辑器
eh 是一个用 C 语言编写的极简类似vi的编辑器,具有 UTF-8 支持、正则表达式搜索/替换、shell 过滤器和多级撤销/重做功能。早期版本在 2024 年的 IOCCC 中获奖。
@hellokillian:受 @karpathy 启发,打造本地 Markdown 编辑器 + 终端代理工作区
一位开发者发布了一款集成终端代理工作区的本地 Markdown 编辑器,灵感源自 Andrej Karpathy。
fred: A text editor that uses C for everything - Handmade Network Expo 2026
Cameron Damera 在 Handmade Network Expo 2026 上演示了完全用 C 编写的文本编辑器 Fred,其核心特性包括内置 TCC 编译器、实时插件系统、动态 Tree-sitter 语言支持、撤销树和会话恢复,所有代码均手工编写,不依赖 AI。
我对快速终端的误解
作者纠正了之前关于快速终端的说法,指出基准测试方法有缺陷,像 antidote 这样的现代插件管理器不会增加开销,并推荐了更快的语法高亮器。真正的偏好是简洁,而不仅仅是速度。