VS Code 内蔵ターミナル補完設定(terminal.integrated.suggest)をちゃんと理解する
まえがき
VS Code のターミナル補完は、ここ1〜2年で実用レベルまで進化した。
一方で設定項目は増え、boolean だと思ったら enum だった みたいな罠も多い。
この記事では 2026年1月時点の最新版 VS Code に存在する
terminal.integrated.suggest.* 系設定を、
値が複数あるものはすべて意味付きで整理する。
前提:この補完は「シェル補完」とは別レイヤー
-
bash / zsh / PowerShell が持つ補完
-
VS Code が提供する ターミナル統合補完
VS Code 側の補完は
typo を減らす・事故を未然に防ぐ 方向に特化している。
基本設定
terminal.integrated.suggest.enabled
"terminal.integrated.suggest.enabled": true
-
ターミナル補完全体のマスタースイッチ
-
falseにすると以下すべて無効
terminal.integrated.suggest.quickSuggestions
"terminal.integrated.suggest.quickSuggestions": true
-
入力中に 自動で候補を出すか
-
false にすると Ctrl+Space 明示呼び出しのみ
terminal.integrated.suggest.suggestOnTriggerCharacters
"terminal.integrated.suggest.suggestOnTriggerCharacters": true
-
/-.などの トリガー文字入力時に補完を出すか -
git checkout -の直後に候補が出るのはこれ
インライン補完(ゴースト文字)
terminal.integrated.suggest.inlineSuggestion
"terminal.integrated.suggest.inlineSuggestion": "off"
行内に薄いグレーで表示される
**未確定の予測文字(インライン補完)**の表示ルールを制御する設定。
この設定は boolean ではなく enum で、
表示位置と優先度まで含めて制御できる。
設定値と意味
| 値 | 挙動 |
|---|---|
"off" |
インライン補完を一切表示しない |
"alwaysOnTopExceptExactMatch" |
完全一致でない場合のみ、候補の先頭としてインライン表示 |
"alwaysOnTop" |
常にインライン補完を最優先で表示 |
各設定の詳しい挙動
"off"
-
ゴースト文字を完全に無効化
-
画面に表示される文字=確定文字のみ
-
認知的なズレが起きない
👉 制御感を最優先したい場合に最適
"alwaysOnTopExceptExactMatch"
-
候補が存在し、かつ 完全一致していない場合のみ インライン表示
-
すでに入力が完全一致している場合は表示されない
👉
「候補がズレてる時だけ軽くヒントが欲しい」
という 中庸なバランス型。
"alwaysOnTop"
-
常に最優先でインライン補完を表示
-
Copilot 的な先読み体験に近い
👉
補完を「入力の延長」として使う人向け。
ただし、視覚的には一番支配的。
使い分けの指針
-
自分で入力・確定した文字だけを信用したい
→"off" -
補完の存在は感じたいが、邪魔はされたくない
→"alwaysOnTopExceptExactMatch" -
先読み前提で高速入力したい
→"alwaysOnTop"
補完確定時の挙動
terminal.integrated.suggest.insertTrailingSpace
"terminal.integrated.suggest.insertTrailingSpace": true
-
補完確定時、末尾にスペースを自動挿入するか
-
次の引数をすぐ入力できる
CLI 操作が多い場合は true が快適。
terminal.integrated.suggest.selectionMode
"terminal.integrated.suggest.selectionMode": "always"
補完候補リストの 初期選択状態を制御する。
設定値と意味
| 値 | 挙動 |
|---|---|
"always" |
常に先頭候補を選択状態にする |
"never" |
明示的に選択しない限り確定しない |
使い分け
-
Enter 一発で進みたい →
"always" -
誤爆を極力防ぎたい →
"never"
キー操作・ナビゲーション
terminal.integrated.suggest.upArrowNavigatesHistory
"terminal.integrated.suggest.upArrowNavigatesHistory": true
↑キーの役割を制御する。
-
true
→ コマンド履歴を遡る(bash/zsh と同じ) -
false
→ 補完候補の移動に使う
シェルの筋肉記憶がある人は true 一択。
cd コマンド専用補完
terminal.integrated.suggest.cdPath
"terminal.integrated.suggest.cdPath": "relative"
cd コマンド入力時の パス補完方法を制御する設定。
ディレクトリ移動において、どの形式のパスを補完候補として出すかを決める。
設定値と意味
| 値 | 挙動 |
|---|---|
"absolute" |
絶対パスで補完する |
"relative" |
相対パスで補完する |
"off" |
cd 専用の補完を無効化する |
各設定の詳しい挙動
"absolute"
cd /home/user/project/src
-
常にルート起点のフルパスで補完
-
パスの所在が分かりやすい
-
ただし 長くなりがち
👉
ディレクトリ構造を明示的に把握したい人向け。
"relative"
cd ./src
cd ../lib
-
現在位置からの相対パスで補完
-
入力が短く、CLI 操作が軽い
-
bash/zsh の感覚に近い
👉
日常的なターミナル操作では最も自然。
"off"
-
cdに対して VS Code 側の補完を行わない -
シェル(bash / zsh / PowerShell)の補完のみ使用
👉
VS Code の補完を最小限にしたい場合。
使い分けの指針
-
パスを明示的に確認しながら移動したい
→"absolute" -
高速・省入力で移動したい
→"relative" -
補完はシェルに任せたい
→"off"
補完ソース・表示系
terminal.integrated.suggest.providers
"terminal.integrated.suggest.providers": {}
-
補完の提供元(シェル、パス、VS Code 内部など)
-
通常は触らない
-
カスタマイズは上級者向け
terminal.integrated.suggest.showStatusBar
"terminal.integrated.suggest.showStatusBar": false
-
ターミナル右下の補完ステータス表示
-
常時不要ならオフでOK
Windows 環境向け
terminal.integrated.suggest.windowsExecutableExtensions
"terminal.integrated.suggest.windowsExecutableExtensions": [
".exe",
".cmd",
".ps1"
]
-
実行可能ファイルとして扱う拡張子
-
PowerShell 環境では重要
個人的おすすめ設定
{
"terminal.integrated.suggest.enabled": true,
"terminal.integrated.suggest.quickSuggestions": true,
"terminal.integrated.suggest.inlineSuggestion": "alwaysOnTopExceptExactMatch",
"terminal.integrated.suggest.runOnEnter": "exactMatchIgnoreExtension",
"terminal.integrated.suggest.suggestOnTriggerCharacters": true,
"terminal.integrated.suggest.insertTrailingSpace": true,
"terminal.integrated.suggest.upArrowNavigatesHistory": false,
"terminal.integrated.suggest.showStatusBar": false
}
-
ゴースト文字なし
-
typo は減る
Discussion