Skip to content

VSCodeの不要なサジェッションとヒントを完全無効化する方法

問題点:意図しないサジェッションによるコード入力の阻害

Pythonファイル編集時にNoneと入力している際、eを打鍵した瞬間にNotImplementedサジェッションが表示され、Enterキーを押すと意図せず文字列が置換されてしまいます。高速タイピングを行うユーザーにとって、この動作は以下のような深刻な課題を引き起こします:

  1. コード入力フローの頻繁な中断
  2. 誤ったコードの置換による修正作業の追加
  3. 生産性の著しい低下(毎回エスケープキーやマウス操作が必要)
  4. 設定項目が多いため適切な無効化方法の特定が困難

従来のeditor.suggesteditor.parameterHint設定の無効化だけでは解決できないケースであり、包括的な対策が必要となります。


ソリューション1:GUI設定による基本無効化(推奨)

ステップ1: Enterキーでのサジェッション適用を停止

  1. Ctrl + ,で設定を開く
  2. 検索ボックスにaccept suggestionと入力
  3. Editor > Suggest: Accept Suggestion On Enteroffに変更

Accept Suggestion On Enter設定

即時効果

この設定変更により、Enterキーでサジェッションが適用される動作が即時停止します。タイピング速度が速いユースケースに最適な初歩的対策です。

ステップ2: サジェッションポップアップを完全非表示

  1. 設定検索でquick suggestionsと入力
  2. Editor > Quick Suggestionsの各項目を無効化:
    • Commentsoff
    • Stringsoff
    • Otheroff

Quick Suggestions設定

注意点

この設定は全ての言語に適用されます。特定言語のみに制限したい場合は、次のJSON設定を参照してください。


ソリューション2:settings.jsonによる詳細設定

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
}

設定の適用方法

  1. Ctrl + Shift + Pでコマンドパレットを開く
  2. Preferences: Open User Settings (JSON)を選択
  3. 上記設定を追加しファイルを保存

言語別設定のカスタマイズ

[python]部分を次のように変更すると他言語にも適用可能:

  • JavaScript: [javascript]
  • TypeScript: [typescript]
  • 全言語適用: [*]

動作メカニズムと各設定の効果

設定項目デフォルト無効化時の効果
acceptSuggestionOnEnteronEnterキーでのサジェッション適用停止
editor.inlineSuggest.enabledtrueインライン表示される候補の完全非表示
editor.parameterHints.enabledtrue関数パラメータヒントの非表示
editor.suggest.showWordstrue単語候補の非表示
editor.suggest.showSnippetstrueコードスニペット候補の非表示
editor.quickSuggestionson入力中の即時候補表示の停止

無効化の階層的アプローチ


追加チップ:問題別トラブルシューティング

サジェッションが一部残る場合のチェックリスト

  1. ワークスペース設定の優先度確認(ユーザー設定 vs ワークスペース設定)
  2. 拡張機能がサジェッションを生成していないか確認(特にPython用)
  3. 言語モードの確認(ファイル右下の言語表示が正しいか)
bash
# 拡張機能の影響テスト方法
code --disable-extensions  # 拡張機能無効モードで起動

設定リセット方法

json
// デフォルト状態に戻す場合
"editor.inlineSuggest.enabled": true,
"editor.suggest.showWords": null,

設定リセット時の注意

値をfalseから削除するだけではデフォルト値(true)に戻らないため、明示的にtrueを設定する必要があります。null指定でプロパティ削除も可能です。


これらの設定により、VSCodeのサジェッション機能がタイピングフローを妨害する問題は完全に解決します。最初にAccept Suggestion On Enterの無効化を試し、さらに抑制が必要な場合にsettings.jsonによる詳細設定を適用する段階的アプローチが推奨されます。