VSCodeの言語別の設定が特定のMarkdownファイルだけ反映されないときの解決策

VSCodeの言語別の設定が特定のMarkdownファイルだけ反映されないときの解決策

2026.03.19

こんにちは、リテールアプリ共創部の飯田@大阪です。

最近 Claude Code の SKILL.md などを書く中で Markdown の表形式を多く使うようになり、使用しているフォントの比によっては、全角・半角混在の表で罫線がズレることが気になり始めました。
半角と全角の比が 1:2 のフォントを使うと揃うとわかったため、Markdown ファイルだけ 別のフォントで表示するよう settings.json に言語別設定を書いたのですが、一部の .md ファイルにだけ反映されないという現象にハマりました。

設定内容

ユーザー設定の settings.json に以下のように言語別設定を記述しました。

"editor.fontFamily": "'Fira Code'", // 共通で使っているフォント

"[markdown]": {
  "editor.fontFamily": "HackGen", // 今回導入する半角全角の比が 1:2 のフォント
},

VSCode では [言語ID] のブロック内に設定を書くことで、その言語のファイルにだけ設定を適用できます。

起きた現象

  • README.md → HackGen フォントが反映される
  • SKILL.md → HackGen フォントが反映されない(Fira Code フォントのまま)

同じ .md 拡張子なのに、ファイルによって挙動が異なる状況です。

原因

VSCode の右下ステータスバーに表示される言語モードを確認したところ、原因がわかりました。

t-iida_vscode_font_img1

SKILL.md の言語モードが、 Skill として認識されていました。

[markdown] ブロックの設定は、言語モードが Markdown のファイルにのみ適用されます。
言語モードが Skill になっているファイルには適用されないため、これが原因のようです。

対処法

files.associations を使って、該当ファイルを Markdown として認識させます。

"files.associations": {
  "SKILL.md": "markdown"
}

t-iida_vscode_font_img2

まとめ

  • VSCode の [markdown] などの言語別設定は、ファイルの拡張子ではなく言語モードに基づいて適用される
  • 拡張機能によって .md ファイルでも Markdown 以外の言語モードが割り当てられることがある
  • 言語別設定が反映されないときは、右下のステータスバーで言語モードを確認すると解決することがある

同じ拡張子なのに設定が反映されないときは、言語モードを疑ってみてください。

この記事をシェアする

FacebookHatena blogX

関連記事