VSCodeの不要なサジェッションとヒントを完全無効化する方法
問題点:意図しないサジェッションによるコード入力の阻害
Pythonファイル編集時にNone
と入力している際、e
を打鍵した瞬間にNotImplemented
サジェッションが表示され、Enterキーを押すと意図せず文字列が置換されてしまいます。高速タイピングを行うユーザーにとって、この動作は以下のような深刻な課題を引き起こします:
- コード入力フローの頻繁な中断
- 誤ったコードの置換による修正作業の追加
- 生産性の著しい低下(毎回エスケープキーやマウス操作が必要)
- 設定項目が多いため適切な無効化方法の特定が困難
従来のeditor.suggest
やeditor.parameterHint
設定の無効化だけでは解決できないケースであり、包括的な対策が必要となります。
ソリューション1:GUI設定による基本無効化(推奨)
ステップ1: Enterキーでのサジェッション適用を停止
Ctrl + ,
で設定を開く- 検索ボックスに
accept suggestion
と入力 Editor > Suggest: Accept Suggestion On Enter
をoff
に変更
即時効果
この設定変更により、Enterキーでサジェッションが適用される動作が即時停止します。タイピング速度が速いユースケースに最適な初歩的対策です。
ステップ2: サジェッションポップアップを完全非表示
- 設定検索で
quick suggestions
と入力 Editor > Quick Suggestions
の各項目を無効化:Comments
→off
Strings
→off
Other
→off
注意点
この設定は全ての言語に適用されます。特定言語のみに制限したい場合は、次のJSON設定を参照してください。
ソリューション2:settings.jsonによる詳細設定
{
// インラインサジェッションの完全無効化
"editor.inlineSuggest.enabled": false,
// パラメータヒントの非表示
"editor.parameterHints.enabled": false,
// 言語別設定(<language>をpython等に置換)
"[python]": {
"editor.quickSuggestions": {
"other": false,
"comments": false,
"strings": false
},
// 単語候補を非表示
"editor.suggest.showWords": false,
// スニペット候補を非表示
"editor.suggest.showSnippets": false
},
// TypeScript/JavaScript専用設定(追加)
"typescript.suggest.enabled": false,
"javascript.suggest.enabled": false
}
設定の適用方法
Ctrl + Shift + P
でコマンドパレットを開くPreferences: Open User Settings (JSON)
を選択- 上記設定を追加しファイルを保存
言語別設定のカスタマイズ
[python]
部分を次のように変更すると他言語にも適用可能:
- JavaScript:
[javascript]
- TypeScript:
[typescript]
- 全言語適用:
[*]
動作メカニズムと各設定の効果
設定項目 | デフォルト | 無効化時の効果 |
---|---|---|
acceptSuggestionOnEnter | on | Enterキーでのサジェッション適用停止 |
editor.inlineSuggest.enabled | true | インライン表示される候補の完全非表示 |
editor.parameterHints.enabled | true | 関数パラメータヒントの非表示 |
editor.suggest.showWords | true | 単語候補の非表示 |
editor.suggest.showSnippets | true | コードスニペット候補の非表示 |
editor.quickSuggestions | on | 入力中の即時候補表示の停止 |
無効化の階層的アプローチ
追加チップ:問題別トラブルシューティング
サジェッションが一部残る場合のチェックリスト
- ワークスペース設定の優先度確認(ユーザー設定 vs ワークスペース設定)
- 拡張機能がサジェッションを生成していないか確認(特にPython用)
- 言語モードの確認(ファイル右下の言語表示が正しいか)
# 拡張機能の影響テスト方法
code --disable-extensions # 拡張機能無効モードで起動
設定リセット方法
// デフォルト状態に戻す場合
"editor.inlineSuggest.enabled": true,
"editor.suggest.showWords": null,
設定リセット時の注意
値をfalse
から削除するだけではデフォルト値(true
)に戻らないため、明示的にtrue
を設定する必要があります。null
指定でプロパティ削除も可能です。
これらの設定により、VSCodeのサジェッション機能がタイピングフローを妨害する問題は完全に解決します。最初にAccept Suggestion On Enter
の無効化を試し、さらに抑制が必要な場合にsettings.json
による詳細設定を適用する段階的アプローチが推奨されます。