fresh-editor とは
fresh-editor は、Noam Lewis が Rust で書いたターミナル向けの IDE 兼テキストエディタ Fresh のパッケージです。言語サーバー対応、シンタックスハイライト、マルチカーソル、TypeScript で書けるプラグインシステムといった IDE に期待する機能をターミナルに持ち込みつつ、すぐに使い始められる手軽さを保っています。巨大なファイルも待たずに開け、編集セッションはバックグラウンドのデーモンが保持するので fresh -a で再接続でき、fresh --web で Web ブラウザにエディタを配信することもできます。パッケージ名は fresh-editor、入力するコマンドは fresh です。
⚡ fresh-editor の主な機能
🧠 言語サーバー対応
Fresh は Language Server Protocol に対応しており、診断、補完、定義へのジャンプ、ホバー情報を rust-analyzer、gopls、clangd など他のエディタと同じサーバーから得られます。
🎨 シンタックスハイライト
開いた瞬間からコードがハイライトされます。いつものターミナルのままで、最初のファイルを正しく表示するための別途の設定作業は要りません。
✏️ マルチカーソル
複数の場所に同時にカーソルを置いて一度に入力できます。ブロック内の変数名の変更や、似た行の列をまとめて書き換えるのに便利です。
🧩 TypeScript プラグイン
Fresh はプラグイン用の TypeScript ランタイムを内蔵しています。エディタの拡張は独自の設定言語を覚えることではなく、プラグイン API に対して TypeScript を書くことです。
🔌 生き残るセッション
セッションデーモンが、ターミナルを閉じても SSH 接続が切れても、エディタと開いているファイルを保持します。fresh -a で再接続できます。
🌐 ターミナルでもブラウザでも
fresh --web は同じエディタを 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 update🆓 ずっと無料のミラーがあります。 deb-free.griffo.io は、アカウントもサブスクリプションもなしでパッケージをずっと無料で配布しています。上流より最大2か月遅れ、セキュリティ修正は即座に公開されます。現在収録しているのは cliamp、Ghostty、lazydocker、Oh My Posh、Uncloud と Zed です。fresh-editor は含まれていないため、今日入手する方法は上のリポジトリだけですが、ご要望があれば追加できます。
ステップ 2: fresh-editor をインストールする
# 最新の fresh-editor をインストール
sudo apt install fresh-editor
# インストールを確認。コマンドは fresh-editor ではなく fresh です
fresh --version# 最新の fresh-editor をインストール
apt install fresh-editor
# インストールを確認。コマンドは fresh-editor ではなく fresh です
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 -aWeb ブラウザで編集:
# このターミナルに描画する代わりに Fresh を Web ブラウザに配信
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 で開きます - シェル:
~/.bashrcにexport EDITOR=freshを書けば、crontab -eやsudoeditなども Fresh を使います - コンパイラと grep: それらが出力する
file:line:colを渡すと、その位置でそのまま開きます - デスクトップ: パッケージがデスクトップエントリとアイコンを入れるので、Fresh がアプリケーションメニューに表示されます
- SSH と tmux: セッションデーモンがリモート側で作業を開いたまま保ち、
fresh -aで再開できます
🚀 deb.griffo.io を選ぶ理由
- 公式 Ubuntu: パッケージなし: Fresh はどの Ubuntu リリースの main にも universe にも含まれていません
- 上流の .deb: ダウンロードした日には最新ですが、上流は GitHub のリリースに単体の .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バイナリ、アプリケーションメニュー用のデスクトップエントリとアイコン、man ページfresh(1) - ✅ 2 つのアーキテクチャ: amd64 と arm64。ノート PC、サーバー、64 ビット ARM ボードで同じ Fresh が使えます
- ✅ マルチディストリビューション: Ubuntu 22.04、24.04、25.10、26.04 で動作
- ✅ 手間のかからない運用: 更新は通常の apt コマンドだけ
📦 パッケージのビルドリポジトリ
Ubuntu パッケージは、この GitHub リポジトリで自動的にビルド・管理されています:
- 🍃 fresh-debian - 最新リリースのビルド
🔗 関連パッケージ
deb.griffo.io では、こちらも配布しています:
- Helix - 言語サーバー対応を内蔵したモーダルなターミナルエディタ
- Neovim - 拡張性の高い Vim ベースのエディタ
- Zed - ターミナルを離れるときのためのグラフィカルなコードエディタ
- lazygit - ターミナルエディタと相性のよいターミナル git UI
apt upgrade で最新に保ちたい方。