【Atomの後継】Vimmerにもおすすめ！超軽量Rust製の新生OSSテキストエディタ「Zed」

# はじめに

こんにちは！　中学2年生を終えようとしているAwashAmityOakです！

みなさんは、コーディングをするとき、何のエディタを使っていますか？　私は、**以前はVisual Studio Codeを使用**していたのですが、3ヶ月ほど前から「<font color="red">**Zed**</font>」というエディタを愛用しています。今回は、私を**VSCodeから引き離したZed**について、歴史や魅力、インストール方法を説明していきます。

:::note warn
この記事は、2024年3月時点での情報をもとにしています。
:::


# Zedって何？

[Zed](https://zed.dev/)は、<font color="red">**MacOSで動く[^1]オープンソースのテキストエディタ**</font>です。GPUIという独自のUIフレームワークから、サーバー側のコードまで、[GitHubリポジトリ](https://github.com/zed-industries/zed)で公開されています。

Zedは、比較的新しいコンパイラ言語である**Rust**で作られているため、<font color="red">**動作がとても速い**</font>です。「**Code at the speed of thought**」(**思考の速さでコーディング**)がキャッチコピーになっていることからも、エディタの速度がいかに重視されているのかわかると思います。

# Zedの大まかな歴史

Zedは、**Atom**というエディタの開発者の方たちが、2年ほど前に開発を始めた新しめのエディタです。Atomが[2022年12月15日に開発終了](https://github.blog/2022-06-08-sunsetting-atom)となったことは、多くの人が知っていると思います。

ところで、その数ヶ月前に、Atomの作者の一人であるNathan Soboさんがこんなツイート(ポスト)をしています。

https://twitter.com/nathansobo/status/1534565356131393537

「<font color="red">**Atomの太陽は沈み、Zedの太陽が昇る。**</font>私たちはまだ終わっていない。(拙訳)」ということです。かっこいい言葉ですね。Atomの開発終了が告知されたのは、実際の開発終了の半年前であるこの頃ですが、すでにZedの開発は始まっていたようです。

そして、Atom開発終了から2ヶ月半後、今から約1年前、[ベータ版がリリース](https://zed.dev/blog/beta)されました！　その後も、主にAtomの開発者の方たちだけで、Zedへ機能が追加されていきました。

さらに時は過ぎ、今から約2ヶ月前の2024年1月24日、[Zedがオープンソース化](https://zed.dev/blog/zed-is-now-open-source)されました！　以降は**一般の人も開発へ参加できる**ようになりました。現在は、Mac以外の、**まだ対応していないプラットフォームサポート**の開発が盛んなようです。

# 魅力

## 1. 軽ーーーい！

ZedはRust製ということもあり、やっぱり<font color="red">**動作が軽い**</font>です。(スペックが高いPCならさほど感じないかもしれないですが、)私の環境では、VSCodeより**Zedの方が断然快適**です。

## 2. 基本的なエディタとしての機能

Zedは未だ開発中ですが、ファイルマネージャーや補完機能など、VSCodeなどにあるような<font color="red">**基本的な機能は、普通に動きます。**</font>言語ごとに設定を分けたり、付属のターミナルを使ったりもできます。長年VSCodeを使ってきた身としても、特に不便には感じません。(強いて言えば、GitをGUIで操作できないなあ…。そのため、私は現在、代わりにCUIで操作しています。)

### 対応言語

<font color="red">**広く使われているプログラミング言語なら、ほとんど使うことができます。**</font>以下に、対応しているプログラミング言語を記します。(一部プログラミング言語ではないものを含む)[^2]

- Astro
- C
- C++
- Clojure
- C#
- CSS
- Dart
- Dockerfile
- Elixir
- Elm
- ERB
- Erlang
- Gleam
- GLSL
- Go
- Haskell
- HTML
- JavaScript
- JSON
- Lua
- Markdown
- OCaml
- PHP
- Prisma
- proto
- PureScript
- Python
- Racket
- Ruby
- Rust
- Scheme
- Svelte
- Terraform
- TOML
- TSX
- TypeScript
- Vue.js
- YAML
- Zig

あなたのお気に入りの言語はありましたか？　(JavaとかKotlinとかがないの悲しい…)

### 機能一覧

- ファイルマネージャー
    - わかりやすいツリー構造
    - Gitに関するハイライト(Gitの最終コミットからの変更点があるファイル(modified)は、**ファイル名が黄色**になる)
- ターミナル環境
    - `⌘J`で開く
    - デフォルトシェル環境が使える
- 補完機能
    - 先述の言語に対応
    - Pythonで外部モジュールを使うには、[venv](https://docs.python.org/ja/3/library/venv.html)での仮想環境構築が必要
- **コラボレーション**
    - GitHubアカウントでZedにログイン可能
    - ログイン後、`Contacts`にZedユーザーのGitHubアカウントを加えることができる
    - `Channels`を作ることで、`Contacts`に入っている人と**テキストベースで会話が可能**(未検証)(Discordみたいな感じ？)
- **AIアシスタント**
    - Open AIのAPIキーを設定することで、エディタ内で**AIアシスタント**(いわゆるChatGPT)を利用可能
    - 無料版だとうまくいかなかった
- 拡張機能
    - 現在は、テーマやシンタックスハイライトの拡張機能が多め
    - 対応言語になかったJavaやKotlinは、拡張機能を入れればハイライトを有効にできる
- テーマ
    - [デフォルト9種類](https://github.com/zed-industries/zed/tree/main/assets/themes)
    - 拡張機能でさらに追加可能
    - ユーザーが自分で作ることも可能([VSCodeのテーマ集](https://vscodethemes.com)から無理やり追加できそう)
    - Atomのテーマ「One」がデフォルトで入ってる
- ショートカットキー
    - `⌘K ⌘S`で開かれる`~/.config/zed/keymap.json`に書き込む
    - デフォルトの設定は[こちら](https://github.com/zed-industries/zed/blob/main/assets/keymaps/default-macos.json)
    - デフォルトは大体VSCodeと似てる
- 設定
    - `⌘,`で開かれる`~/.config/zed/settings.json`に書き込む
    - デフォルトの設定は[こちら](https://github.com/zed-industries/zed/blob/main/assets/settings/default.json)
    - 言語ごとに設定を分けられる

<font color="red">**コラボレーションやAIアシスタント**</font>は、バニラのVSCodeにはない目玉機能ではないかと思います。拡張機能なしで、これらが使えるの、すごくないですか？　(まだ安定してはないけど…。)

## 3. Vimみたいに使える

Zedは、もちろんGUIアプリです。しかし、設定の`vim_mode`という項目を有効にすることで、なんとエディタ内でVimのコマンドが使えてしまいます！

私はVimmerではないので、大したレビューはできませんが、ノーマルモード、インサートモード、ビジュアルモードなどの区別はちゃんと存在しています。`:w`や`:q`での保存・終了、`h`/`j`/`k`/`l`や`w`/`W`でのカーソル移動や、`d[なんとか]`での削除など、一般的なコマンドは問題なく動きます。通常のエディタからVimモードにするには、設定をちょこっと変えるだけで良く、補完機能などもデフォルトで使えるので、「<font color="red">**設定がいらないGUI版Vimもどき**</font>」として使えそうです。

# インストール方法

:::note warn
現状、`macOS 10.15+`でしか、使用することができません。
:::

## 方法1

[こちらのダウンロードページ](https://zed.dev/download)から、dmgファイルをダウンロードしてください。ダウンロードが終わったら、dmgファイルを起動して、あーだこーだしてインストールしてください。(適当)

## 方法2

もしくは、[Homebrew](https://brew.sh/ja)が入っている環境なら、**コマンド一発**で使える状態にしてくれます。(個人的には、こっちの方法がおすすめです。)

```
$ brew install --cask zed
```

---

どちらの方法でインストールしても、特に違いはありません。(強いて言えば、Homebrewを使った方が、アンインストールが`brew uninstall --cask zed`一発でできます。)

私のやる気があったら、後日、丁寧なインストール方法の記事と、おすすめ設定の記事を書きます。(多分書かない。)

# 他のAtom後継「Pulsar」

Zedだけ紹介してこれを紹介しないと、誰かに怒られそうなので、書いておきます。

Zedに比べて結構前からあるエディタとして、[Pulsar](https://pulsar-edit.dev/)があります。ZedはAtomの後継といえど、見た目はかなり違うのですが、こちらはAtomとほぼ同じ見た目のエディタです。かつて<font color="red">**Atomを愛用していた人が使ったら、感動する**</font>と思います。Zedと同じく、こちらもオープンソースで、[こちらのリポジトリ](https://github.com/pulsar-edit/pulsar)で開発されています。(ちなみにElectronベースです。)

# おわりに

いかがでしたでしょうか？ Zedの魅力を感じていただけましたか？　ここだけの話、Zedにはまだまだ細かいバグはいくつかあります。しかし、私はZedのような「<font color="red">**完全ではないもの**</font>」を使いこなすのが好きです(かっこいいから)。また、細かいバグは開発中のソフトウェアにはつきものだと思っているので、**今後への期待**も込めてZedを愛用しています。事実、なにか不便に感じることは全くありませんし。

この記事を読んで、興味を持ってくれた人は、ぜひZedエディタを触ってみてください！

---

誤字・脱字などあれば、コメントか編集リクエストで教えていただけるとありがたいです。

この記事が良いと思ったら、ぜひいいねとフォローをよろしくお願いします！　[Xアカウント](https://twitter.com/awashamityoak)のフォローなどもしてくれると泣いて喜びます！

最後まで読んでくださり、ありがとうございました！

# 参考

https://qiita.com/access3151fq/items/6fd35685510aa5f954e6

https://qiita.com/access3151fq/items/4b031d856550d749ffe4

https://qiita.com/naka_kyon/items/824fa867b55e17f780f9

[^1]: Linux版も現在開発中のようです。[Issue](https://github.com/zed-industries/zed/issues/7015)を見た感じ、すでに大体できてそう。私の友達によると、Ubuntu上でリポジトリをクローンして、ローカルでビルドしたら、動いたそうです。

[^2]: https://github.com/zed-industries/zed/tree/main/docs/src/languages を参考にまとめました。