fresh: 基于终端的IDE与文本编辑器:简单、强大且快速

Lobsters Hottest 工具

摘要

Fresh 是一款现代、零配置的终端文本编辑器,具备IDE级别的功能和高性能,旨在易于使用和快速。

<p><a href="https://lobste.rs/s/yhfmtx/fresh_terminal_based_ide_text_editor_easy">评论</a></p>
查看原文
查看缓存全文

缓存时间: 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
macOSbrew
Bazzite/Bluefin/Aurora Linuxbrew
Windowswinget
Arch LinuxAUR
Debian/Ubuntu.deb
Fedora/RHEL.rpm,Terra (https://terra.fyralabs.com/)
OpenSUSE.rpm
FreeBSDports / pkg (https://www.freshports.org/editors/fresh)
GentooGURU
Linux(沙箱化/便携式)AppImageFlatpak
所有平台预构建二进制文件
npmnpm / npx
Rust 用户(快速)cargo-binstall
Rust 用户crates.io
NixNix flakes
开发者从源码构建

通用构建版本 (Linux)

curl -fsSL https://raw.githubusercontent.com/sinelaw/fresh/refs/heads/master/scripts/install.sh | sh

一个独立的静态 (musl) 二进制文件,支持 x86_64aarch64 架构,包含所有功能(含插件)。解压到 ~/.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 助手(如 yayparu):

# 二进制包(推荐,安装更快)
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) 授权。

相似文章

eh: 一个极简的类似vi的编辑器

Lobsters Hottest

eh 是一个用 C 语言编写的极简类似vi的编辑器,具有 UTF-8 支持、正则表达式搜索/替换、shell 过滤器和多级撤销/重做功能。早期版本在 2024 年的 IOCCC 中获奖。

我对快速终端的误解

Lobsters Hottest

作者纠正了之前关于快速终端的说法,指出基准测试方法有缺陷,像 antidote 这样的现代插件管理器不会增加开销,并推荐了更快的语法高亮器。真正的偏好是简洁,而不仅仅是速度。