0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ついに完成】Zed × Claude Code で、Enterで改行、⌘Enterでプロンプト送信。SSH先PDFも1キーで読める最強初期設定

0
Last updated at Posted at 2026-08-23

Claude Codeのプロンプト誤送信をなくしたい

Zed、Claude Code CLI、SSH先PDFプレビューを表現したアイキャッチ

「うわ、まだ入力途中なのにプロンプト送信しちゃった...」
あるあるですよね。
そんな日頃の小さな不幸を解決すべく、Zedの内蔵ターミナルで、普段どおりの Claude Code CLI を次の操作にできました。

キー 動作
Enter 改行だけ。まだ送信しない
⌘ Enter プロンプトをClaude Codeへ送信
⌃ ⌘ I Claude Code CLIを起動
⌘ ⌥ P ローカル/SSH先のPDFを開く

設定一式はGitHubで公開しました。

git clone https://github.com/amu815/zed-claude-code-cli-kit.git
cd zed-claude-code-cli-kit
./install.sh

そもそも「Zed」って何?

Zedは、Rustでゼロから開発されているオープンソースのコードエディタです。複数のCPUコアやGPUを活用する設計で、動作の軽快さを重視しています。

ざっくり言えば、VS CodeやCursorと同じように、ソースコードの編集、内蔵ターミナル、Git操作、拡張機能などをまとめて扱える開発アプリです。共同編集機能やAI機能も標準で備えています。

ただし、この記事ではZed内蔵のAI機能を使うわけではありません。それぞれの役割は次のとおりです。

要素 この記事での役割
Zed コード編集、内蔵ターミナル、キー入力の変換、SSHプロジェクトの操作
Claude Code CLI ターミナル上でプロンプトを受け取り、コードを調査・編集するAIエージェント
本記事の設定キット ZedとClaude Code CLIを使いやすくつなぐキーバインドやTask

つまり、Zedを「軽快なエディタ兼ターミナル」として使い、その中で普段どおり claude コマンドを動かす構成です。

Zed自身にもAgent Panelや、外部エージェントを接続するACPがありますが、今回の設定ではそれらへの移行は必要ありません。

この記事では、なぜこの設定が安定するのか、Zedを初めて使う人向けの初期設定、そしてZedがまだ苦手なPDFをSSH環境でも読む方法まで説明します。

なぜこの環境を作ったか

以前はVS CodeのターミナルでClaude Code CLIを使い、

Enterは改行、Command+Enterで送信

を実現しようとしていました。しかし、Claude Code側のキーバインドを変更すると、端末や別のMacへ設定を持っていったときに、EnterでもCommand+Enterでも送れない状態になることがありました。

今回のポイントは、Claude Codeをいじらないことです。

ZedのAgent PanelやACPを使うのではなく、いつもの claude コマンドをZedの内蔵ターミナルで動かします。

仕組み:ClaudeではなくZedでキーを変換する

Claude Code公式ドキュメントの標準動作は次のとおりです。

  • Enter = chat:submit(送信)
  • Ctrl+J = chat:newline(改行)

一方、macOSのCommandキーはGUIアプリ側が処理することが多く、CLIまで同じ形で届くとは限りません。そこでZedのターミナルがキーを受け取った瞬間に変換します。

{
  "context": "Terminal",
  "bindings": {
    "enter": ["terminal::SendKeystroke", "ctrl-j"],
    "cmd-enter": ["terminal::SendKeystroke", "enter"]
  }
}

つまり、

EnterをCtrl+Jへ、Command+EnterをEnterへ変換する流れ

という単純な構造です。Zed公式ドキュメントにも terminal::SendKeystroke が用意されています。

~/.claude/keybindings.json は変更しません。これが、MacBookとMac mini、ローカルとSSH先で設定が混線しにくい理由です。

なお、この考え方はVS Codeで絶対に不可能という意味ではありません。VS Codeにもキー送信機能はあります。ただ、今回はZedのTerminal contextだけに閉じた設定で実機動作を再現できたため、この構成を採用しました。
また、VS Codeのキーバインドは超特殊で、過去に色々試しましたが、全て失敗に終わっています。
動作も軽いし、キーバインドも自由だし... PDFを見れないというくらいで、Zedのメリットが多いように感じます。

1. Zedを初めて使う人向けセットアップ

Zedをインストール

Zed公式のインストール手順どおり、Homebrewなら1行です。

brew install --cask zed

Claude Code CLIをインストール

curl -fsSL https://claude.ai/install.sh | bash

確認します。

claude --version

すでにClaude Code CLIを使っている人は、この手順は不要です。

初期設定キットを適用

git clone https://github.com/amu815/zed-claude-code-cli-kit.git
cd zed-claude-code-cli-kit
./install.sh

インストーラーが追加する主な内容は次のとおりです。

  • VS Codeベースのキーマップ
  • Enter / ⌘Enter のClaude Code向け変換
  • ⌃⌘Iclaude を起動するZed Task
  • 日本語文字用のHiragino Sansフォールバック
  • Markdown/LaTeXの折り返し
  • ファイルアイコン、Git状態、ライト/ダークテーマ
  • HTML、LaTeX、Docker、Make、CMake、CSV、ログ向け拡張の自動導入
  • PDF起動用の ⌘⌥P

既に値がある設定は上書きしません。settings.jsonkeymap.jsontasks.json は変更前に日時付きバックアップを作ります。

JSONCのコメントや元の整形は新ファイルに残らないため、コメントが重要な人は *.backup-日時 も確認してください。

Zedを再起動し、⌃⌘I を押します。Claude Code CLIがターミナルで開けば成功です。

日本語化について

日本語の入力・表示はできます。今回の設定では、英数字フォントに日本語グリフがなくてもHiragino Sansへフォールバックします。

ただし、Zed本体のメニューや設定画面を日本語化する公式機能は、2026年8月23日時点ではありません。UIは英語のままです。国際化の進捗はZed Issue #7409で追えます。

2. SSH先でClaude Code CLIを使う

先に ~/.ssh/config へ普段の接続先がある前提です。

Host gpu
  HostName example.com
  User yourname
  IdentityFile ~/.ssh/id_ed25519

ZedからそのSSHプロジェクトを開き、ローカルMacで次を実行します。

cd zed-claude-code-cli-kit
./install.sh \
  --remote gpu \
  --remote-root gpu=/home/yourname/project

gpu とプロジェクトパスは自分の環境に置き換えてください。Zedの設定にプロジェクトパスが登録済みなら、--remote-root は省略できます。

最後にZedのSSHプロジェクトを一度切断し、開き直します。これはPDF用ポート転送を有効にするためです。

Claude Code自体はSSH先のターミナルで通常どおり動きます。

3. Zedで読めないPDFを1キーで読む

ここは正直に書きます。2026年8月23日時点のZedには内蔵PDFビューアがありませんBuilt-in PDF viewerのDiscussionでも、LaTeXや研究用途、特にremote developmentでの不便さが話題になっています。

ローカルPDFなら外部アプリで開けば済みます。しかしSSH先のPDFに Open With System は使えず、毎回ダウンロードするのは面倒です。

そこで、このキットは次の経路を自動化しました。

ZedからSSH先PDFをlocalhost限定経路でブラウザ表示する構成

使い方

  1. ZedのProject PanelでPDFを選ぶ、またはPDFを開いて「表示非対応」のタブを選ぶ
  2. ⌘⌥P を押す
  3. ローカルPDFは既定アプリ、SSH先PDFはブラウザで開く

LaTeXなどでPDFが再生成されると、ブラウザ側も自動で読み直します。日本語ファイル名とPDFのRange requestにも対応しています。

これはZedのタブ内にPDFを埋め込む拡張ではありません。しかし、SSH先から手動ダウンロードせず1キーで読めるため、研究・論文開発ではかなり実用的になりました。

PDF経路の安全性

  • サーバーはSSH先の 127.0.0.1 だけで待受
  • Zed公式のSSH port forwardingもローカルホストだけで待受
  • ランダムトークンがないHTTPアクセスは 403 Forbidden
  • 登録したworktree内の .pdf だけ配信
  • トークンはモード 600
  • アクセスログのトークンは [REDACTED]
  • クリップボード内容はログへ出さない

PDFのパスを検知するため、macOSのLaunchAgentがクリップボード変更を監視します。内容が絶対パスの .pdf と完全一致したときだけ動作します。常駐監視を使いたくない場合は次のように導入できます。

./install.sh --no-clipboard-agent

この場合、⌘⌥P によるPDF起動は使えません。

4. よく使うキー一覧

キー Zedでの動作
Enter ターミナルへ Ctrl+J を送る。Claude Codeでは改行
⌘ Enter ターミナルへ Enter を送り、Claude Codeでは送信
⌃ ⌘ I Claude Code CLI Taskを起動
⌘ ⌥ P PDFをローカル/remote previewで開く
⌘ ⌥ O Project Panelのローカルファイルを既定アプリで開く
⌘ ⌥ D Project PanelのSSH先ファイルをダウンロード

通常のシェルでは Ctrl+J も改行コードとして扱われるため、物理Enterで今までどおりコマンドを実行できます。

5. 困ったとき

Command+Enterで送れない

ZedのCommand Paletteから zed: open keymap を開き、Terminal contextに設定が入っているか確認してください。

過去にClaude Code側の設定を変更した場合は、Claude Codeで /keybindings を実行し、chat:submitchat:newline に競合がないか確認します。本キットはClaude側のファイルを自動修正しません。

SSH先PDFへ接続できない

インストール後にZedのSSHプロジェクトを開き直してください。ポート転送は再接続時に有効になります。

ポートが他のアプリと衝突している場合は変更できます。

./install.sh \
  --remote gpu \
  --remote-root gpu=/home/yourname/project \
  --port 48766

PDFを選んでも動かない

launchctl print gui/$UID/dev.humanophilic.zed-pdf-preview
tail -n 50 ~/Library/Logs/ZedPdfPreview.log
cat ~/.config/zed-pdf-preview/remotes.json

macOSから「バックグラウンド項目が追加されました」と通知される場合があります。これはPDF起動用LaunchAgentです。

アンインストール

./uninstall.sh

SSH先にも導入した場合:

./uninstall.sh --remote gpu

まとめ

今回うまくいった一番の理由は、Claude Codeのキーバインドを無理に変えず、ZedのTerminal contextだけで変換したことでした。

  • 普段のClaude Code CLIをそのまま使える
  • Enter で安全に複数行を書ける
  • ⌘Enter で明示的に送信できる
  • ローカルとSSH先で考え方が同じ
  • Zedが未対応のremote PDFも1キーで読める

Zed自体は、まだ日本語UIや内蔵PDFビューアなど発展途上の部分があります。それでも、CLI中心のAI開発環境としては、このキー操作だけでもかなり快適になりました。

バグや改善案があれば、GitHubのIssueへお願いします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?