4 4
5# Claude Code 用にターミナルを設定する5# Claude Code 用にターミナルを設定する
6 6
7> Shift+Enter で改行を修正し、Claude が完了したときにターミナルベルを取得し、tmux を設定し、カラーテーマを一致させ、Claude Code CLI で Vim モードを有効にします。7> Shift+Enter で改行を挿入する、Claude の処理完了時にターミナルベルを鳴らす、tmux を設定する、カラーテーマを合わせる、Claude Code CLI で Vim モードを有効にする方法を説明します。
8 8
9Claude Code はどのターミナルでも設定なしで動作します。このページは、特定の動作が期待どおりに機能していない場合のためのものです。以下から症状を見つけてください。すべてが既に正しく感じられる場合は、このページは必要ありません。9Claude Code はターミナル設定なしで任意のターミナルで動作します。このページは、特定の動作が期待通りに機能していない場合のためのものです。以下から症状を見つけてください。すべてが既に正常に動作している場合は、このページは不要です。
10 10
11* [Shift+Enter が改行を挿入する代わりに送信する](#enter-multiline-prompts)11* [Shift+Enter が改行を挿入する代わりに送信する](#enter-multiline-prompts)
12* [macOS で Option キーショートカットが機能しない](#enable-option-key-shortcuts-on-macos)12* [macOS でオプションキーのショートカットが機能しない](#enable-option-key-shortcuts-on-macos)
13* [Claude が完了したときに音またはアラートがない](#get-a-terminal-bell-or-notification)13* [Claude の処理完了時に音またはアラートが出ない](#get-a-terminal-bell-or-notification)
14* [Claude Code を tmux 内で実行している](#configure-tmux)14* [Claude Code を tmux 内で実行している](#configure-tmux)
15* [表示がちらつくか、スクロールバックがジャンプする](#switch-to-fullscreen-rendering)15* [Windows でバックスペースが単語全体を削除する](#fix-backspace-deleting-a-whole-word-on-windows)
16* [表示がちらつくまたはスクロールバックがジャンプする](#switch-to-fullscreen-rendering)
16* [プロンプトで Vim キーを使いたい](#edit-prompts-with-vim-keybindings)17* [プロンプトで Vim キーを使いたい](#edit-prompts-with-vim-keybindings)
17 18
18このページは、ターミナルが Claude Code に正しい信号を送信するようにすることについてです。Claude Code 自体が応答するキーを変更するには、代わりに [キーバインディング](/ja/keybindings) を参照してください。19このページは、ターミナルが Claude Code に正しい信号を送信するようにするためのものです。Claude Code 自体が応答するキーを変更するには、代わりに [キーバインディング](/docs/ja/keybindings) を参照してください。
19 20
20<h2 id="enter-multiline-prompts">21<h2 id="enter-multiline-prompts">
21 複数行のプロンプトを入力する22 複数行のプロンプトを入力する
22</h2>23</h2>
23 24
24Enter キーを押すとメッセージが送信されます。送信せずに改行を追加するには、Ctrl+J を押すか、`\` を入力してから Enter キーを押します。どちらもセットアップなしですべてのターミナルで機能します。25Enter キーを押すとメッセージが送信されます。送信せずに改行を追加するには、Ctrl+J を押すか、`\` を入力してから Enter を押してください。どちらの方法もセットアップなしですべてのターミナルで機能します。
25 26
26ほとんどのターミナルでは Shift+Enter も押すことができますが、サポートはターミナルエミュレータによって異なります。27ほとんどのターミナルでは Shift+Enter を押すこともできますが、サポートはターミナルエミュレータによって異なります。
27 28
28| ターミナル | Shift+Enter で改行 |29| ターミナル | 改行用の Shift+Enter |
29| :---------------------------------------------------------------- | :-------------------------------- |30| :---------------------------------------------------------------- | :-------------------------------- |
30| Ghostty、Kitty、iTerm2、WezTerm、Warp、Apple Terminal、Windows Terminal | セットアップなしで機能 |31| Ghostty、Kitty、iTerm2、WezTerm、Warp、Apple Terminal、Windows Terminal | セットアップなしで機能 |
31| VS Code、Cursor、Devin Desktop、Alacritty、Zed | 1 回 `/terminal-setup` を実行 |32| VS Code、Cursor、Devin Desktop、Alacritty、Zed | 1 回 `/terminal-setup` を実行 |
32| gnome-terminal、PyCharm や Android Studio などの JetBrains IDE | 利用不可。Ctrl+J または `\` の後に Enter を使用 |33| gnome-terminal、PyCharm や Android Studio などの JetBrains IDE | 利用不可。Ctrl+J または `\` の後に Enter を使用 |
33 34
34VS Code、Cursor、Devin Desktop、Alacritty、Zed の場合、`/terminal-setup` は Shift+Enter およびその他のキーバインディングをターミナルの設定ファイルに書き込みます。既存のバインディングはそのまま保持されます。`VSCode terminal Shift+Enter key binding already configured` などのメッセージが表示された場合は、変更は加えられていません。tmux または screen 内ではなく、ホストターミナル内で直接 `/terminal-setup` を実行してください。ホストターミナルの設定に書き込む必要があるためです。35VS Code、Cursor、Devin Desktop、Alacritty、Zed の場合、`/terminal-setup` はターミナルの設定ファイルに Shift+Enter キーバインディングを書き込みます。初回実行時には `Installed VSCode terminal Shift+Enter key binding` などの確認メッセージが表示されます。既存のバインディングはそのまま保持されます。`VSCode terminal Shift+Enter key binding already configured` などのメッセージが表示される場合は、変更は加えられていません。`/terminal-setup` は tmux または screen の内部ではなく、ホストターミナル内で直接実行してください。ホストターミナルの設定に書き込む必要があるためです。
35 36
36VS Code、Cursor、Devin Desktop では、`/terminal-setup` はさらに 2 つのエディタ設定も更新します。統合ターミナルでのテキストの乱れを防ぐために `terminal.integrated.gpuAcceleration` を `"off"` に設定し、[フルスクリーンモード](/ja/fullscreen) でのスムーズなスクロールのために `terminal.integrated.mouseWheelScrollSensitivity` を設定します。GPU アクセラレーション変更を元に戻すには、`"auto"` に設定し直してエディタウィンドウをリロードしてください。37VS Code、Cursor、Devin Desktop では、`/terminal-setup` は 2 つのエディタ設定も更新します。統合ターミナルでのテキストの乱れを防ぐために `terminal.integrated.gpuAcceleration` を `"off"` に設定し、[フルスクリーンモード](/docs/ja/fullscreen)でのスムーズなスクロールのために `terminal.integrated.mouseWheelScrollSensitivity` を設定します。GPU アクセラレーション変更を元に戻すには、`"auto"` に設定し直してエディタウィンドウをリロードしてください。
37 38
38tmux 内で実行している場合、外側のターミナルがサポートしている場合でも、Shift+Enter には以下の [tmux 設定](#configure-tmux) が必要です。39Zed では、`/terminal-setup` は `keymap.json` をその場で更新します。
39 40
40改行を別のキーにバインドするか、Enter が改行を挿入し Shift+Enter が送信するように動作を入れ替えるには、[キーバインディングファイル](/ja/keybindings) で `chat:newline` および `chat:submit` アクションをマップします。41* キーマップに既にバインディングがあり、そのいずれもターミナルの `shift-enter` ではない場合、Claude Code はまずそれを同じディレクトリ内のコピー(`keymap.json.1a2b3c4d.bak` など)にバックアップしてから、Shift+Enter バインディングをキーマップにマージし、他のキーバインディングとコメントを保持します
42* Claude Code がキーマップを読み込めない、解析できない、バックアップできない、またはマージされた結果を検証できない場合、[ファイルを変更せず、追加するキーバインディングブロックを出力します](/docs/ja/errors#terminal-setup-left-your-zed-keymap-unchanged)
43
44tmux 内で実行している場合、外側のターミナルがサポートしている場合でも、Shift+Enter には以下の [tmux 設定](#configure-tmux)が必要です。
45
46改行を別のキーにバインドするか、Enter が改行を挿入し Shift+Enter が送信するように動作を入れ替えるには、[キーバインディングファイル](/docs/ja/keybindings)で `chat:newline` および `chat:submit` アクションをマップしてください。
41 47
42<h2 id="enable-option-key-shortcuts-on-macos">48<h2 id="enable-option-key-shortcuts-on-macos">
43 macOS で Option キーショートカットを有効にする49 macOS で Option キーショートカットを有効にする
44</h2>50</h2>
45 51
46Claude Code のいくつかのショートカットは Option キーを使用します。例えば、改行の場合は Option+Enter、モデルを切り替える場合は Option+P です。macOS では、ほとんどのターミナルはデフォルトでは Option を修飾子として送信しないため、これらのショートカットは有効にするまで機能しません。このターミナル設定は通常「Option を Meta キーとして使用」というラベルが付いています。Meta は、現在 Option または Alt というラベルが付いているキーの歴史的な Unix 名です。52Claude Code の一部のショートカットは Option キーを使用します。例えば、Option+Enter で改行したり、Option+P でモデルを切り替えたりします。macOS では、ほとんどのターミナルはデフォルトで Option を修飾キーとして送信しないため、これを有効にするまでこれらのショートカットは機能しません。ターミナル設定は通常「Use Option as Meta Key」というラベルが付いています。Meta は、現在 Option または Alt というラベルが付いているキーの歴史的な Unix 名です。
47 53
48<Tabs>54<Tabs>
49 <Tab title="Apple Terminal">55 <Tab title="Apple Terminal">
50 設定 → プロファイル → キーボードを開き、'Option を Meta キーとして使用'をチェックします。56 設定 → プロファイル → キーボードを開き、「Use Option as Meta Key」をチェックします。
57
58 Claude Code の初回実行時のターミナルセットアッププロンプトを受け入れた場合、これはすでに完了しています。そのプロンプトは `/terminal-setup` を実行し、Option を Meta として有効にし、Apple Terminal プロファイルで可聴ベルをオフにします。
51 59
52 Claude Code の初回実行プロンプトで'改行と視覚的ベルの場合は Option+Enter'を受け入れた場合、これは既に完了しています。そのプロンプトは `/terminal-setup` を実行し、Apple Terminal プロファイルで Option を Meta として有効にし、オーディオベルをビジュアルスクリーンフラッシュに切り替えます。60 [スクリーンリーダーモード](/docs/ja/accessibility)では、`/terminal-setup` はベル設定を変更しないままにするため、ターミナルベルは可聴のままです。v2.1.211 より前では、`/terminal-setup` はスクリーンリーダーモードでもベルをオフにしていました。以前の実行でベルがオフになった場合は、設定 → プロファイル → 詳細 → 「可聴ベル」でオンに戻してください。
53 </Tab>61 </Tab>
54 62
55 <Tab title="iTerm2">63 <Tab title="iTerm2">
56 設定 → プロファイル → キー → 一般を開き、左 Option キーと右 Option キーを「Esc+」に設定します。64 設定 → プロファイル → キー → 一般を開き、左 Option キーと右 Option キーを「Esc+」に設定します。
57 65
58 iTerm2 で `/terminal-setup` を実行すると、設定 → 一般 → 選択の下の「ターミナル内のアプリケーションがクリップボードにアクセスできる」が有効になり、`/copy` コマンドがシステムクリップボードに書き込むことができます。このコマンドは tmux 内から実行された場合でも iTerm2 を検出します。変更を有効にするために iTerm2 を再起動してください。66 iTerm2 で `/terminal-setup` を実行すると、設定 → 一般 → 選択の下で「Applications in terminal may access clipboard」が有効になり、`/copy` コマンドがシステムクリップボードに書き込むことができます。このコマンドは tmux 内から実行された場合でも iTerm2 を検出します。変更を有効にするために iTerm2 を再起動してください。
59 </Tab>67 </Tab>
60 68
61 <Tab title="VS Code">69 <Tab title="VS Code">
69 ターミナルベルまたは通知を取得する77 ターミナルベルまたは通知を取得する
70</h2>78</h2>
71 79
72Claude がタスクを完了するか、権限プロンプトで一時停止すると、通知イベントが発火します。これをターミナルベルまたはデスクトップ通知として表示すると、長いタスクが実行されている間に他の作業に切り替えることができます。80Claude がタスクを完了するか権限プロンプトで一時停止し、ターミナルから離れているように見える場合、通知イベントが発火します。[各通知タイプが発火するタイミング](/docs/ja/hooks#notification)を参照して、正確なタイミングを確認してください。これをターミナルベルまたはデスクトップ通知として表示することで、長いタスクが実行されている間に他の作業に切り替えることができます。
73 81
74デフォルトでは Claude Code はデスクトップ通知を Ghostty、Kitty、および iTerm2 でのみ送信します。他のターミナルでは、[`preferredNotifChannel`](/ja/settings#available-settings) を `"terminal_bell"` に設定してターミナルベルを鳴らすか、カスタムサウンドまたはコマンド用に [通知フック](#play-a-sound-with-a-notification-hook) を設定してください。82デフォルトでは Claude Code は Ghostty、Kitty、および iTerm2 でのみデスクトップ通知を送信します。他のターミナルでは、[`preferredNotifChannel`](/docs/ja/settings-reference#preferrednotifchannel)を`"terminal_bell"`に設定してターミナルベルを鳴らすか、カスタム音またはコマンド用に[通知フック](#play-a-sound-with-a-notification-hook)を設定してください。次の設定エントリはターミナルベルをオンにします:
75 83
76デスクトップ通知は SSH 経由でローカルマシンに到達するため、リモートセッションでもアラートを表示できます。Ghostty と Kitty はさらなるセットアップなしで OS 通知センターに転送します。iTerm2 では転送を有効にする必要があります。84```json ~/.claude/settings.json theme={null}
85{
86 "preferredNotifChannel": "terminal_bell"
87}
88```
89
90デスクトップ通知は SSH 経由でローカルマシンに到達するため、リモートセッションでもアラートを受け取ることができます。Ghostty と Kitty はさらなるセットアップなしで OS 通知センターに転送します。iTerm2 では転送を有効にする必要があります:
77 91
78<Steps>92<Steps>
79 <Step title="iTerm2 通知設定を開く">93 <Step title="Open iTerm2 notification settings">
80 設定 → プロファイル → ターミナルに移動します。94 Go to Settings → Profiles → Terminal.
81 </Step>95 </Step>
82 96
83 <Step title="アラートを有効にする">97 <Step title="Enable alerts">
84 「Notification Center Alerts」をチェックし、「Filter Alerts」をクリックして「Send escape sequence-generated alerts」を有効にします。98 Check "Notification Center Alerts", then click "Filter Alerts" and enable "Send escape sequence-generated alerts".
85 </Step>99 </Step>
86</Steps>100</Steps>
87 101
88通知がまだ表示されない場合は、ターミナルアプリケーションが OS 設定で通知権限を持っていることを確認し、tmux 内で実行している場合は [パススルーを有効にします](#configure-tmux)。102通知がまだ表示されない場合は、ターミナルアプリケーションが OS 設定で通知権限を持っていることを確認し、tmux 内で実行している場合は[パススルーを有効にしてください](#configure-tmux)。
89 103
90<h3 id="play-a-sound-with-a-notification-hook">104<h3 id="play-a-sound-with-a-notification-hook">
91 通知フックでサウンドを再生する105 通知フックで音を再生する
92</h3>106</h3>
93 107
94任意のターミナルで [通知フック](/ja/hooks-guide#get-notified-when-claude-needs-input) を設定して、Claude があなたの注意が必要なときにサウンドを再生するか、カスタムコマンドを実行できます。フックはデスクトップ通知の代わりではなく、並行して実行されるため、Warp や VS Code 統合ターミナルなどのデスクトップ通知を受け取らないターミナルは、フックを使用するか、`preferredNotifChannel` を `"terminal_bell"` に設定できます。108任意のターミナルで[通知フック](/docs/ja/hooks-guide#get-notified-when-claude-needs-input)を設定して、Claude があなたの注意が必要な場合に音を再生するか、カスタムコマンドを実行できます。フックは組み込み通知と並行して実行され、それを置き換えるのではなく、Warp や VS Code 統合ターミナルなどのデスクトップ通知を受け取らないターミナルは、フックを使用するか、代わりに`preferredNotifChannel`を`"terminal_bell"`に設定できます。
95 109
96以下の例は macOS でシステムサウンドを再生します。リンクされたガイドには macOS、Linux、および Windows のデスクトップ通知コマンドがあります。110以下の例は macOS でシステム音を再生します。リンクされたガイドには、macOS、Linux、および Windows のデスクトップ通知コマンドがあります。
97 111
98```json ~/.claude/settings.json theme={null}112```json ~/.claude/settings.json theme={null}
99{113{
111 tmux を設定する125 tmux を設定する
112</h2>126</h2>
113 127
114Claude Code が tmux 内で実行されている場合、デフォルトでは 2 つのことが壊れます。Shift+Enter が改行を挿入する代わりに送信し、デスクトップ通知と [プログレスバー](/ja/settings#available-settings) が外側のターミナルに到達しません。これらの行を `~/.tmux.conf` に追加し、`tmux source-file ~/.tmux.conf` を実行して実行中のサーバーに適用します。128Claude Code が tmux 内で実行される場合、デフォルトでは 2 つの問題が発生します。Shift+Enter が改行を挿入する代わりに送信してしまい、デスクトップ通知と[プログレスバー](/docs/ja/settings-reference#terminalprogressbarenabled)が外側のターミナルに到達しません。これらの行を `~/.tmux.conf` に追加してから、`tmux source-file ~/.tmux.conf` を実行して、実行中のサーバーに適用してください。
115 129
116```bash ~/.tmux.conf theme={null}130```bash ~/.tmux.conf theme={null}
117set -g allow-passthrough on131set -g allow-passthrough on
119set -as terminal-features 'xterm*:extkeys'133set -as terminal-features 'xterm*:extkeys'
120```134```
121 135
122`allow-passthrough` 行により、通知とプログレス更新が tmux に飲み込まれるのではなく、外側のターミナルに到達できます。`extended-keys` 行により、tmux は Shift+Enter をプレーン Enter と区別できるため、改行ショートカットが機能します。136`allow-passthrough` 行により、通知とプログレス更新が tmux に飲み込まれるのではなく、外側のターミナルに到達できるようになります。`extended-keys` 行により、tmux が Shift+Enter と通常の Enter を区別できるようになり、改行ショートカットが機能するようになります。
137
138<h2 id="fix-backspace-deleting-a-whole-word-on-windows">
139 Windows で Backspace がワード全体を削除する問題を修正する
140</h2>
141
142Windows では、Claude Code は Backspace として到着した `^H` を Ctrl+Backspace として読み込み、[前のワードを削除します](/docs/ja/interactive-mode#text-editing)。ただし、`TERM_PROGRAM` が `mintty` または `TERM` が `cygwin` の場合は除きます。macOS と Linux では、Claude Code はこれをプレーン Backspace として読み込みます。
143
144Backspace を押すたびにワード全体が削除される場合、ターミナルはプレーン Backspace に対して `^H` を送信しています。[`CLAUDE_CODE_BS_AS_CTRL_BACKSPACE=0`](/docs/ja/env-vars) を設定してください。その後、Backspace と Ctrl+H は各々 1 文字を削除します。macOS または Linux で Ctrl+Backspace が 1 文字だけを削除する場合、ターミナルが `^H` を送信しているため、代わりに変数を `1` に設定してください。
123 145
124<h2 id="match-the-color-theme">146<h2 id="match-the-color-theme">
125 カラーテーマを一致させる147 カラーテーマを合わせる
126</h2>148</h2>
127 149
128`/theme` コマンドを使用するか、`/config` のテーマピッカーを使用して、ターミナルに一致する Claude Code テーマを選択します。自動オプションを選択すると、ターミナルの明るいまたは暗い背景が検出されるため、テーマは OS の外観の変更に従います。Claude Code はターミナルアプリケーションによって設定されるターミナル自体のカラースキームを制御しません。150`/theme` コマンドを使用するか、`/config` のテーマピッカーを使用して、ターミナルに合わせた Claude Code テーマを選択します。auto オプションを選択すると、ターミナルの明るい背景または暗い背景が検出されるため、ターミナルが OS の外観の変更に従うたびにテーマが従います。Claude Code はターミナルアプリケーションによって設定されるターミナル自体のカラースキームを制御しません。
129 151
130インターフェースの下部に表示される内容をカスタマイズするには、現在のモデル、作業ディレクトリ、git ブランチ、またはその他のコンテキストを表示する [カスタムステータスライン](/ja/statusline) を設定します。152インターフェースの下部に表示される内容をカスタマイズするには、現在のモデル、作業ディレクトリ、git ブランチ、またはその他のコンテキストを表示する[カスタムステータスライン](/docs/ja/statusline)を設定します。
131 153
132<h3 id="create-a-custom-theme">154<h3 id="create-a-custom-theme">
133 カスタムテーマを作成する155 カスタムテーマを作成する
134</h3>156</h3>
135 157
136<Note>158組み込みプリセットに加えて、`/theme` には定義したカスタムテーマと、インストール済みの[プラグイン](/docs/ja/plugins-reference#themes)によって提供されたテーマが一覧表示されます。リストの最後にある\*\*新しいカスタムテーマ…\*\*を選択して、対話的に作成します。テーマに名前を付けてから、個別のカラートークンを選択してオーバーライドします。カスタムテーマがハイライトされている間に `Ctrl+E` を押して編集します。
137 カスタムテーマには Claude Code v2.1.118 以降が必要です。
138</Note>
139
140組み込みプリセットに加えて、`/theme` はユーザーが定義したカスタムテーマと、インストール済みの [プラグイン](/ja/plugins-reference#themes) によって提供されるテーマを一覧表示します。リストの最後にある **新しいカスタムテーマ…** を選択して、対話的に作成します。テーマに名前を付けてから、個別のカラートークンを選択してオーバーライドします。カスタムテーマがハイライトされている状態で `Ctrl+E` を押すと、編集できます。
141 159
142各カスタムテーマは `~/.claude/themes/` 内の JSON ファイルです。`.json` 拡張子を除いたファイル名がテーマのスラッグであり、テーマを選択すると `custom:<slug>` がテーマの設定として保存されます。ファイルには 3 つのオプションフィールドがあります。160各カスタムテーマは `~/.claude/themes/` 内の JSON ファイルです。`.json` 拡張子を除いたファイル名がテーマのスラッグであり、テーマを選択すると `custom:<slug>` がテーマの設定として保存されます。ファイルには 3 つのオプションフィールドがあります。
143 161
144| フィールド | 型 | 説明 |162| フィールド | タイプ | 説明 |
145| :---------- | :----- | :----------------------------------------------------------------------------------------------------------------- |163| :---------- | :----- | :----------------------------------------------------------------------------------------------------------------- |
146| `name` | string | `/theme` に表示されるラベル。デフォルトはファイル名スラッグ |164| `name` | string | `/theme` に表示されるラベル。デフォルトはファイル名スラッグ |
147| `base` | string | テーマの開始元となる組み込みプリセット:`dark`、`light`、`dark-daltonized`、`light-daltonized`、`dark-ansi`、または `light-ansi`。デフォルトは `dark` |165| `base` | string | テーマの開始元となる組み込みプリセット:`dark`、`light`、`dark-daltonized`、`light-daltonized`、`dark-ansi`、または `light-ansi`。デフォルトは `dark` |
149 167
150カラー値は `#rrggbb`、`#rgb`、`rgb(r,g,b)`、`ansi256(n)`、または `ansi:<name>` を受け入れます。ここで `<name>` は `red` や `cyanBright` などの 16 個の標準 ANSI カラー名の 1 つです。不明なトークンと無効なカラー値は無視されるため、タイプミスはレンダリングを破壊することはできません。168カラー値は `#rrggbb`、`#rgb`、`rgb(r,g,b)`、`ansi256(n)`、または `ansi:<name>` を受け入れます。ここで `<name>` は `red` や `cyanBright` などの 16 個の標準 ANSI カラー名の 1 つです。不明なトークンと無効なカラー値は無視されるため、タイプミスはレンダリングを破壊することはできません。
151 169
152次の例は、ダークプリセットを保持しながら、プロンプトアクセント、エラーテキスト、成功テキストを再色付けするテーマを定義しています。170次の例は、暗いプリセットを保持しながら、プロンプトアクセント、エラーテキスト、成功テキストを再色付けするテーマを定義しています。
153 171
154```json ~/.claude/themes/dracula.json theme={null}172```json ~/.claude/themes/dracula.json theme={null}
155{173{
163}181}
164```182```
165 183
166Claude Code は `~/.claude/themes/` を監視し、ファイルが変更されるとリロードするため、エディターで行われた編集は再起動なしで実行中のセッションに適用されます。184Claude Code は `~/.claude/themes/` を監視し、ファイルが追加または変更されるとリロードするため、エディターで行われた編集は再起動なしで実行中のセッションに適用されます。Claude Code の起動時に `~/.claude/themes/` フォルダ自体が存在しなかった場合は、最初のテーマファイルを作成した後に 1 回再起動します。その後、変更は再起動なしで適用されます。
167 185
168以下は、`overrides` で設定できるトークンをカバーしています。`/theme` の対話的エディターは、ここでカバーされていない少数の単一目的のアクセント(オンボーディング画面の色など)を含む、ライブプレビュー付きの同じトークンを表示します。186以下のリファレンスは、`overrides` で設定できるトークンをカバーしています。`/theme` の対話的エディターは、同じトークンをライブプレビューと共に表示し、さらにオンボーディング画面のカラーなどの単一目的のアクセントをいくつか表示します(ここでは省略されています)。
169 187
170<Accordion title="カラートークンリファレンス">188<Accordion title="カラートークンリファレンス">
171 次の例は、複数のグループからのトークンを組み合わせています。ブランドアクセント、プランモードボーダー、diff 背景、および全画面メッセージ背景です。189 次の例は、以下のいくつかのグループからトークンを組み合わせています。ブランドアクセント、プランモードボーダー、diff 背景、およびメッセージ背景です。
172 190
173 ```json ~/.claude/themes/midnight.json theme={null}191 ```json ~/.claude/themes/midnight.json theme={null}
174 {192 {
191 プライマリブランドアクセントと、インターフェース全体で使用されるフォアグラウンドテキストの色合いを制御します。209 プライマリブランドアクセントと、インターフェース全体で使用されるフォアグラウンドテキストの色合いを制御します。
192 210
193 | トークン | 制御対象 |211 | トークン | 制御対象 |
194 | :------------ | :----------------------------------- |212 | :------------ | :------------------------------- |
195 | `claude` | プライマリブランドアクセント。スピナーとアシスタントラベルに使用されます |213 | `claude` | プライマリブランドアクセント、スピナーとアシスタントラベルに使用 |
196 | `text` | デフォルトのフォアグラウンドテキスト |214 | `text` | デフォルトのフォアグラウンドテキスト |
197 | `inverseText` | ステータスバッジなど、色付き背景の上に描画されるテキスト |215 | `inverseText` | ステータスバッジなどの色付き背景の上に描画されるテキスト |
198 | `inactive` | ヒント、タイムスタンプ、無効化されたアイテムなどのセカンダリテキスト |216 | `inactive` | ヒント、タイムスタンプ、無効な項目などのセカンダリテキスト |
199 | `subtle` | 薄いボーダーと強調されていないセカンダリテキスト |217 | `subtle` | 薄いボーダーと強調されていないセカンダリテキスト |
200 | `suggestion` | オートコンプリート候補とピッカーの選択ハイライト |218 | `suggestion` | オートコンプリート候補とピッカーの選択ハイライト |
201 | `permission` | パーミッションプロンプトとピッカーを含むダイアログボーダー |219 | `permission` | パーミッションプロンプトとピッカーを含むダイアログボーダー |
208 メッセージとインジケーター全体で成功、失敗、警告状態を通知します。226 メッセージとインジケーター全体で成功、失敗、警告状態を通知します。
209 227
210 | トークン | 制御対象 |228 | トークン | 制御対象 |
211 | :-------- | :---------------------- |229 | :-------- | :-------------------------- |
212 | `success` | 成功メッセージと合格チェック |230 | `success` | 成功メッセージと合格チェック |
213 | `error` | エラーメッセージと失敗 |231 | `error` | エラーメッセージと失敗 |
214 | `warning` | 警告、注意メッセージ、および自動モードボーダー |232 | `warning` | 警告、注意メッセージ、および auto モードボーダー |
215 | `merged` | マージされたプルリクエストステータス |233 | `merged` | マージされたプルリクエストステータス |
216 234
217 <h4 id="input-box-and-mode-indicators">235 <h4 id="input-box-and-mode-indicators">
221 入力ボックスのボーダーカラーと、パーミッションモードまたはインジケーターがアクティブな間に表示されるアクセントを設定します。239 入力ボックスのボーダーカラーと、パーミッションモードまたはインジケーターがアクティブな間に表示されるアクセントを設定します。
222 240
223 | トークン | 制御対象 |241 | トークン | 制御対象 |
224 | :------------- | :---------------------------- |242 | :------------- | :-------------------------------------------------------------------------------------------------------------------------------- |
225 | `promptBorder` | デフォルトパーミッションモードの入力ボックスボーダー |243 | `promptBorder` | Manual モードの入力ボックスボーダー |
226 | `planMode` | プランモードアクセントとボーダー |244 | `planMode` | Plan モードアクセントとボーダー |
227 | `autoAccept` | 受け入れ編集モードアクセントとボーダー |245 | `autoAccept` | Accept-edits モードアクセントとボーダー |
228 | `bashBorder` | `!` シェルコマンドを入力するときの入力ボックスボーダー |246 | `bashBorder` | `!` シェルコマンドを入力するときの入力ボックスボーダー |
229 | `ide` | IDE 接続インジケーター |247 | `ide` | IDE 接続インジケーター |
230 | `fastMode` | 高速モードインジケーター |248 | `fastMode` | Fast モードインジケーター |
249 | `effortUltra` | [ultracode](/docs/ja/model-config#adjust-effort-level) がオンの間、入力ボックスボーダーの `ultracode` タグ。このカラーのオーバーライドは Claude Code v2.1.239 以降で有効になります |
231 250
232 <h4 id="diff-rendering">251 <h4 id="diff-rendering">
233 Diff レンダリング252 Diff レンダリング
234 </h4>253 </h4>
235 254
236 ファイル編集とレビューで追加および削除されたコードに色を付けます。255 ファイル編集とレビューで追加および削除されたコードを色付けします。
237 256
238 | トークン | 制御対象 |257 | トークン | 制御対象 |
239 | :------------------ | :-------------------------- |258 | :------------------ | :---------------------------- |
240 | `diffAdded` | 追加された行の背景 |259 | `diffAdded` | 追加された行の背景 |
241 | `diffRemoved` | 削除された行の背景 |260 | `diffRemoved` | 削除された行の背景 |
242 | `diffAddedDimmed` | 追加された行の近くの変更されていないコンテキストの背景 |261 | `diffAddedDimmed` | 編集を拒否した後に表示される薄い diff の追加行の背景 |
243 | `diffRemovedDimmed` | 削除された行の近くの変更されていないコンテキストの背景 |262 | `diffRemovedDimmed` | 編集を拒否した後に表示される薄い diff の削除行の背景 |
244 | `diffAddedWord` | 追加された行内の単語レベルのハイライト |263 | `diffAddedWord` | 追加された行内のワードレベルハイライト |
245 | `diffRemovedWord` | 削除された行内の単語レベルのハイライト |264 | `diffRemovedWord` | 削除された行内のワードレベルハイライト |
246 265
247 <h4 id="fullscreen-mode">266 <h4 id="fullscreen-mode">
248 全画面モード267 フルスクリーンモード
249 </h4>268 </h4>
250 269
251 [全画面レンダリングモード](/ja/fullscreen) でのみ適用されます。メッセージは背景塗りつぶしを持ちます。270 Claude Code は、デフォルトとフルスクリーンレンダラーの両方で `userMessageBackground`、`bashMessageBackgroundColor`、および `memoryBackgroundColor` を描画します。[フルスクリーンレンダリングモード](/docs/ja/fullscreen)でのみ `userMessageBackgroundHover` と `selectionBg` を使用します。
252 271
253 | トークン | 制御対象 |272 | トークン | 制御対象 |
254 | :--------------------------- | :------------------------------- |273 | :--------------------------- | :------------------------------- |
255 | `userMessageBackground` | トランスクリプト内のメッセージの背後の背景 |274 | `userMessageBackground` | トランスクリプト内のメッセージの背後の背景 |
256 | `userMessageBackgroundHover` | ホバーまたは展開中のメッセージの背後の背景 |275 | `userMessageBackgroundHover` | ホバーまたは展開されている間のメッセージの背後の背景 |
257 | `messageActionsBackground` | アクションバーが開いているときの選択されたメッセージの背後の背景 |
258 | `bashMessageBackgroundColor` | トランスクリプト内の `!` シェルコマンドエントリの背後の背景 |276 | `bashMessageBackgroundColor` | トランスクリプト内の `!` シェルコマンドエントリの背後の背景 |
259 | `memoryBackgroundColor` | トランスクリプト内の `#` メモリエントリの背後の背景 |277 | `memoryBackgroundColor` | トランスクリプト内の `#` メモリエントリの背後の背景 |
260 | `selectionBg` | マウスで選択されたテキストの背景 |278 | `selectionBg` | マウスで選択されたテキストの背景 |
263 使用量メーターとスピーカーラベル281 使用量メーターとスピーカーラベル
264 </h4>282 </h4>
265 283
266 `/usage` ビューに表示されるバーと、メッセージを区別するラベルを調整します。284 `/usage` ビューに表示されるバーと、メッセージを Claude のメッセージと区別するラベルを調整します。
267 285
268 | トークン | 制御対象 |286 | トークン | 制御対象 |
269 | :----------------- | :-------------------------- |287 | :----------------- | :---------------------------- |
270 | `rate_limit_fill` | 使用量メーターの塗りつぶされた部分 |288 | `rate_limit_fill` | 使用量メーターの塗りつぶされた部分 |
271 | `rate_limit_empty` | 使用量メーターの塗りつぶされていない部分 |289 | `rate_limit_empty` | 使用量メーターの塗りつぶされていない部分 |
272 | `briefLabelYou` | メッセージの `You` ラベルの色 |290 | `briefLabelYou` | メッセージの `You` ラベルのカラー |
273 | `briefLabelClaude` | アシスタントメッセージの `Claude` ラベルの色 |291 | `briefLabelClaude` | アシスタントメッセージの `Claude` ラベルのカラー |
274 292
275 <h4 id="shimmer-variants-and-subagent-colors">293 <h4 id="shimmer-variants-and-subagent-colors">
276 シマー変種とサブエージェントカラー294 シマーバリアントとサブエージェントカラー
277 </h4>295 </h4>
278 296
279 複数のトークンにはペアになったシマー変種があり、スピナーのアニメーション化されたグラデーションで使用される明るい色を提供します。アニメーションが一致しないように見える場合は、ベーストークンと一緒にシマーをオーバーライドします。297 いくつかのトークンには、スピナーのアニメーション化されたグラデーションで使用される明るいカラーを提供するペアのシマーバリアントがあります。アニメーションが一致しないように見える場合は、ベーストークンと一緒にシマーをオーバーライドします。
280 298
281 * `claude` と `claudeShimmer`299 * `claude` と `claudeShimmer`
282 * `warning` と `warningShimmer`300 * `warning` と `warningShimmer`
285 * `inactive` と `inactiveShimmer`303 * `inactive` と `inactiveShimmer`
286 * `fastMode` と `fastModeShimmer`304 * `fastMode` と `fastModeShimmer`
287 305
288 各 [サブエージェント](/ja/sub-agents) と並列タスクは、トランスクリプト内で区別できるように、8 つの名前付きカラーの 1 つで表示されます。トークン名は `<color>_FOR_SUBAGENTS_ONLY` パターンに従います。ここで `<color>` は `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、または `cyan` です。これらをオーバーライドして、各名前付きカラーの外観を変更します。たとえば、定義に `color: blue` を持つサブエージェントは、`blue_FOR_SUBAGENTS_ONLY` 値を使用して描画されます。306 各[サブエージェント](/docs/ja/sub-agents)と並列タスクは、トランスクリプト内で区別できるように 8 つの名前付きカラーの 1 つで表示されます。トークン名は `<color>_FOR_SUBAGENTS_ONLY` パターンに従います。ここで `<color>` は `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、または `cyan` です。これらをオーバーライドして、各名前付きカラーの外観を変更します。たとえば、定義に `color: blue` を持つサブエージェントは、`blue_FOR_SUBAGENTS_ONLY` 値を使用して描画されます。
289 307
290 [`ultrathink`](/ja/model-config#use-ultrathink-for-one-off-deep-reasoning) と [`ultraplan`](/ja/ultraplan) キーワードはプロンプト入力で 7 色のレインボーグラデーションでレンダリングされます。トークン名は `rainbow_<color>` と `rainbow_<color>_shimmer` パターンに従います。ここで `<color>` は `red`、`orange`、`yellow`、`green`、`blue`、`indigo`、または `violet` です。308 Claude Code は、プロンプト入力で [`ultrathink`](/docs/ja/model-config#use-ultrathink-for-one-off-deep-reasoning) キーワードを 7 色の虹グラデーションでレンダリングします。トークン名は `rainbow_<color>` と `rainbow_<color>_shimmer` パターンに従います。ここで `<color>` は `red`、`orange`、`yellow`、`green`、`blue`、`indigo`、または `violet` です。
291</Accordion>309</Accordion>
292 310
293<h2 id="switch-to-fullscreen-rendering">311<h2 id="switch-to-fullscreen-rendering">
294 フルスクリーンレンダリングに切り替える312 フルスクリーンレンダリングに切り替える
295</h2>313</h2>
296 314
297Claude が作業中に表示がちらつくか、スクロール位置がジャンプする場合は、[フルスクリーンレンダリングモード](/ja/fullscreen) に切り替えます。ターミナルが通常のスクロールバックに追加する代わりに、フルスクリーンアプリ用に予約されている別のスクリーンに描画します。これにより、メモリ使用量が一定に保たれ、スクロールと選択のマウスサポートが追加されます。このモードでは、ターミナルのネイティブスクロールバックではなく、マウスまたは PageUp で Claude Code 内をスクロールします。検索とコピーの方法については、[フルスクリーンページ](/ja/fullscreen#search-and-review-the-conversation) を参照してください。315[スクリーンリーダーモード](/docs/ja/accessibility)では、このセクションは適用されません。Claude Code は、添付された[バックグラウンドセッション](/docs/ja/agent-view)を除き、常にプレーンなスクロールテキストとしてレンダリングされます。また、他のセッションで `/tui fullscreen` を実行した場合、Claude Code はレンダラーを切り替える代わりに説明を出力します。
316
317ディスプレイがちらつくか、Claude が作業中にスクロール位置がジャンプする場合は、[フルスクリーンレンダリングモード](/docs/ja/fullscreen)に切り替えてください。このモードでは、ターミナルのネイティブスクロールバックではなく、マウスまたは PageUp を使用して Claude Code 内でスクロールします。検索とコピーの方法については、[フルスクリーンページ](/docs/ja/fullscreen#search-and-review-the-conversation)を参照してください。
298 318
299ちらつきが唯一の問題で、ターミナルが同期出力をサポートしているが自動検出されていない場合(Emacs `eat` など)、[`CLAUDE_CODE_FORCE_SYNC_OUTPUT=1`](/ja/env-vars) を設定して、レンダラーを変更せずにちらつきを停止します。319ちらつきが唯一の問題で、ターミナルが同期出力をサポートしているが自動検出されていない場合(Emacs `eat` など)、[`CLAUDE_CODE_FORCE_SYNC_OUTPUT=1`](/docs/ja/env-vars)を設定して、レンダラーを変更せずにちらつきを停止します。
300 320
301`/tui fullscreen` を実行して、設定を切り替えて保存します。会話はそのままで再起動され、今後のセッションはフルスクリーンで開始されます。Claude Code を開始する前に `CLAUDE_CODE_NO_FLICKER` 環境変数を設定することもできます。321`/tui fullscreen` を実行して切り替え、設定を保存します。会話はそのまま再起動され、[フルスクリーン開始に失敗](/docs/ja/fullscreen#fullscreen-renderer-didnt-finish-starting)しない限り、今後のセッションはフルスクリーンで開始されます。Claude Code を起動する前に、`CLAUDE_CODE_NO_FLICKER` 環境変数を設定することもできます。
302 322
303<CodeGroup>323<CodeGroup>
304 ```bash Bash と Zsh theme={null}324 ```bash Bash and Zsh theme={null}
305 CLAUDE_CODE_NO_FLICKER=1 claude325 CLAUDE_CODE_NO_FLICKER=1 claude
306 ```326 ```
307 327
322 大量のコンテンツを貼り付ける342 大量のコンテンツを貼り付ける
323</h2>343</h2>
324 344
325プロンプトに 10,000 文字以上を貼り付けると、Claude Code は入力を `[Pasted text]` プレースホルダーに折りたたんで、入力ボックスが使用可能なままになります。完全なコンテンツは送信時に Claude に送信されます。345800 文字以上または 3 行以上をプロンプトに貼り付けると、Claude Code は入力を `[Pasted text #1 +120 lines]` などのプレースホルダーに折りたたんで、入力ボックスが使用可能な状態を保ちます。ターミナルウィンドウが 12 行未満の場合、行制限が低下するため、Claude Code は 11 行で 3 行の貼り付けを折りたたみ、10 行以下で複数行の貼り付けを折りたたみます。Claude Code は送信時に完全なコンテンツを送信します。
346
347`Ctrl+W` や `Ctrl+K` などの単語または行ショートカットで削除するか、`df]` などの `f`/`t` モーションを使用した vim 削除で削除し、削除範囲がプレースホルダー内に達する場合、Claude Code はプレースホルダー全体を削除します。削除を貼り付け直して復元できます。単語または行ショートカットの後に [`Ctrl+Y`](/docs/ja/interactive-mode#text-editing) を使用するか、vim 削除の後に [`p` NORMAL モード](/docs/ja/interactive-mode#editing-normal-mode) で復元できます。
348
349Claude Code は折りたたまれたコンテンツを `~/.claude/paste-cache/` に保持するため、[コマンド履歴](/docs/ja/interactive-mode#command-history) からプロンプトを呼び出して再送信すると、Claude Code は完全な貼り付けコンテンツを再度送信します。これは後のセッションでも含まれます。保持期間スイープがキャッシュファイルを削除するまで続きます。
350
351Claude Code は [`cleanupPeriodDays`](/docs/ja/settings-reference#cleanupperioddays) より古いキャッシュファイルを削除し、[保持期間スイープルール](/docs/ja/claude-directory#cleaned-up-automatically) に従うため、呼び出されたプロンプトは存在しなくなった貼り付けテキストを参照できます。そのようなプロンプトを送信すると、Claude Code はリテラル `[Pasted text #N]` 文字列を送信することはなく、不足している貼り付けの名前を示す通知を表示します。
352
353* テキストが残っているプレーンプロンプトでは、Claude Code はプレースホルダーを削除して残りのテキストを送信します。
354* [シェルモード](/docs/ja/interactive-mode#shell-mode-with-prefix) コマンドまたは `/` コマンドでは、削除が実行内容を変更する可能性があり、プロンプトの削除が空のままになる場合、Claude Code は送信をキャンセルし、元のテキストを入力に保持します。プレースホルダーはまだ含まれています。プレースホルダーを削除するか、コマンドを編集してから再送信してください。
326 355
327VS Code 統合ターミナルは、Claude Code に到達する前に非常に大きな貼り付けから文字をドロップできるため、そこではファイルベースのワークフローを優先します。ファイル全体や長いログなどの非常に大きな入力の場合は、コンテンツをファイルに書き込み、貼り付けの代わりに Claude に読み込むよう依頼します。これにより、会話トランスクリプトが読みやすくなり、Claude が後の手番でパスでファイルを参照できます。356VS Code 統合ターミナルは、非常に大きな貼り付けから Claude Code に到達する前に文字をドロップできるため、そこではファイルベースのワークフローを優先してください。ファイル全体やログが長いなど、非常に大きな入力の場合は、コンテンツをファイルに書き込んで、貼り付けの代わりに Claude にそれを読むよう依頼してください。これにより、会話トランスクリプトが読みやすくなり、Claude が後のターンでパスによってファイルを参照できます。
328 357
329<h2 id="edit-prompts-with-vim-keybindings">358<h2 id="edit-prompts-with-vim-keybindings">
330 Vim キーバインディングでプロンプトを編集する359 Vim キーバインディングでプロンプトを編集する
331</h2>360</h2>
332 361
333Claude Code には、プロンプト入力用の Vim スタイルの編集モードが含まれています。`/config` → エディタモードを通じて有効にするか、`~/.claude/settings.json` で [`editorMode`](/ja/settings#available-settings) を `"vim"` に設定します。エディタモードを `normal` に戻してオフにします。362Claude Code には、プロンプト入力用の Vim スタイルの編集モードが含まれています。`/config` → Editor mode から有効にするか、`~/.claude/settings.json` で [`editorMode`](/docs/ja/settings-reference#editormode) を `"vim"` に設定することで有効にできます。Editor mode を `normal` に戻すと、オフになります。
334 363
335Vim モードは NORMAL モードおよび VISUAL モードのモーションと演算子のサブセットをサポートしています。例えば、`hjkl` ナビゲーション、`v`/`V` 選択、およびテキストオブジェクトを使用した `d`/`c`/`y` などです。完全なキーテーブルについては、[Vim エディタモードリファレンス](/ja/interactive-mode#vim-editor-mode) を参照してください。364Vim モードは、NORMAL モードと VISUAL モードのモーション演算子のサブセットをサポートしており、`hjkl` ナビゲーション、`v`/`V` 選択、テキストオブジェクトを使用した `d`/`c`/`y` などが含まれます。完全なキーテーブルについては、[Vim エディタモードリファレンス](/docs/ja/interactive-mode#vim-editor-mode)を参照してください。
336 365
337Vim モーションはキーバインディングファイルを通じて再マップできません。`jj` を Escape にマップするなど、INSERT モードの 2 キーシーケンスをマップするには、ユーザー設定で [`vimInsertModeRemaps`](/ja/interactive-mode#remap-insert-mode-key-sequences) を設定します。366Vim モーションはキーバインディングファイルを通じて再マップできません。`jj` を Escape にマップするなどの 2 キー INSERT モードシーケンスをマップするには、ユーザー設定で [`vimInsertModeRemaps`](/docs/ja/interactive-mode#remap-insert-mode-key-sequences) を設定してください。
338 367
339INSERT モードで Enter キーを押すと、標準 Vim とは異なり、プロンプトが送信されます。代わりに改行を挿入するには、NORMAL モードで `o` または `O` を使用するか、Ctrl+J を使用します。368INSERT モードで Enter キーを押すと、標準的な Vim とは異なり、プロンプトが送信されます。代わりに NORMAL モードで `o` または `O` を使用するか、Ctrl+J を使用して改行を挿入してください。
340 369
341<h2 id="related-resources">370<h2 id="related-resources">
342 関連リソース371 関連リソース
343</h2>372</h2>
344 373
345* [インタラクティブモード](/ja/interactive-mode):完全なキーボードショートカットリファレンスと Vim キーテーブル374* [インタラクティブモード](/docs/ja/interactive-mode):完全なキーボードショートカットリファレンスと Vim キーテーブル
346* [キーバインディング](/ja/keybindings):Enter と Shift+Enter を含む任意の Claude Code ショートカットを再マップ375* [キーバインディング](/docs/ja/keybindings):Enter と Shift+Enter を含む任意の Claude Code ショートカットを再マップ
347* [フルスクリーンレンダリング](/ja/fullscreen):フルスクリーンモードでのスクロール、検索、コピーの詳細376* [フルスクリーンレンダリング](/docs/ja/fullscreen):フルスクリーンモードでのスクロール、検索、コピーの詳細
348* [フック ガイド](/ja/hooks-guide):Linux と Windows の詳細な通知フック例377* [フック ガイド](/docs/ja/hooks-guide):Linux と Windows の詳細な通知フック例
349* [トラブルシューティング](/ja/troubleshooting):ターミナル設定外の問題の修正378* [トラブルシューティング](/docs/ja/troubleshooting):ターミナル設定外の問題の修正