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でCtrl+Enterを送信, Enterを改行に変更する

1
Last updated at Posted at 2026-05-29

Claude CodeでCtrl+Enterを送信, Enterを改行に変更する

免責事項

  • 筆者は本記事の掲載内容を用いて行う一切の行為について, 何らの責任を負うものではありません.
  • 本記事を公開するにあたり, 掲載されている情報の正確性については万全を期しておりますが, 筆者は掲載内容の正確性・完全性・信頼性・最新性を保証するものではありません.
  • 筆者はリンク先サイトについて, その掲載情報の正確性・合法性等を保証するものではありません. リンク先サイトの利用によって生じた問題に対して筆者は責任を負いません.

はじめに

Claude Codeを使っていると, プロンプトの入力中に改行を入れたいだけなのに, Enterを押した瞬間に送信されてしまう, という経験をした方は多いと思う.
特に複数行のプロンプトを丁寧に書きたい場合, この挙動はストレスになる.

そこで本記事では, Claude Codeのキーバインドを以下のように変更する手順を紹介する.

操作 キー
送信 Ctrl+Enter
改行 Enter

なお, Windows Terminalを利用している場合, Ctrl+EnterがそのままだとClaude Codeへ届かないことがある.
そのため本記事では, Windows Terminal側の設定とClaude Code側の設定の両方を行う.

対象

本記事は以下のような方を対象とする.

  • Claude Codeで, Enterで送信されてしまうのを改行に変えたい人
  • Ctrl+Enterで送信するように設定したい人
  • Windows Terminal + WSL環境でClaude Codeを使っている人

環境

本記事は以下の環境を前提とする.

項目 内容
ターミナル Windows Terminal
シェル WSL (Ubuntu)
対象ツール Claude Code

PowerShellで直接Claude Codeを使う場合の手順も併記する.

アブストラクト

本記事の手順は大きく分けて以下の2ステップである.

  1. Windows Terminal側の設定
    Ctrl+Enterを, Claude Codeが区別できるエスケープシーケンス (\u001b[13;5u) として送るように割り当てる.
  2. Claude Code側の設定
    ~/.claude/keybindings.json で, ctrl+enter を送信, enter を改行に割り当てる.

最後に, 設定がうまくいかなかった場合の戻し方と, エスケープシーケンスの意味についての補足を記載する.

1. Windows Terminal側の設定

Windows Terminalの settings.json を開く.

通常版の場合.

notepad "$env:LOCALAPPDATA\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json"

Preview版の場合.

notepad "$env:LOCALAPPDATA\Packages\Microsoft.WindowsTerminalPreview_8wekyb3d8bbwe\LocalState\settings.json"

actions 配列の中に以下を追加する.

{
  "command": {
    "action": "sendInput",
    "input": "\u001b[13;5u"
  },
  "keys": "ctrl+enter"
}

すでに actions に他の要素がある場合は, 前の要素との間にカンマを入れる.

例.

"actions": [
  {
    "command": {
      "action": "copyToClipboard"
    },
    "keys": "ctrl+shift+c"
  },
  {
    "command": {
      "action": "sendInput",
      "input": "\u001b[13;5u"
    },
    "keys": "ctrl+enter"
  }
]

2. Claude Code側の設定

Claude Codeのキーバインド設定ファイルを開く.

WSLまたはLinuxの場合.

nano ~/.claude/keybindings.json

Windows PowerShellの場合.

notepad $env:USERPROFILE\.claude\keybindings.json

以下を設定する.

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

3. 反映

設定を反映させるため, Windows TerminalとClaude Codeを再起動する.

4. 戻し方

万が一送信できなくなった場合は, Claude Code側の設定ファイルを退避することで元に戻せる.

WSLまたはLinuxの場合.

mv ~/.claude/keybindings.json ~/.claude/keybindings.json.bak

Windows PowerShellの場合.

Rename-Item $env:USERPROFILE\.claude\keybindings.json keybindings.json.bak

補足: エスケープシーケンスの意味

\u001b[13;5u は, Ctrl+EnterをClaude Codeへ区別して送るためのエスケープシーケンスである.

分解すると以下のようになる.

\u001b [ 13 ; 5 u
部分 意味
\u001b ESC文字
[ CSIの開始
13 Enterキーが送る文字コード, CR
; 区切り
5 Ctrl修飾キー
u CSI u形式の終端

CSIは Control Sequence Introducer の略である.

CSI u 形式では, 次の順序でキー入力を表す.

<キーコード> ; <修飾キー> u

今回の 13;5u は, キーコード13のEnterCtrl修飾キー を付けた入力を表す.

つまり実体は以下である.

ESC [ 13 ; 5 u

Windows Terminal側でCtrl+Enterをこの文字列として送り, Claude Code側で ctrl+enterchat:submit として扱うことで, 目的のキーバインドが実現される.

最後に

本記事についてお気づきの点がございましたら, ご連絡いただけると幸いです.

参考文献

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?