VSCodeの言語別の設定が特定のMarkdownファイルだけ反映されないときの解決策
こんにちは、リテールアプリ共創部の飯田@大阪です。
最近 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 の右下ステータスバーに表示される言語モードを確認したところ、原因がわかりました。

SKILL.md の言語モードが、 Skill として認識されていました。
[markdown] ブロックの設定は、言語モードが Markdown のファイルにのみ適用されます。
言語モードが Skill になっているファイルには適用されないため、これが原因のようです。
対処法
files.associations を使って、該当ファイルを Markdown として認識させます。
"files.associations": {
"SKILL.md": "markdown"
}

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








