Claude Media
Claude CodeのkeybindingFlavorとは — Ctrl+Wの単語削除が変わった理由

Claude CodeのkeybindingFlavorとは — Ctrl+Wの単語削除が変わった理由

Claude CodeのkeybindingFlavor設定はv2.1.261で非推奨になり、Ctrl+Wは常にreadline方式で単語区切りを削除します。設定ファイルに残っていても動作には影響しません。

Ctrl+Wでパスをひとまとめに消せたのに、別の環境では1単語ずつしか消えない。Claude Codeでこの食い違いに遭遇したら、原因はkeybindingFlavorという設定です。この設定はv2.1.261で非推奨になり、今はどの環境でも同じ方式に統一されています。

長いファイルパスやオプション付きのコマンドを入力していると、消したい範囲が末尾の1階層なのか、パス全体なのかで欲しいキー操作は変わります。同じキーでもバージョンによって消える範囲が違っていた、という食い違いの正体が今回扱う設定です。

Claude CodeのkeybindingFlavorとは

keybindingFlavorは、プロンプト入力欄の単語編集キーの挙動を切り替える設定でした。値は"classic"か"readline"の文字列で、スコープはAny file、既定値は未設定です。Any fileは、ユーザー設定・プロジェクト設定・ローカル設定・管理設定のどこに書いても読み込まれるという意味です。

v2.1.261以降、この設定は非推奨になり効果を持ちません。単語編集キーは常にreadline方式に統一されたためです。設定ファイルにkeybindingFlavorを書いても、Claude Codeはエラーを出さずに読み込みます。値が捨てられるだけで、設定ファイル自体は今も有効です。

あゆみ

keybindingFlavorの3つの節目

  1. v2.1.238(2026年8月20日)設定が追加される

    "readline"を指定すると、Ctrl+Wが直前の空白まで削除するようになりました。指定しない既定の"classic"は、従来どおり直前の単語だけを消します。

  2. v2.1.239(2026年8月21日)単語キーもBashに寄る

    "readline"指定時はAlt+Fが単語の末尾で止まり、Alt+Dがそこまで削除し、句読点が単語の区切りになりました。

  3. v2.1.261(2026年9月4日)readlineに一本化される

    単語編集キーはBashと同じ挙動で固定され、keybindingFlavorは何も変えなくなりました。

チームで共有しているプロジェクトの.claude/settings.jsonに残っていても、grepで見つけて慌てて削除する必要はありません。~/.claude.jsonはAny fileとは別の「Global config」というスコープで、設定を探すときはsettings.jsonとsettings.local.json(と管理設定)に絞れば足ります。

Ctrl+Wは今どんな単位で文字を消すか

readline方式に統一された結果、Ctrl+Wは句読点を無視して直前の空白まで一気に削除します。src/utils/foo.tsと入力した状態で1回押すと、パス全体が消えます。--flag=valueのような形も1回で消えます。bashのデフォルト挙動と同じ動きです。

消した文字列は保持されるため、Ctrl+Yで貼り戻せます。連続して貼り付け履歴を切り替えたいときはAlt+Yを使います。

この貼り付けバッファーはCtrl+W専用ではありません。行末まで消すCtrl+Kや行頭まで消すCtrl+Uで削除した文字列も同じCtrl+Yで復元できます。想定より広い範囲を消してしまったときは、Ctrl+Yで戻す以外にCtrl+_(またはCtrl+Shift+-)で直前の編集そのものを取り消す方法もあります。

長いコマンドを組み立てる途中で引数の一部だけを直したいとき、一括削除はむしろ邪魔になる場面もあります。そのときは単語単位のキーに持ち替えれば、消える範囲を自分で選べます。

くらべる

同じ「単語」でも区切りの基準が2種類ある

空白で区切る

Ctrl+W

句読点を無視して、直前の空白まで消します。

記号で区切る

Alt+B・Alt+F・Alt+D・Option+Delete・Ctrl+Backspace

英数字の連続を1単語とし、_・.・/で区切ります。

以前のkeybindingFlavorが担っていた「単語だけを消す」挙動は、別のキーとして残っています。macOSではOption+Delete、WindowsではCtrl+Backspaceです。設定を書き換える代わりにこちらを使えば、単語単位の削除に切り替えられます。

Alt+B・Alt+F・Alt+DをmacOSで使うには、ターミナル側でOptionキーをMetaとして送る設定が別途必要です。日本語や中国語のようにスペースを使わない文章でも、単語系のキーは1単語ずつ動き、消えます。

Windowsでは、BackspaceがCtrl+Backspaceとして読まれて単語ごと消えることがあります。Claude Codeは^Hとして届いたBackspaceをCtrl+Backspaceとして扱います。例外はTERM_PROGRAMがminttyのときと、TERMがcygwinのときです。

Backspaceを押すたびに単語ごと消えるなら、環境変数CLAUDE_CODE_BS_AS_CTRL_BACKSPACEを0にします。BackspaceとCtrl+Hが1文字ずつ消えるようになります。macOSやLinuxでCtrl+Backspaceが1文字しか消えないときは、同じ変数を1にします。詳しい手順はGit BashのBackspaceが単語ごと消える問題をClaude Codeで直すで扱っています。

キーボードの配列がキリル文字などのときは、Ctrl+Wの届き方がターミナルによって変わります。Kittyキーボードプロトコルでキーの物理位置を報告するターミナルなら、ロシア語配列でもCtrlとWキーの組み合わせがctrl+wになります。位置を報告しないターミナルでは、キーがキリル文字として届き、どのバインドにも一致しません。

Claude Codeの全ショートカット早見表には、行移動や履歴検索など他の操作もまとまっています。

削除系キーは何をどこまで消すか

入力欄の削除キーは、消す範囲と戻し方が少しずつ違います。Ctrl+K・Ctrl+U・Ctrl+W・Alt+Dで消した文字列は、すべてCtrl+Yで貼り戻せます。

キー消す範囲補足
Ctrl+W消す範囲直前の空白まで補足
Alt+D消す範囲現在の単語の末尾まで補足カーソルが単語の間にあると、次の単語の末尾まで
Ctrl+K消す範囲行末まで補足
Ctrl+U消す範囲行頭まで補足複数行の入力では、繰り返すと行をまたいで消える
Option+Delete(macOS)/Ctrl+Backspace(Windows)消す範囲直前の単語補足

macOSのCmd+Backspaceは、iTerm2やTerminal.appなどのターミナルがCtrl+Uに割り当てているため、行頭まで消えます。Alt+Fも同じ形で、現在の単語の末尾か、カーソルが単語の間にあるときは次の単語の末尾へ進みます。

Vimのword(単語)とWORD(空白区切り)と同じ構図

Claude CodeのVimモードには、これと同じ区別がもともとあります。文字種で区切る「word」と、空白だけで区切る「WORD」です。テキストオブジェクトのiw/aw(単語の内側/周囲)とiW/aW(空白区切りの内側/周囲)がその区別にあたります。dw・de・dbは前者の基準で単語単位を扱う操作です。

たとえばsrc/utils/foo.tsのfoo部分にカーソルがある状態で、diwはfooだけを削除し、diWはパス全体を削除します。Alt系のキーがword、Ctrl+WがWORDに相当すると考えると。

Vimのモーションキー自体はNORMALモード専用です。~/.claude/keybindings.jsonの他のアクションはClaude Codeの全体設定リファレンスにまとめています。Vim NORMALモードの操作一覧はClaude Code Vimモードの使い方とキー操作一覧を参照してください。

Ctrl+Wだけではない、readline由来のキーは他にもある

プロンプト入力を編集するCtrl+GにはCtrl+X Ctrl+Eという別の押し方があります。公式ドキュメントはこちらを「readline-nativeな割り当て」と明記しています。どちらもデフォルトのテキストエディターでプロンプトを開く操作で、readlineに慣れた手が自然に伸びるのはCtrl+X Ctrl+Eです。

コマンド履歴を遡るCtrl+Rも、readlineの逆方向インクリメンタルサーチと同じ発想の機能です。履歴検索の細かい挙動やフルスクリーン表示・Vimモードでの違いはCtrl+R履歴検索でClaude Codeの過去プロンプトを再利用するで扱っています。

keybindingFlavorを書いた設定ファイルの扱い

過去に次のような設定を書いていた場合、v2.1.261以降は値が読み込まれるだけで動作には反映されません。

{
  "keybindingFlavor": "readline"
}

この設定は効果を持たないため、消すか残すかは設定ファイルを整理するときに決めれば足ります。

利用形態別keybindingFlavor廃止の影響早見表

利用形態v2.1.261以降の挙動対処
"readline"を明示設定していたv2.1.261以降の挙動変化なし。既に望んでいた挙動が既定になっている対処設定は削除してよいが残してもよい
"classic"を明示設定していたv2.1.261以降の挙動無視され、Ctrl+Wは空白区切りに、Alt+F・Alt+DはBashと同じ単語末尾基準になる対処単語だけ消したいならOption+Delete(macOS)かCtrl+Backspace(Windows)を使う
未設定のままv2.1.260以前を使っているv2.1.261以降の挙動Ctrl+Wは単語のみ削除する旧挙動のまま対処v2.1.261へ更新するとCtrl+Wの消える範囲が空白区切りに広がる
bash・zshの操作感に慣れているv2.1.261以降の挙動追加設定なしで同じ挙動になる対処特に対応不要

分かれ目はv2.1.261をまたいだかどうかです。何も書いていなかった利用者も、更新するとCtrl+Wの消える範囲が広がります。社内のドキュメントや個人のメモに「readlineに設定すると使いやすくなる」という古い手順が残っている場合は、その手順がもう不要になっている点だけ押さえておけば足ります。

自分の環境で挙動を試す

手元のバージョンを確かめてから、入力欄で実際に2つのキーを比べると違いが一目で分かります。版はclaude --versionで確かめます。

手順

Ctrl+WとAlt+Bを見比べる手順

  1. 1

    バージョンを確かめる

    v2.1.261以降なら、keybindingFlavorの設定にかかわらず挙動は同じです。

  2. 2

    区切り文字入りの文字列を打つ

    入力欄にsrc/utils/foo.tsと打ちます。

  3. 3

    Ctrl+Wを1回押す

    文字列全体が消えれば、readline方式で動いています。

  4. 4

    Ctrl+Yで戻し、Alt+Bを繰り返す

    Ctrl+Yで貼り戻したあとAlt+Bを押し続けると、ts・foo・utils・srcの順にカーソルが止まります。

claude --version

まとめ

keybindingFlavorはv2.1.238からv2.1.260までの間だけ意味を持った設定で、今は書いても書かなくても同じです。単語だけを消したい場面では、設定を探すよりOption+DeleteかCtrl+Backspaceに持ち替えるのが近道です。"classic"の挙動に慣れた手は、設定ではなくキーで合わせ直します。

この記事を共有:XはてブLinkedIn