Claude CodeをCursorの統合ターミナルで使うと出る不具合 — Shift+Cmd+Fと「In」タグ
CursorのターミナルでClaude Codeを動かすと、Shift+Cmd+Fで「f」が入力される症状と、タブを閉じても「Inファイル名」のタグが消えない症状が報告されています。切り分けと逃げ道を示します。
Cursorの統合ターミナルでclaudeを動かすと、macOSでは2つの症状がGitHubに報告されています。Shift+Cmd+Fを押すとグローバル検索が開かず「f」が入力される症状と、タブを閉じてもプロンプトの「Inファイル名」タグが消えない症状です。どちらも原因の説明や修正は出ておらず、報告にコメントも付いていません。この記事では、症状ごとの切り分け方と、docsに書かれている範囲で試せる逃げ道をまとめます。
2つの報告の要点
| 項目 | Shift+Cmd+Fが「f」になる | 「Inファイル名」タグが残る |
|---|---|---|
| issue | Shift+Cmd+Fが「f」になる#96177 | 「Inファイル名」タグが残る#94217 |
| 報告時のバージョン | Shift+Cmd+Fが「f」になるClaude Code 2.1.280 / Cursor 3.21.18 | 「Inファイル名」タグが残るClaude Code 2.1.270 |
| OS | Shift+Cmd+Fが「f」になるmacOS(platform:macosラベル) | 「Inファイル名」タグが残るmacOS(platform:macosラベル) |
| 状態 | Shift+Cmd+Fが「f」になるopen | 「Inファイル名」タグが残るopen |
| ラベル | Shift+Cmd+Fが「f」になるbug / area:tui | 「Inファイル名」タグが残るbug / area:ide |
ラベルが違う点は手がかりになります。前者はTUI(ターミナル上の画面)、後者はIDE連携の領域として分類されています。別々の原因で起きている可能性が高く、片方の回避策がもう片方に効くとは限りません。
症状1:Shift+Cmd+Fで「f」が入力される
報告(#96177)の内容は次のとおりです。Cursorでターミナルを開いてclaudeを起動し、Shift+Cmd+Fを押します。本来のCursorではグローバル検索パネルが開くはずですが、Claude Codeの入力欄に「f」が出力されます。
同じ報告者は、次の環境では起きていないと書いています。
- 通常のターミナル
- VS Codeのターミナルで動かすClaude Code
- Antigravityのターミナルで動かすClaude Code
Cursorに限った症状だという点が、この報告の核心です。
Claude Code側のキーバインドでは直せない
「Claude Codeのkeybindings.jsonでCmdを使うキーを割り当て直せば避けられるのでは」と考えたくなります。keybindingsのdocsによると、cmd(super)の修飾キーが検出できるのは、Kitty keyboard protocolやxtermのmodifyOtherKeysのようにSuper修飾を報告できるターミナルに限られます。ほとんどのターミナルはこの修飾を送らないため、ctrlやmetaを使うバインドが推奨されています。
つまり、Cmd+Shift+Fがエディタに渡るか端末に流れるかは、Claude Codeの手前、Cursorとターミナルの境界で決まる話です。Claude Codeの設定ファイルで調整できる範囲の外にあります。
Claude Code側のバインドを自分で足すなら、docsの勧めに沿ってctrlかmeta(macOSではOption)を使います。keybindings.jsonの形は次のとおりです。ctrl+eとctrl+sはdocsの例で、自分の割り当てに置き換えて使います。
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+s": null
}
}
]
}nullを指定するとその既定バインドを外せます。Cmdを使わない割り当てなら、Super修飾を送れないCursorのターミナルでも同じように動きます。ただし、これでShift+Cmd+Fの症状が直るわけではありません。Claude Codeの内側で使うキーの逃げ道を作るだけです。
手元で確かめる順番
次の流れで、症状がどこで起きているかを絞れます。
Shift+Cmd+Fの症状を切り分ける
- Qclaudeを起動する前のシェルでも、Shift+Cmd+Fで「f」が入力されますか?答えがいいえのとき答えがはい
Claude Codeより前の問題です。Cursor側のショートカット設定かターミナル設定を疑います。
- Q同じマシンのVS Codeのターミナルでも、同じ症状が出ますか?答えがいいえのとき答えがはい
報告と同じくCursor固有の症状です。CursorとClaude Codeのバージョンを控えて、#96177に情報を足せます。
Cursor以外でも出るなら別の原因です
使っているターミナルやキーボード設定を含めて、新しい報告として起票する価値があります。
確認用にClaude Codeのバージョンを控えるコマンドは次のとおりです。
claude --version報告の環境はClaude Code 2.1.280です。それより新しいバージョンで再現するかどうかが、最も価値のある情報になります。
症状2:タブを閉じても「Inファイル名」タグが残る
報告(#94217)では、Cursorのターミナル上のClaude Code(2.1.270、macOS)で、ファイルを開くとプロンプトに> ◫ In <ファイル名>と表示されます。そのファイルのタブを閉じてもタグは残り、バックスペースでも消えず、/clearを実行しても消えないと書かれています。
このタグが何なのか
VS Code向けのdocsには、Claude Codeがエディタで開いているファイルを自動で認識し、プロンプトボックスにその名前を表示するとあります。さらに、IDEに接続している間、CLIは現在の選択範囲とアクティブファイルのパスを、送信するプロンプトごとにコンテキストへ含めます。
「Inファイル名」のタグは、この開いているファイルの表示に当たるものと読めます。Cursorのターミナルは、VS Codeの統合ターミナルと同系統の仕組みでIDEに接続しているとみられますが、Cursorでの扱いまでdocsが明記しているわけではありません。
docsにある逃げ道(Cursorでの効果は未報告)
どちらも、症状の原因を直す方法ではありません。コンテキストの入り口を止めるための設定です。
| 手段 | 内容 | 出典のdocsが書く条件 |
|---|---|---|
| Attach Open File設定を切る | 内容開いているファイルを自動で含めなくする | 出典のdocsが書く条件Claude Code v2.1.271以降。統合ターミナルでclaudeを動かす場合にも適用 |
CLAUDE_CODE_AUTO_CONNECT_IDE=false | 内容IDEの統合ターミナルでの自動接続を止める | 出典のdocsが書く条件環境変数がautoConnectIde設定より優先される |
Attach Open Fileはdocs上claudeCode.attachOpenFileという設定名で、バージョン条件がv2.1.271以降です。#94217の報告はv2.1.270なので、この設定がまだ使えないバージョンでの報告だったことになります。v2.1.271以降で同じ症状が出るかは、報告の中では語られていません。
自動接続を止める場合は、起動時に環境変数を付けます。
CLAUDE_CODE_AUTO_CONNECT_IDE=false claudeIDE接続を切ると、diffをエディタで開く機能や選択範囲の共有も止まります。タグの残留に困っていて、それらを使っていないときの選択肢です。
設定ファイルのautoConnectIdeでは止まらない
環境変数の代わりにautoConnectIdeを設定ファイルに書けば済みそうに見えますが、settingsのリファレンスによると、このキーが決めるのは外部ターミナルからの自動接続です。falseにしても、VS CodeやJetBrainsのターミナルの中、または--ideを付けた起動では接続されます。キーの保存先もsettings.jsonではなく~/.claude.jsonで、settings.jsonに書いても無視されます。
{
"autoConnectIde": false
}統合ターミナルで接続を止めたいときの手段は、起動ごとのCLAUDE_CODE_AUTO_CONNECT_IDE=falseです。毎回付けたくない場合は、シェルのエイリアスにする方法があります。なおdocsに書かれているのはVS CodeとJetBrainsで、Cursorでこの設定が同じように働くかは明記がありません。
接続の状態を見て、手動でつなぎ直す
外部ターミナルで動かしているclaudeをVS Code系のエディタにつなぐには、Claude Code内で/ideを実行します。タグの残留を調べるときは、接続している間だけ「開いているファイル」のパスが各プロンプトに載る、という前提で切り分けられます。
タグが消えない症状の切り分け順
「In ファイル名」タグが残るときの順番
- Q開いているファイルのタブを閉じても、プロンプトのタグは残りますか?答えがいいえのとき答えがはい
タブを閉じて消えるなら、報告の症状は再現していません。
- Q`/clear`を実行してもタグは残りますか?答えがいいえのとき答えがはい
報告(#94217)では
/clearでも消えなかったとあります。消えるなら報告と違う挙動なので、その差を書き添えると手がかりになります。 - Q`CLAUDE_CODE_AUTO_CONNECT_IDE=false claude`で起動すると、タグは出なくなりますか?答えがいいえのとき答えがはい
出なくなるなら、原因はIDE接続の側です。出続けるなら、IDE連携とは別の層を疑います。
接続を切ると消えるなら、IDE連携側の症状です
その結果とclaude --version、Cursorのバージョンを#94217に足せます。
避けたい思い込み
2つの症状を混同すると、時間を失いやすくなります。
- ショートカットの横取りは、Claude Codeの設定では直せない層の問題
- タグの残留は、IDE連携が持つ「開いているファイル」の情報の扱いに関係する症状
/terminal-setupは、CursorでShift+Enterのバインドとターミナルの描画設定を書き込む。Shift+Cmd+Fには触れない
最後の点は、/terminal-setupを実行済みでも症状1が出る理由の整理になります。docsによると、CursorではShift+Enterのキーバインドを書き込み、terminal.integrated.gpuAccelerationを"off"にします。ショートカットの横取りとは別の設定です。
報告に添えると役立つ情報
どちらのissueも、報告は短く、コメントも付いていません。同じ症状に当たったら、次の情報があると再現の手がかりになります。
claude --versionの出力とCursorのバージョン- macOSのバージョンとキーボード配列
- ファイルを開いた直後、タブを閉じた直後、
/clear後のそれぞれのプロンプトの様子 - VS Codeのターミナルで同じ操作をしたときの違い
CLAUDE_CODE_AUTO_CONNECT_IDE=falseで起動したときの変化
CursorとClaude Codeの併用そのものを知りたい場合は、CursorとClaude Codeの併用の入れ方にまとめています。カーソル表示の環境変数を扱ったCLAUDE_CODE_NATIVE_CURSORの解説は、ターミナルの描画に関する設定の話で、この記事のキー入力やIDE接続の症状とは別の層です。ターミナル側の挙動が原因になる似た例は、Warpターミナルで使うと出る不具合でも扱っています。
まとめ
Cursorの統合ターミナルで起きる2つの症状は、どちらもopenのままで、修正されたバージョンも示されていません。ショートカットの横取りはClaude Codeの手前の層の話なので、Cursorのキー設定とターミナル環境を先に疑う価値があります。タグの残留は、IDE連携の入り口(Attach Open FileとIDE自動接続)を止めて様子を見るのが、docsから導ける現実的な一手です。どちらも、新しいバージョンでの再現結果を#96177と#94217に足すことが、最も情報の価値が高い行動になります。
参照した一次ソース
この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。