SSD Nodes Learn Hosting plans →
ガイド Matt Connor著者 Matt Connor

Claude Code で日本語入力(IME)が崩れる原因と直し方

Claude Code のプロンプトで、変換中の文字が消える、二重になる、候補が変な位置に出る、Enter で途中送信される。原因と、Ctrl+G で外部エディタに逃がす確実な方法、Windows と Linux の症状別の対処をまとめました。

結論:まず Ctrl+G でエディタを開く

Claude Code のプロンプトで日本語入力(IME)が崩れるなら、まず Ctrl+G を押してください。入力中のプロンプトが、いつも使っているテキストエディタで開きます。vim や VS Code の中なら、かな漢字変換は普段どおりに動きます。保存してエディタを閉じると、書いた文章がプロンプトに戻ります。

この方法は、どのバグが直ったかに左右されません。だから最初に覚える価値があります。そのあとで、症状ごとに環境と対処を並べます。

この記事の issue の状態は、2026年10月3日に GitHub の anthropics/claude-code で確認したものです。CHANGELOG は同じ日の最新版 v2.1.288 まで読みました。自分の版は claude --version で確認できます。この記事の内容と版が離れている場合は、CHANGELOG を見比べてください。

なぜ bash や vim では打てるのに Claude Code ではだめなのか

原因はひとつです。理解しておくと、この記事に書いていない症状にも対応できます。

IME は、確定する前の文字を「未確定文字列」(preedit)として手元に持ちます。ローマ字で nihongo と打つと、まず「にほんご」が未確定のまま表示されます。Space で変換し、Enter で確定して、はじめてアプリに文字が渡ります。bash や vim は、この流れを前提に動いています。

Claude Code の入力欄は違います。Claude Code の画面は Ink という React ベースの TUI(terminal user interface、端末の中に描く画面部品)でできています。Ink は端末を raw モード(1キーごとにアプリへ渡すモード)にして、キーを直接読みます。issue #22853 の報告者は、Ink の useInput が1打ごとにキーを処理し、IME の変換が終わるのを待たないと説明しています。そのため、変換途中の文字が消えたり、二重に入ったりします。

これを裏づける報告が #46446 です。Ubuntu の gnome-terminal と fcitx + Mozc の組み合わせで、bash や vim は正常に入力できました。壊れたのは Claude Code のプロンプトだけでした。つまり、IME そのものが壊れているわけではありません。IME と、キーを直接読む入力欄の組み合わせで起きます。

この仕組みが続く限り、個別の issue が閉じられても、同じ種類の症状は別の形で出ます。Claude Code 自体の全体像は、Claude Code とは何か、何ができるのかをまとめた記事で確認できます。

対処1:Ctrl+G で外部エディタに日本語を書く

公式の interactive-mode リファレンス(2026年10月3日に確認)には、Ctrl+G または Ctrl+X Ctrl+E で「Open in default text editor」と書かれています。Ctrl+X Ctrl+E は bash の readline と同じキー割り当てです。どちらを押しても同じ動きです。

使い方は次のとおりです。

  1. Claude Code のプロンプトで Ctrl+G を押す。
  2. 開いたエディタで、IME を使って普段どおり日本語を書く。
  3. 保存してエディタを閉じる。
  4. プロンプトに文章が戻っていることを確認して、Enter で送信する。

開くエディタは、環境変数 VISUAL か EDITOR で決まります。今の設定は次のコマンドで確認できます。

echo "VISUAL=$VISUAL EDITOR=$EDITOR"

何も表示されないか、使いたくないエディタが出た場合は、シェルの設定に書きます。vim を使う例です。

echo 'export VISUAL=vim' >> ~/.bashrc
source ~/.bashrc

zsh を使っている場合は、~/.bashrc を ~/.zshrc に置き換えてください。VS Code で書きたい場合は export VISUAL="code --wait" にします。--wait が必要な理由は、code コマンドがウィンドウを開いた直後に終了するからです。--wait がないと、Claude Code は何も書いていないファイルをすぐに読み戻します。--wait を付けると、タブを閉じるまでコマンドが終わりません。

設定を変えたら、Claude Code を起動し直してから Ctrl+G を押してください。環境変数はプロセスの起動時に引き継がれるので、起動中のセッションには反映されません。

返信を書くときに Claude の直前の回答を見たい場合は、/config で Show last response in external editor をオンにします。エディタの先頭に直前の回答が # 付きのコメントとして入ります。保存すると、そのコメント部分は Claude Code が取り除きます。また v2.1.285 の CHANGELOG には、行番号を受け取れるエディタでは、プロンプトのカーソルがある行で開くようになったと書かれています。

症状1:変換中に文字が消える、二重になる

環境:#22853 は Windows 11 の Windows Terminal で報告されました。報告者はベトナム語入力(Unikey)を使っていましたが、日本語のローマ字入力も同じ問題の対象に挙げています。この issue は 2026年2月6日に completed で閉じられました。

しかし、その後も似た報告が続いています。#46446(Linux、2026年4月)は not planned で閉じられました。Windows の韓国語入力の #65519 と #68952(どちらも2026年6月)も not planned です。#68952 の報告者は v2.1.179 で起きたと書いています。

対処:Ctrl+G で外部エディタに書いてください。自分の版で直っているか試したい場合は、短い文を1行だけ打って、消えたり二重になったりしないかを見ます。

症状2:変換候補のウィンドウが変な場所に出る

環境:#33532 は macOS の iTerm2 と Ghostty、Claude Code v2.1.74 で、候補ウィンドウがカーソルの位置ではなく入力行の左端に出ると報告しました。2026年4月13日に duplicate かつ not planned で閉じられています。Windows では #70955 が、ATOK の候補ウィンドウが入力欄に重なると報告しました。環境は Windows Terminal 1.24 と v2.1.191 で、2026年9月15日に not planned で閉じられました。

#70955 の報告者は、Ink が実際の端末カーソルの位置を OS の IME に伝えていないことが原因だと見ています。Claude Code が画面に描いているカーソルと、IME が見ている端末カーソルが別の場所にある、ということです。候補位置の改善を求めた #19207 は 2026年2月6日に completed で閉じられましたが、その後の #33532 と #70955 で同じ症状が報告されています。

対処:候補が入力中の文字に重なって読めないなら、Ctrl+G で外部エディタに書くのが確実です。

症状3:VS Code 拡張で、変換確定の Enter で送信される

環境:まず、どこで打っているかを確認します。VS Code には2つの入力場所があります。1つは Claude Code 拡張機能のチャット欄です。もう1つは、VS Code の統合ターミナルで claude を起動した場合の端末画面です。

拡張機能のチャット欄では、#8405 が報告されました。macOS、v2.0.0 で、変換を確定する Enter でプロンプトが送信されるという内容です。この issue は 2025年10月6日に completed で閉じられています。端末の CLI 側では、#48257 が同じ種類の問題を報告しました。こちらは 2026年5月24日に not planned で閉じられています。

対処:拡張機能のチャット欄で起きるなら、拡張機能を最新版に更新してから試してください。統合ターミナルの claude で起きるなら、それは端末側の TUI の問題です。Ctrl+G で外部エディタに書いてください。なお #70110 の報告者は、拡張機能の入力欄では IME が普通に使えると書いています。端末でどうしても日本語が打てない場合は、拡張機能のチャット欄を使う方法もあります。

症状4:Windows 11 の新しい Microsoft IME で何も入力できない

環境:#71495 は、Windows 11 Pro、Windows Terminal(PowerShell 7.5.5)、Claude Code v2.1.193 で、新しい Microsoft IME では日本語がまったく入らないと報告しました。以前のバージョンの Microsoft IME では入力できた、とも書いています。

この issue の状態には注意が必要です。2026年6月26日に、報告者本人が開いてから約2時間半で閉じました。GitHub 上の状態は completed ですが、修正のリリースを示すコメントはありません。重複候補として自動で挙げられた #65519、#68952、#70110 は、どれも not planned で閉じられています。v2.1.288 までの CHANGELOG にも、IME の修正は見つかりませんでした。だから、2026年10月3日の時点で「直った」とは言えません。

対処:まず新しい IME のまま、自分の版で試してください。日本語が何も入らない場合だけ、以前のバージョンの IME に切り替えます。

  1. タスクバーの「あ」または「A」のアイコンを右クリックし、「設定」を開く。
  2. 「全般」を開く。
  3. 一番下の「互換性」にある「以前のバージョンの Microsoft IME を使う」をオンにする。

切り替えたら Windows Terminal を開き直し、claude で日本語が入るか確認してください。この切り替えは Windows 全体に効くので、ほかのアプリの変換の動きも変わります。

症状5:Linux の fcitx や ibus + Mozc で未確定文字が消える

環境:#46446 は、Ubuntu の gnome-terminal と fcitx + Mozc で報告されました。症状は2つあります。1つ目は、かなを打って Space で変換しようとすると、未確定の文字が消えて候補が出ないことです。2つ目は、Mozc を全角数字の設定にすると、数字が何も入らないことです。この issue は 2026年5月24日に not planned で閉じられました。ibus + Mozc での動きは、この記事では確認していません。

対処:Linux には Windows のような切り替えスイッチがありません。Ctrl+G で外部エディタに書いてください。#46446 でも、同じ fcitx + Mozc の設定で vim の中は正常に入力できたと報告されています。

対処2:複数行は Shift+Enter か Ctrl+J

日本語の指示は長くなりがちです。Claude Code では Enter が送信なので、改行には別のキーを使います。公式の terminal-config ドキュメント(2026年10月3日に確認)には、Ctrl+J と、\ を打ってから Enter の2つが、どの端末でも設定なしで使えると書かれています。

Shift+Enter は端末によって違います。iTerm2、WezTerm、Ghostty、Kitty、Warp、Apple Terminal、Windows Terminal では設定なしで使えます。VS Code の統合ターミナルでは、Claude Code の中で /terminal-setup を1回実行します。成功すると Installed VSCode terminal Shift+Enter key binding と表示されます。gnome-terminal と JetBrains の IDE では Shift+Enter は使えないので、Ctrl+J を使ってください。

tmux の中で動かす場合は、外側の端末が対応していても Shift+Enter が送信になります。tmux が Shift+Enter と Enter を区別できないからです。~/.tmux.conf に次の行を足し、tmux source-file ~/.tmux.conf で読み込み直してください。

set -g allow-passthrough on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'

VPS 上の Claude Code に SSH で入力する場合

VPS で Claude Code を動かし、手元のパソコンから SSH で入る使い方も多いと思います。このとき IME が動いているのは、手元のパソコンの OS と端末です。サーバー側には IME はありません。サーバーに届くのは、手元の端末が送る文字のバイト列です。

この構成で、ここまでの症状がどう出るかは、この記事では試していません。確実に言えるのは、サーバー側の文字コードが UTF-8 でないと、日本語が正しく扱えないことです。次のコマンドで確認します。

locale
locale charmap

locale charmap が UTF-8 と表示すれば問題ありません。ANSI_X3.4-1968 と表示されたら、ロケールが C や POSIX のままで、UTF-8 になっていません。その場合は LANG を設定します。

echo 'export LANG=C.UTF-8' >> ~/.bashrc
source ~/.bashrc
locale charmap

locale が Cannot set LC_CTYPE to default locale: No such file or directory と表示する場合もあります。これは、手元から送られたロケール名(たとえば ja_JP.UTF-8)がサーバーに入っていないという意味です。Ubuntu なら sudo locale-gen ja_JP.UTF-8 で追加できます。

Ctrl+G を SSH 越しに使うと、開くエディタはサーバー上の vim や nano です。それでも、画面に出るのは手元の端末なので、IME は手元で動きます。なお #19076 は、Windows の PowerShell から SSH で入った環境(v2.1.12)で、Ctrl+G を押しても nano や micro が表示されないと報告しました。2026年2月27日に not planned で閉じられています。同じ症状が出たら、サーバー側で echo "VISUAL=$VISUAL EDITOR=$EDITOR" を実行し、エディタの設定を確認してください。

接続が切れても作業を続けたいなら、tmux の中で Claude Code を動かすのが基本です。手順はVPS の tmux で Claude Code を動かし続ける方法にまとめています。前の節の ~/.tmux.conf の設定も、この構成で必要になります。

Claude の返答を日本語にしたい場合

入力の問題とは別の話です。返答の言語は、設定の language キー(値は "japanese")で指定します。

FAQ

Claude Code で日本語を打つと文字が消えたり二重になったりするのはなぜですか?

Claude Code の入力欄は Ink という React ベースの端末画面で、キーを1つずつ直接読みます。issue #22853 の報告者によれば、IME の変換が終わる前にキーを処理するため、変換途中の文字が失われます。同じ IME が bash や vim では正常に動くことも #46446 で報告されています。確実な回避策は、Ctrl+G でプロンプトを外部エディタで開き、そこで日本語を書いて保存することです。

Windows 11 で Claude Code に日本語がまったく入力できません。どうすればいいですか?

新しい Microsoft IME を使っている場合に起きると、#71495(Claude Code v2.1.193)で報告されています。タスクバーの「あ」アイコンを右クリックし、「設定」、「全般」と開いて、「以前のバージョンの Microsoft IME を使う」をオンにすると入力できたと報告者は書いています。2026年10月3日の時点で、v2.1.288 までの CHANGELOG に IME の修正は見つかっていません。切り替えたくない場合は、Ctrl+G で外部エディタに書く方法が使えます。

変換を確定する Enter でプロンプトが送信されてしまいます。

VS Code の Claude Code 拡張機能のチャット欄なら、#8405 として報告され、2025年10月6日に completed で閉じられています。拡張機能を最新版に更新してください。端末で claude を動かしている場合は TUI 側の問題で、#48257 は 2026年5月24日に not planned で閉じられています。その場合は Ctrl+G で外部エディタに書いてください。エディタの中では、Enter でプロンプトが送信されることはありません。

VPS で動かしている Claude Code にも日本語で指示できますか?

Claude Code は日本語の指示を扱えます。SSH で入る場合、IME は手元のパソコンで動き、サーバーには手元の端末が送った文字が届きます。サーバー側で locale charmap を実行し、UTF-8 と表示されることを確認してください。ANSI_X3.4-1968 と出る場合は、~/.bashrc に export LANG=C.UTF-8 を書いて読み込み直します。