🗄️

Claude Code × Cursor × WSL で Shift+Enter が改行にならなかった話(備忘録)

に公開

Claude Code を Cursor から使っているときに、

  • /terminal-setup を実行しているのに
  • Shift+Enter が改行にならず、そのまま送信されてしまう

というハマり方をしたので、備忘録として残しておきます。

環境

  • ホスト
    • Windows 11
    • Cursor(Windows アプリ)
  • 開発環境
    • WSL2 上の Ubuntu
    • Cursor の統合ターミナルから、WSL に接続
    • WSL 側に Claude Code(claude)をインストール済み

先に結論

イメージとしては、こんな構成です。

上記の構成の場合、

  • キー入力を見ているのは Windows 側の Cursor
    • このキー入力設定を変えないと Claude Code へは届かない
  • /terminal-setup が書き換えているのは WSL 側の設定ファイル

というズレが原因で、Shift+Enter のキーバインドが効いていなかった、ということでした。


以下、作業メモです。

やったこと

Claude Code のプロンプト側で、公式ドキュメントどおり /terminal-setup を実行しました。

https://code.claude.com/docs/ja/terminal-config

> /terminal-setup 
  ⎿  Installed Cursor terminal Shift+Enter key binding
     See /home/{username}/.config/Cursor/User/keybindings.json

WSL 上でファイルを確認すると、ちゃんと設定は入っています。

$ cat /home/{username}/.config/Cursor/User/keybindings.json
[
    {
        "key": "shift+enter",
        "command": "workbench.action.terminal.sendSequence",
        "args": {
            "text": "\u001b\r"
        },
        "when": "terminalFocus"
    }
]

これで動きそうなのですが、
実際には Shift+Enter を押しても改行されず、そのまま送信される 状態でした。

原因

  • 実際にキーボード入力を受け取っているのは、Windows の Cursor

    • C:\Users\<ユーザー名>\AppData\Roaming\Cursor\User\keybindings.json を見ている
  • /terminal-setup が「書き換えましたよ」と教えてくれるパスは WSL 側

    /home/{username}/.config/Cursor/User/keybindings.json
    

    ここを書き換えても、Windows 側 Cursor からは読まれていない ので、
    Shift+Enter のキーバインドが有効にならない、という状況でした。

対処方法

以下の手順で解決しました。

  1. Windows 側の Cursor で Keyboard Shortcuts (JSON) を開く

    • Ctrl + KCtrl + S でキーボードショートカット画面を開く
    • 右上の {} アイコン(「Open Keyboard Shortcuts (JSON)」)をクリック
  2. 開いた keybindings.json に、以下の設定を追記

    {
        "key": "shift+enter",
        "command": "workbench.action.terminal.sendSequence",
        "args": {
            "text": "\u001b\r"
        },
        "when": "terminalFocus"
    }
    
  3. Cursor を再起動

  4. 統合ターミナルから WSL 上で claude を起動

  5. Shift+Enter を押す → きちんと改行されることを確認

ポイントは、WSL 側ではなく、Windows 側 Cursor の設定ファイルに書く という点でした。


同じように

  • Windows + WSL
  • Cursor から WSL のターミナルに接続
  • Claude Code を CLI で使っている

という構成でハマった方の参考になれば幸いです。

GitHubで編集を提案
株式会社ジード テックブログ

Discussion