トップ/記事一覧/VSCodeからZedへ乗り換えてみた — Claude Code・Copilot・Python/Go開発環境を移行実況
VSCodeの重厚なエディタからZedの身軽なエディタへ乗り換えるイメージ

VSCodeからZedへ乗り換えてみた — Claude Code・Copilot・Python/Go開発環境を移行実況

普段使いのエディタをVSCodeからZedへ乗り換える様子をそのまま記録しました。入れていた拡張機能が何に代替できるか1つずつ確認し、実際につまずいた場所もそのまま書いています。

ラボ2026年7月15日公開 本日更新
目次
この記事のポイント

普段使いのエディタをVSCodeからZedへ乗り換える様子をそのまま記録しました。入れていた拡張機能が何に代替できるか1つずつ確認し、実際につまずいた場所もそのまま書いています。

普段のコーディングはずっとVSCode(Visual Studio Code)を使ってきましたが、今回思い立ってZedという別のエディタに乗り換えてみることにしました。ちょうどよい機会なので、実際に手を動かしながら「VSCodeで入れていた拡張機能は、Zedでどう代替できるのか」を1つずつ確かめ、その一部始終をそのまま記事にします。

本記事ではPython、Django、GoとClaude、Codexあたりをよく使うフリーランスエンジニアの私の基本的なZed初期設定+拡張機能の導入を、あえて抽象化せずにそのまま紹介します。ご自身の環境に合わせて適宜読み替えてください。

なぜZedに乗り換えることにしたか

理由は単純で、ここ数ヶ月AIと一緒にコーディングする時間が急に増えたからです。少し前までは、VSCodeに拡張機能をふんだんに入れて「コーディングを少しでも楽にする」方向で使っていました。ところが今は、コードを書く時間が減った分だけ、GitKrakenでDiffを読む時間の比重がそれと比例して増えています。

そうなると、エディタに求める機能も変わってきます。ターミナル操作ができて、シンタックスハイライトがあって、ちょっと手直しして実行できる — それくらいのシンプルな機能で十分で、むしろそれより軽快に動くことのほうがうれしい、という気持ちになってきました。これが、VSCodeから乗り換えを検討し始めた一番の動機です。

移行前に: 使っているVSCode拡張機能を洗い出す

まず、ターミナルで code --list-extensions --show-versions を実行し、今のVSCodeに何が入っているかを一覧にしました。中身はざっくり次のような構成でした。

  • AI/エディタ連携系: Claude Code、GitHub Copilot Chat、日本語言語パック
  • Python系: Pylance、debugpy、python-environment-manager、autoDocstring、python-indent
  • その他の言語: Go、Django、Jinja
  • ユーティリティ: Markdown Mermaidプレビュー、Excel/CSVビューア

これをひとつずつZed側で確認していきます。先に対応表としてまとめると、次のようになりました。

VSCode拡張機能とZedでの対応まとめ

  • Claude Code → Zedにネイティブ統合(Agent Panel、ACP経由)。むしろVSCode版より統合度が高い
  • GitHub Copilot Chat → 設定でEdit Predictionプロバイダに指定可能。Copilot専用のAgentも選べる
  • Python (Pylance/debugpy) → ネイティブ内蔵。Toolchain SelectorがvenvをVSCodeと同じ仕組みで自動検出し、DebuggerがDebugpyに対応
  • python-environment-manager → Toolchain Selectorが標準搭載で代替
  • Go → ネイティブ(gopls組み込み、DelveによるDebuggerも標準対応)
  • Django → 拡張機能あり
  • Jinja → 拡張機能あり(単体の.jinja用と、HTMLに埋め込む用の2種類)
  • Markdown Mermaidプレビュー → 最新版のZedにビルトインで対応済み、追加拡張は不要
  • Excel/CSVビューア → CSVはネイティブ拡張あり。Excel(.xlsx)は非対応で、CSVへの変換が必要
  • 日本語言語パック → 公式には存在しない。非公式のAI翻訳ビルドのみ
  • autoDocstring → 同等機能はなし。スニペットで簡易的に代用

日本語UIとdocstring自動生成の2つだけは完全な代替が見つかりませんでした。日本語UIは非公式ビルド(AI翻訳、品質未検証)しか選択肢がなく、業務で人に勧めるには不安が残ったため、今回は英語UIのまま進めることにしました。docstringは後述するスニペット機能で簡易的に埋め合わせています。

Zedをまっさらな状態からセットアップする

Zedのオンボーディング画面。テーマ・Base Keymap・Agent Setupを選ぶ前の初期状態
Claude Agent・Codex・GitHub Copilotのインストールが完了しチェックマークが付いた状態

実はZedは以前少しだけ触ったことがあり、キーバインドをVSCode互換にする設定などが中途半端に残っていました。どうせなら初期状態から手順を追いたかったので、設定ファイル(~/.config/zed)と拡張機能・キャッシュ(~/.local/share/zed~/.cache/zed)を一度全部消してから起動し直しました。アプリ本体は残るので、次に起動すればまた最初のオンボーディング画面から始められます。

起動すると、テーマ・キーマップ・エージェント連携・VSCodeからの設定インポートまでを1画面でまとめて選べるオンボーディング画面が出てきました。VSCodeからの移行を前提にするなら、ポイントは次の3つです。

  • Base Keymapは「VS Code」を選ぶ。指が覚えているキーバインドをそのまま使えるので、移行の摩擦がかなり減ります
  • Agent Setupで、使っているAIコーディングエージェント(Claude Agent・GitHub Copilotなど)をまとめてInstallしておく。ここでインストールしておくと、後で個別に連携設定をやり直す手間が省けます
  • Import Settings(VSCode設定の自動インポート)は、あえて使わないという選択肢もあります。今回は「何がどう変わったか」を理解しながら進めたかったので、ここは使わず1つずつ手動で設定しました

Trust All Projects By Default(全プロジェクトを自動的に信頼する設定)は、オフのままにしておくのがおすすめです。プロジェクトを開くたびに確認は入りますが、知らないコードを不用意に実行しないための安全側の設定です。

Claude CodeをAgent Panelで動かす

Agent PanelのClone Repositoryにリポジトリのgit URLを入力している画面
「このリポジトリの構成を教えて」に対するClaude Agentの回答

オンボーディングでClaude Agentをインストールしておくと、Zedの右側パネル「Agent Panel」からそのまま会話を始められます。ただしAgentに何かをさせるには、対象のプロジェクトフォルダを開いている必要があります(何もないと「Open Project」か「Clone Repository」を選ぶよう促されます)。

今回は検証用に、GitHubへ空のパブリックリポジトリ(zed-migration-sandbox)を新しく作り、それをZedの「Clone Repository」からそのままクローンしました。

プロジェクトを開いた状態で改めてAgent Panelを開き、「Claude Agent」でスレッドを開始してみると、サインイン画面すら出ずにいきなり動き始めました。この端末では既にターミナル版のClaude Codeにログイン済みだったため、その認証情報をそのままZedが検出したようです。試しに「このリポジトリの構成を教えて」と投げてみたところ、lsfindでディレクトリを探索し、README.mdを読んで、日本語で構成を要約して返してくれました。VSCode拡張版と同じ感覚で、むしろエディタに深く統合されている分、コードの変更箇所をその場で確認しやすい印象です。

注意: Bypass Permissionsモードは検証用リポジトリだから使えた設定

Agent Panelの下部には「Bypass Permissions」という、コマンド実行の確認を省略するモードがあります。今回は中身が空の検証用リポジトリだったので気にせず使いましたが、実プロジェクトで使うときは、都度確認が入る通常モードに戻しておくのが安全です。

GitHub Copilotで入力補完を使う

settings.jsonにedit_predictions.providerを追記し、エラーが消えた状態
「def he」と入力した続きが「llo():」とゴーストテキストで提案されている画面

次にGitHub Copilotの入力補完(コードを書いている途中に灰色の文字で続きを提案してくれる、いわゆるゴーストテキスト)を設定します。設定ファイル(settings.json)に次の内容を追記しました。

{
  "edit_predictions": {
    "provider": "copilot"
  }
}

つまずいた点①: 設定キー名がバージョンによって変わっていた

最初にネットで見つけた情報を元に"features": {"edit_prediction_provider": "copilot"}と書いたところ、「Property features is not allowed」というエラーが出て弾かれました。調べ直すと、現行バージョンではedit_predictions.providerという別のキー名に変わっていました。Zedは開発が活発で設定項目の名前がわりと変わるので、ネット上の設定例は日付が古くないか確認したほうがよさそうです。

設定を直して保存すると、Copilotのサインインも特にコマンドを叩かずに完了していました(以前どこかでGitHub連携済みだったものが引き継がれた形です)。適当なPythonファイルでdef hello():と打つと、続きのllo():部分が灰色のゴーストテキストで提案され、Tabキーで確定できました。

Python開発環境を整える

ブレークポイントで処理が停止し、Framesにスタックが表示された状態

Zedの統合ターミナル(Ctrl+`)でpython3 -m venv .venvを実行し、その後.pyファイルを保存すると、右下のステータスバーにPython 3.14.4 (venv)と表示され、作成した仮想環境を自動的に検出してくれました。これはZedの「Toolchain Selector」という機能で、VSCodeのvenv検出と同じライブラリ(python-environment-tools)を使っているそうです。手動で選び直すこともできます。

続けてデバッガーも試しました。行番号の左をクリックしてブレークポイントを置き、コマンドパレットから「debugger: start」を実行すると、「run module」のようなPython用のデバッグタスクが自動的に候補として出てきます。それを選んで実行すると、狙った行でちゃんと処理が止まり、呼び出しスタック(Frames)も表示されました。VSCode+debugpyと同じ体験がそのまま再現できています。

Go開発環境を整える

hello.go保存後、デバッグタスク候補にgo run・go testが自動で並んだ状態
go runが成功し、Hello, Zed!が出力された状態

Goはgogoplsdlv(Delve、Goのデバッガー)が既に端末に入っていたので、Zed側での追加設定はほぼ不要でした。.goファイルを保存すると、goplsが自動的に起動し、デバッグタスクの候補にも「go run .」「go test .」がすぐに並びました。

Django・Jinjaのテンプレート機能を入れる

拡張機能ギャラリーでDjangoを検索している画面
Jinja2 Template SupportとHTML-Jinja Template Supportが両方インストール済みの状態

拡張機能ギャラリー(Ctrl+Shift+X)で「django」「jinja」を検索し、Django・Jinja2 Template Support・HTML-Jinja Template Supportの3つをインストールしました。Jinja関連は名前が近い拡張機能が複数出てくるので、それぞれの説明文をよく見て選ぶ必要があります。純粋な.jinja/.j2ファイル用の拡張と、.htmlファイルの中にJinja構文が混じっているケース用の拡張は別物で、Django/Flaskのテンプレートを扱うなら両方入れておくと安心です。

Markdown Mermaidプレビュー、CSV、そしてExcelは非対応

Markdownプレビューでmermaidのフローチャートが描画された状態

Markdown内の```mermaidコードブロックは、最新版のZedならプレビュー機能(markdown: open preview)だけで、追加拡張なしにフローチャートとしてそのまま描画されました。VSCodeで別途拡張機能を入れていた手間を考えると、これは素直にうれしい進化でした。

CSVは「Rainbow CSV」という拡張機能を入れると、列ごとに色分けされて読みやすくなります。ただしExcel(.xlsx)ファイルを直接開く機能は今のところZedには無く、CSVやMarkdownに変換してから開くしかありません。表計算ファイルを頻繁に扱う人は、この点だけ覚えておく必要があります。

docstring自動生成が無いので、スニペットで代用する

「docstring」入力でDocstring候補がポップアップした状態
確定後、テンプレートが展開されタブストップがハイライトされた状態

VSCodeの「autoDocstring」に相当する、関数からdocstringのひな形を自動生成する機能はZedには見当たりませんでした(要望としては挙がっているものの、まだ実装されていません)。完全な代替にはなりませんが、よく使う型を自分でスニペット登録しておくことにしました。

コマンドパレットから「snippets: configure snippets」→「python」を選ぶと、~/.config/zed/snippets/python.jsonが開きます。ここにGoogleスタイルのdocstringテンプレートを登録しました。

{
  "Docstring": {
    "prefix": "docstring",
    "body": [
      "\"\"\"${1:概要}",
      "",
      "Args:",
      "    ${2:param}: ${3:説明}",
      "",
      "Returns:",
      "    ${4:戻り値}",
      "\"\"\""
    ],
    "description": "Google style docstring"
  }
}

つまずいた点②: 新規スニペットファイルはZedの再起動が要る

保存してすぐ関数の中でdocstringと打っても、何も候補が出てきませんでした。JSONの中身やファイルの保存場所は間違っていなかったのですが、Zedを一度終了して開き直したところ、あっさり候補が出るようになりました。スニペットの定義はエディタ起動時に読み込まれる仕組みのようで、後から追加したファイルは再起動しないと反映されない、というのが実際に踏んでみて分かった挙動です。

再起動後はdocstringと打つとポップアップ候補が出て、確定すると概要の部分がハイライトされた状態でテンプレートが展開され、Tabキーでparam説明戻り値の順に移動できるようになりました。自動生成ではありませんが、型さえ覚えれば実用上はそこまで困らなそうです。

まとめ

一通り触ってみた感触として、Claude CodeやGitHub Copilotとの連携、Python/Goの開発環境まわりは、VSCodeで使っていた拡張機能をほぼそのまま置き換えられました。Zedの方がむしろエディタにネイティブで統合されている分、動きが軽く、エージェントとの連携もスムーズに感じます。

一方で、日本語UIが無いこと、docstring自動生成の代替が無いこと、Excelを直接開けないことは、そのまま乗り換えると困る人が出てきそうなポイントです。今のところ引っかかっているのは、Agent Panelやファイルツリーの初期配置がVSCodeと微妙に違うくらいで、これもsettings.jsonに次の2行を足すだけで、ファイルツリーが左・AIチャットが右という見慣れた配置に変えられました。

"project_panel": { "dock": "left" },
"agent": { "dock": "right" }

この設定を入れると、Agent Panelの左上に「Search threads...」というスレッド履歴欄が独立して残ることがありますが、これはCtrl+Alt+Jで個別にトグルして消せます。

avatar-m-1

堀川 慎

Backend Engineer / AWS / Django / Go