RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

Zedいいですよ

はじめに

4月にラクスに入社しました。kazuki kanekoです。 研修を受けつつ、開発環境を立ち上げようとVSCodeをセットアップしていました。

すると、AIエージェント開発課のメンバーから「Zedいいですよ」とおすすめしていただきました。
これが、私がZedを知ったきっかけでした。

今は紆余曲折ありながら、Zedに落ち着いています。

以前はVSCodeを中心に使っていて、困っていたわけではありませんでした。
ただ、Zedを使い始めてから、

「VSCodeの動作って、実はけっこう重かったんだな」

ということに気がつきました。

また、Ghosttyについてもおすすめしていただいていたので、一時期はZedとGhosttyを同時に使っていました。 ただ、今は割とZedだけで完結している状態になってきています。

そこで今回は、VSCode、Ghostty、Zedを使ってきたうえで、なぜ今Zedに落ち着いているのかを書いていきます。

まず、前提としてZedについて整理します。

Zedとは、高速性、コラボレーション、AIとの連携を重視して作られているコードエディタです。 公式サイトでは、Zedは「speed」と「humans and AIとの collaboration」のために作られたミニマルなコードエディタとして説明されています。

macOS、Linux、Windowsで利用でき、Rustで一から書かれていて、複数CPUコアやGPUを活用する設計になっています。

Zedを作っているのは、AtomやTree-sitterに関わってきたチームです。 AtomやElectron、Tree-sitterなどの開発経験の延長線上にあるプロダクトとして、Zedが作られています。

Zedの特徴は、単に「軽いエディタ」というだけではありません。

Rust製で、独自UIフレームワークであるGPUIを使い、GPUを活用するような設計になっています。 Zed 1.0の記事では、AtomのようにWeb技術の上に作るのではなく、GPU上のshaderにデータを渡すような、いわばゲームのような作り方を選んだと説明されています。

ソース:https://zed.dev/

つまりZedは、VSCodeのようなGUIエディタの便利さを持ちつつ、より軽く、より高速に動くことをかなり強く意識して作られたエディタだよ、という感じです。

私が開発ツールに求めることをZedは満たしていた

私が開発ツールに求めるのは、以下の5つ

  1. すぐに開けること
  2. コードが追いやすいこと
  3. 複数画面を上下左右に開けること
  4. ディレクトリがツリーで開けること
  5. Git関連機能にアクセスしやすいこと

順に説明します。

すぐに開けること

まず、すぐに開けることです。

GitHubを見ていて、

「このファイル、エディタでちゃんと見たいな」

と思うことがあります。

そういう時にVSCodeで開くと、体感で5秒から6秒くらいかかることがありました。
もちろん数秒なので、めちゃくちゃ遅いというほどではありません。

ただ、開発中の「ちょっと見たい」場面では、この数秒が地味に気になります。

メモ帳みたいにパッと開いて、すぐ見られたらいいのになと思っていました。

Zedはこの「パッと開ける感じ」がかなり良いです。
エディタを開くまでの心理的な重さが少なくて、ちょっと確認したいときにも気軽に開けます。

この軽さは、毎日使っているとかなり効いてきます。

コードが追いやすいこと

次に、コードが追いやすいことです。

コードを読んでいる時には、いろいろな情報を行き来します。

たとえば、

  • 関数の定義元に移動する
  • 型定義を見る
  • クラスやinterfaceの中身を見る
  • 呼び出し元を確認する
  • ファイルをまたいで処理の流れを追う

といったことをよくやります。

このときに、定義元にすぐ移動できたり、型ヒントが見られたり、クラス名などにカーソルを当てたときに関連箇所が薄くマーカーされて見やすかったりすると、かなり助かります。

Zedは、このようなIDEの機能を提供してくれています。VSCodeほど充実してませんが、Ghosttyよりは充実しています。

複数画面を上下左右に開けること

複数画面を上下左右に開けることも重要です。

Ghosttyのようなターミナルは、分割の体験がかなり良いです。
上下左右に画面分割できるので、横3、縦2の6画面みたいな形でも開発できます。

Zedでもエディタを上下左右に分割できます。
そのため、Ghosttyのような画面分割の気持ちよさをZedは提供してくれています。

ディレクトリがツリーで開けること

ディレクトリをツリーで開けることも大事です。

私は、ディレクトリ構造を見ながら開発したい派です。

たとえば、

  • controller
  • service
  • repository
  • domain
  • schema
  • migration
  • test

のような構成を見るだけでも、そのプロジェクトがどういう責務分割をしているのかがわかるので、どこを変更すればいいのかなどがわかりやすいです。 ZedにはProject Panelがあり、ディレクトリツリーを見ながら開発できます。

Git関連機能にアクセスしやすいこと

Git関連機能にアクセスしやすいことも、自分にとってはかなり重要です。

正直、毎回ターミナルで git status を打ったり、commitをコマンドでやったりするのは少しめんどくさいです。
もちろんCLIでやった方が速い場面もあります。
ただ、変更ファイルを一覧で見たり、diffを確認したり、stageする変更を選んだりする作業は、GUIで見たいことが多いです。
VSCodeのGit Graphみたいな感じで、ブランチや履歴を見たり、変更内容を確認したりできるとかなり楽です。
ZedにはGit PanelやProject Diffがあり、変更ファイルを確認したり、diffを見たり、stage / unstageしたりできます。
日常的なGit操作であれば、かなりZed上で確認できます。

VSCode、Ghostty、Zedを比較する

ここで、VSCode、Ghostty、Zedを比較してみます。

ただし、Ghosttyはエディタではなくターミナルエミュレータです。
なので、厳密にはVSCodeやZedと同じ種類のツールではありません。

ここでは、以下の3つの開発スタイルとして比較します。

  • VSCodeのような全部入りGUIエディタ
  • GhosttyでCLIツールを組み合わせてエディタっぽく使うスタイル
  • Zedのような軽量GUIエディタ
観点 VSCode Ghostty Zed
起動の軽さ 重く感じることがある 軽い 軽い
コードジャンプ 強い 工夫が必要 強い
ファイルツリー ある 工夫が必要 ある
画面分割 できる かなり強い 強い
Git UI かなり強い 工夫が必要 強い
AIエージェント 拡張+CLIエージェント CLIエージェント前提 ACP+CLIエージェント
自分の印象 全部入りだけど、不要な機能も多く重い 軽いが、使いこなすのに工夫が必要 軽さと機能のバランスが良い

VSCodeでも普通に困らないなと思います。
拡張機能も豊富で、Gitも見やすく、デバッグやリモート開発なども含めると、かなり全部入りの開発環境です。

なので、VSCodeが悪いという話ではありません。 ただ、自分の使い方では、少し重く感じる場面がありました。

Ghostty中心のCLI開発は、軽さと自由度がかなり良いです。
ターミナル分割もしやすく、AIエージェントとの相性が一番いいと思いました。
AIエージェントが作業完了すると通知が飛ぶのがいいですね。

ただ、私の場合は、コードを追うときに 定義ジャンプ、ファイルツリー、Git diffなどを自然に見たい場面が多かったです。

比較すると個人的にはZedは、そのVSCodeとGhosttyの中間かなと思っています。

Zedの使用感

ここからは、実際にZedの画面を開きながら、使用感を共有できればと思います。

Zedを立ち上げると以下のような画面が開きます。 初めは何にもないです。VSCodeは初回から何やらたくさん出てきますよね。

何も無さすぎて、初めは戸惑うのですが、 画面底の帯部分(赤で囲った部分)に配置されているアイコンをクリックすると、ターミナルだったり、ファイルツリーを開くことができます。

VSCodeっぽく使いたい場合は、 ファイル、git関連機能、ターミナル、Copilotみたいな感じで開くとそれっぽく使えます。

やろうと思えば、Ghostty風の配置もできます。 Zedでこの配置をするメリットはあまりないので、それならGhosttyがいいかなとか思いますが、一応できます。

私の配置は以下の様な感じです。 エージェントを並列で使いたいので、ターミナルを3枚、git関連情報を右側で見ながら、ファイルも開きながらという感じで開発しています。

ブログ形式でZedの使用感を伝えるのは、難しいなと思いつつ、画面構成の自由度の高さだったり、Copilot、ファイルツリー、git関連機能など、ほしい機能は最初から入っていて、使いやすそうだなというのが伝われば幸いです! 画像では伝わらないですが、今の画面構成を変更したりする操作がサックサクで動く感じです。

Zedの微妙なところ

ここまでZedの良いところを書いてきましたが、もちろん完璧ではありません。
特に、AIエージェントまわりはまだ、CopilotやCLIがいいなと感じることはあります。

ACP経由のエージェント体験はCLIより遅く感じる

ZedはACP経由で外部エージェントと連携できます。
これは組み込みのAIエージェント機能に依存しないという点で便利なのですが、自分の体感では、ACP経由のエージェント体験はCLIより少し遅く感じることがあります。
CLIでエージェントを使っていると、入力してすぐ反応が返ってくる感じがあります。 一方で、ZedのACP経由だと、UIを挟むぶんレスポンスの出方が少し遅く感じることがあります。
これは設計上ある程度仕方ないのかもしれません。
ただ、CLIの即応感に慣れていると、ここは少し気になります。

ファイルパスクリックで開けない

AIエージェントが生成した文章の中に、 src/foo/bar.ts のようなファイルパスが含まれることがあります。
このとき、そのファイルパスをクリックしてそのままファイルを開けると便利です。
VSCodeだと、このあたりの導線が自然に感じることがあります。

一方で、Zedでは、AIエージェント出力内のファイルパスは、ファイルパスのリンクになっていないので、ただの文字列です。

VSCode拡張に依存している人は移行しづらい

これはZedというより、VSCodeから別エディタへ移るとき全般の話でもあります。
VSCodeは拡張機能がかなり強いです。

たとえば、

  • Git関連
  • Docker
  • Dev Containers
  • Remote SSH
  • デバッグ
  • 各種言語サポート
  • GitLens
  • Copilot

など、エディタというより開発プラットフォームに近いです。
なので、VSCode拡張に強く依存している人が、いきなりZedへ全部移行するのは難しいと思います。
私の場合は、VSCodeのすべてが必要だったわけではありません。
だからZedのバランスが合っていました。

まとめ

Zedは完璧なエディタではありません。
VSCodeほど何でも揃っているわけではありません。
GhosttyほどCLI開発体験が良いわけではありません。

ただ、色々なバランスを考えると今の私にはZedがかなり合っているという結論になりました。

  • 軽く開ける。
  • コードを追いやすい。
  • ファイルツリーがある。
  • 画面分割できる。
  • Git機能にアクセスしやすい

VSCodeに慣れているが、でも、もう少し軽く使いたいという方
Ghosttyの軽さが好きだが、手軽にコードジャンプやGit UIが使いたい方

Zedいいですよ。

-->