1
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?

Claude CodeでEnter改行・Ctrl+E送信に変える

1
Posted at

はじめに

Claude Code の入力欄は、Enter を押すと即座にメッセージが送信されます。長いプロンプトを書いている途中で反射的に Enter を押してしまい、書きかけのまま送ってしまった経験がある方も多いのではないでしょうか。

この記事では、Enter を改行に、別のキーを送信に割り当てる方法を紹介します。

問題

Claude Code の既定のキー割り当ては次のようになっています。

キー 動作
Enter 送信(chat:submit
Ctrl+J 改行(chat:newline

多くのチャットアプリと同じ感覚で Enter を改行として使いたい場合、この割り当てを入れ替える必要があります。

ただし、送信キーに何を選ぶかで結果が変わります。安易に Ctrl+J を送信キーに割り当てても動作しません。理由は後述します。

解決方法

キーバインドファイルを作成する

Claude Code 内で /keybindings を実行すると、設定ファイル ~/.claude/keybindings.json が作成・オープンされます。

以下の内容を記述します。

{
  "$schema": "https://www.schemastore.org/claude-code-keybindings.json",
  "$docs": "https://code.claude.com/docs/en/keybindings",
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "enter": "chat:newline",
        "ctrl+e": "chat:submit"
      }
    }
  ]
}

これで次のようになります。

キー 動作
Enter 改行
Ctrl+E 送信

キーバインドファイルの変更は自動で検知されるため、Claude Code の再起動は不要です。

シェルから直接作成する場合は以下でも構いません。

cat > ~/.claude/keybindings.json << 'EOF'
{
  "$schema": "https://www.schemastore.org/claude-code-keybindings.json",
  "$docs": "https://code.claude.com/docs/en/keybindings",
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "enter": "chat:newline",
        "ctrl+e": "chat:submit"
      }
    }
  ]
}
EOF

送信キーに使ってはいけないキー

送信キーの選定には注意が必要です。以下のキーは避けてください。

Alt+Enter

多くのターミナルエミュレータ(Windows Terminal、GNOME Terminal など)が全画面表示の切り替えに割り当てています。ターミナル本体がキーを消費してしまうため、Claude Code まで届きません。tmux や Docker を経由している場合も同様です。

Ctrl+S / Ctrl+Q

端末のフロー制御(画面出力の一時停止・再開)に使われます。

Ctrl+B / Ctrl+A

それぞれ tmux と GNU screen のプレフィックスキーと衝突します。

Ctrl+C / Ctrl+D

Claude Code 側で中断・終了として固定されており、再割り当てできません。

Ctrl+Enter や Shift+Enter はどうか

どちらも「端末が Enter と区別して送れるかどうか」に依存します。Kitty キーボードプロトコル(修飾キー付きのキー入力を区別して送れる拡張仕様)に対応した端末であれば動作しますが、対応していない端末では Enter と同じバイト列が送られるため区別できません。

環境を選ばず確実に動かしたい場合は、Ctrl+E のような通常の制御文字を選ぶのが無難です。

動作確認

設定後、入力欄で Enter を押して改行され、Ctrl+E で送信されれば成功です。

うまくいかない場合は、押したキーがそもそもターミナルを通過して届いているかを確認できます。

cat -v

実行後にキーを押すと、届いていれば ^E のように表示されます。何も表示されなければ、ターミナルや多重化ツールの側でキーが消費されています。終了は Ctrl+C です。

おわりに

Enter を改行にする設定自体は数行の JSON で済みますが、送信キーの選定を誤ると「設定は正しいのに動かない」状態に陥ります。

ターミナルや多重化ツールに先に奪われるキーを避けるという一点を押さえておけば、迷わず設定できるはずです。

参考

JISOUのメンバー募集中!

プログラミングコーチングJISOUでは、新たなメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
興味のある方は、ぜひホームページをのぞいてみてください!
▼▼▼
https://projisou.jp

1
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
1
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?