「VS Codeで新しいファイルを作成したけど、シンタックスハイライトが効かない…」「JSONをコピペしたのに、フォーマットができない…」
こんな経験、ありませんか?
Visual Studio Code(VS Code)で快適にコーディングするには、言語モードを正しく設定することが重要です。しかし、毎回マウスで操作するのは面倒ですよね。
本記事では、VS Codeの言語モードを素早く変更するためのショートカットキーと、関連する便利な設定方法を詳しく解説します。初心者の方でも理解できるよう、画面の見方から応用的な設定まで、順を追って説明していきます。
作業効率を上げたい方、VS Codeをもっと使いこなしたい方は、ぜひ最後まで読んでみてください。
言語モードとは

基本的な説明
言語モード(Language Mode)とは、VS Codeがファイルの内容をどの言語として認識するかを示す設定です。
正式には「言語識別子」(Language Identifier)と呼ばれます。
言語モードが設定されると
- シンタックスハイライト(コードの色分け表示)が有効になる
- その言語に応じたコード補完が動作する
- フォーマット機能が正しく動作する
- 言語固有の拡張機能が有効になる
言語モードの表示場所
VS Codeの画面右下、ステータスバーに現在の言語モードが表示されています。
例えば:
JavaScriptPythonMarkdownJSONプレーンテキスト(言語が設定されていない状態)
言語モードが自動設定される条件
ファイル保存時
ファイルを保存すると、拡張子から言語モードが自動的に判定されます。
例:
sample.js→ JavaScriptindex.html→ HTMLstyle.css→ CSSdata.json→ JSONREADME.md→ Markdown
ファイルを開いた時
既存のファイルを開くと、拡張子から言語モードが自動設定されます。
言語モードが設定されない場合
新規ファイルを作成した直後
未保存のファイルは「プレーンテキスト」として扱われます。
拡張子がない、または未登録の拡張子
VS Codeが認識していない拡張子のファイルは、言語モードが自動設定されません。
コピー&ペーストしたコード
外部からコードをコピーして新しいファイルに貼り付けた場合、保存するまで言語モードは設定されません。
こういった場合に、手動で言語モードを設定する必要があります。
言語モード変更の基本操作
言語モードを変更する方法は3つあります。
方法1:ステータスバーから変更(マウス操作)
最も直感的な方法です。
手順
手順1:VS Codeの画面右下にあるステータスバーを確認します。
手順2:言語モードが表示されている部分(例:「プレーンテキスト」「JavaScript」など)をクリックします。
手順3:画面上部に言語モードの選択メニューが表示されます。
手順4:一覧から目的の言語を選択します。
手順5:選択した言語モードが適用され、シンタックスハイライトが有効になります。
メリット
- 直感的で分かりやすい
- 言語の一覧を見ながら選べる
デメリット
- マウス操作が必要
- 頻繁に変更する場合は非効率
方法2:デフォルトショートカット(キーボード操作)
これが最も効率的な方法です。
Windows / Linux
Ctrl + K, M
操作手順:
Ctrlキーを押しながらKを押す- キーを離す
Mを押す
Mac
Cmd + K, M
操作手順:
Cmdキーを押しながらKを押す- キーを離す
Mを押す
重要なポイント
Ctrl+K(またはCmd+K)とMは別々に押します。
同時に押すと動作しません。
正しい操作
CtrlとKを同時に押す- 両方のキーを離す
Mを押す
間違った操作
Ctrl+K+Mを全部同時に押す(これでは動きません)
ショートカットが動作しない場合
一部の環境では、このショートカットが他の機能と競合することがあります。
詳しくは「よくあるトラブルと解決方法」セクションで解説します。
方法3:コマンドパレットから変更
コマンドパレット経由で変更することもできます。
手順
手順1:コマンドパレットを開きます。
Windows / Linux
Ctrl + Shift + P
Mac
Cmd + Shift + P
手順2:「言語」または「language」と入力します。
手順3:「言語モードの変更」(Change Language Mode)を選択します。
手順4:言語の一覧から目的の言語を選択します。
メリット
- ショートカットが覚えやすい
- 他のコマンドパレット操作と統一感がある
デメリット
- ステップ数が多い
- 専用ショートカットより時間がかかる
カスタムショートカットの設定
デフォルトのCtrl+K, Mが使いにくい場合、独自のショートカットを設定できます。
カスタムショートカットの設定手順
手順1:コマンドパレットを開く
Ctrl + Shift + P (Mac: Cmd + Shift + P)
手順2:「Keyboard Shortcuts」を検索
「keyboard」と入力して、「基本設定: キーボード ショートカットを開く」を選択します。
または、メニューから「ファイル」→「基本設定」→「キーボード ショートカット」を選択します。
手順3:「言語モードの変更」を検索
検索ボックスに「言語モード」または「Change Language Mode」と入力します。
手順4:ショートカットを変更
「言語モードの変更」の項目を見つけたら、左側の鉛筆アイコンをクリックします。
手順5:新しいショートカットを入力
任意のキーの組み合わせを押します。
例:
Ctrl + Shift + LCtrl + Alt + LCmd + Shift + I(Mac)
手順6:Enterで確定
キーの組み合わせを入力したら、Enterキーで確定します。
おすすめのカスタムショートカット
Windows / Linux
Ctrl + Shift + L
理由:他の機能と競合しにくく、「Language」の頭文字で覚えやすい
Mac
Cmd + Shift + I
理由:デフォルトのCmd+K, Mより押しやすい
keybindings.jsonで直接編集
より詳細な設定をしたい場合は、JSONファイルを直接編集できます。
手順
手順1:コマンドパレットを開く
Ctrl + Shift + P
手順2:「keybindings.json」を開く
「Preferences: Open Keyboard Shortcuts (JSON)」を選択します。
手順3:設定を追加
[
{
"key": "ctrl+shift+l",
"command": "workbench.action.editor.changeLanguageMode"
}
]
Macの場合:
[
{
"key": "cmd+shift+i",
"command": "workbench.action.editor.changeLanguageMode"
}
]
手順4:ファイルを保存
Ctrl+S(Mac: Cmd+S)で保存します。
デフォルト言語モードの設定

新規ファイルを作成した際に、特定の言語モードをデフォルトで適用できます。
設定方法
手順1:設定画面を開く
Ctrl + , (Mac: Cmd + ,)
または、メニューから「ファイル」→「基本設定」→「設定」を選択します。
手順2:「defaultLanguage」を検索
検索ボックスに「defaultLanguage」と入力します。
手順3:言語識別子を入力
「Files: Default Language」の項目に、デフォルトで使用したい言語識別子を入力します。
例:
markdown(Markdown)javascript(JavaScript)python(Python)json(JSON)html(HTML)
重要:言語識別子は小文字で入力
大文字で入力すると正しく動作しません。
例:
- ✓ 正しい:
markdown - ✗ 間違い:
Markdown
主な言語識別子一覧
| 言語 | 言語識別子 |
|---|---|
| JavaScript | javascript |
| TypeScript | typescript |
| Python | python |
| Java | java |
| C++ | cpp |
| C# | csharp |
| PHP | php |
| Ruby | ruby |
| Go | go |
| Rust | rust |
| HTML | html |
| CSS | css |
| JSON | json |
| XML | xml |
| YAML | yaml |
| Markdown | markdown |
| SQL | sql |
| Shell Script | shellscript |
言語識別子の確認方法
方法1:コマンドパレットから確認
手順1:言語モード変更のショートカットを実行
Ctrl + K, M (Mac: Cmd + K, M)
手順2:表示される言語一覧で、各言語の横に識別子が表示されます。
方法2:settings.jsonで確認
既に言語モードを設定したファイルを開き、右下のステータスバーを確認すると、現在の言語識別子が分かります。
デフォルト言語モードの使用例
Markdownをデフォルトにする
日記やメモをMarkdownで書く場合に便利です。
設定:
Files: Default Language → markdown
JavaScriptをデフォルトにする
Web開発でJavaScriptを頻繁に使う場合に便利です。
設定:
Files: Default Language → javascript
ファイル拡張子との関連付け
特定の拡張子を特定の言語モードに関連付けることができます。
拡張子関連付けの設定方法
手順1:言語モード選択画面を開く
ステータスバーの言語モード表示部分をクリック、またはショートカットCtrl+K, Mを実行します。
手順2:ファイルの関連付けを構成
言語一覧の一番下に、「’.(拡張子)’ に対するファイルの関連付けの構成」という項目があります。
これをクリックします。
手順3:言語を選択
関連付けたい言語を選択します。
settings.jsonで直接設定
より詳細な設定は、settings.jsonで行えます。
手順1:設定ファイルを開く
Ctrl + , (Mac: Cmd + ,)
設定画面右上の「{}」アイコン(設定(JSON)を開く)をクリックします。
手順2:関連付けを追加
{
"files.associations": {
"*.inc": "php",
"*.custom": "javascript",
"*.conf": "ini",
"*.log": "plaintext"
}
}
関連付けの具体例
例1:.incファイルをPHPとして扱う
{
"files.associations": {
"*.inc": "php"
}
}
例2:.envファイルをプロパティファイルとして扱う
{
"files.associations": {
".env": "properties",
".env.*": "properties"
}
}
例3:拡張子なしのファイルをShellスクリプトとして扱う
{
"files.associations": {
"Dockerfile*": "dockerfile",
"Makefile*": "makefile"
}
}
言語の自動検出機能
VS Code 1.60以降、ファイルの内容から言語を自動検出する機能が追加されました。
自動検出の仕組み
機械学習ベースの検出
TensorFlow.jsとGuesslangモデルを使用して、ファイルの内容から言語を推測します。
対象ファイル
- 未保存の新規ファイル
- 拡張子がないファイル
動作タイミング
ファイルにテキストを入力すると、自動的に言語が検出されます。
自動検出を無効化する方法
自動検出が邪魔な場合は、無効にできます。
手順1:設定画面を開く
Ctrl + , (Mac: Cmd + ,)
手順2:「Language Detection」を検索
検索ボックスに「language detection」と入力します。
手順3:チェックを外す
「Workbench > Editor: Language Detection」のチェックを外します。
settings.jsonで設定
{
"workbench.editor.languageDetection": false
}
特定言語モードへの直接変更
特定の言語に直接変更するショートカットを設定することもできます。
Commands拡張機能を使用
手順1:拡張機能をインストール
拡張機能マーケットプレイスで「Commands」を検索してインストールします。
手順2:keybindings.jsonを編集
{
"key": "alt+s",
"command": "commands.setEditorLanguage",
"args": "sql",
"when": "editorTextFocus"
}
このように設定すると、Alt+SでSQL言語モードに直接変更できます。
複数の言語用ショートカット
[
{
"key": "alt+j",
"command": "commands.setEditorLanguage",
"args": "json",
"when": "editorTextFocus"
},
{
"key": "alt+m",
"command": "commands.setEditorLanguage",
"args": "markdown",
"when": "editorTextFocus"
},
{
"key": "alt+p",
"command": "commands.setEditorLanguage",
"args": "python",
"when": "editorTextFocus"
}
]
よくあるトラブルと解決方法
トラブル1:ショートカットが動作しない
症状
Ctrl+K, Mを押しても言語モード選択画面が表示されない。
原因1:ステータスバーに言語モード表示がない
ステータスバーに言語モードが表示されていないと、ショートカットが動作しないことがあります。
解決方法
手順1:ステータスバーを右クリックします。
手順2:「エディターの言語」にチェックを入れます。
原因2:他のショートカットと競合
Gitの拡張機能など、他の機能がCtrl+Kを使用している場合があります。
解決方法
カスタムショートカットを設定します(前述の「カスタムショートカットの設定」を参照)。
原因3:キーバインドが正しくない
Ctrl+KとMを同時に押していませんか?
解決方法
Ctrl+Kを押す- キーを離す
Mを押す
この順序で操作してください。
トラブル2:言語モードを変更してもフォーマットが効かない
症状
言語モードを変更したのに、Shift+Alt+Fでフォーマットできない。
原因
その言語用のフォーマッターがインストールされていない。
解決方法
拡張機能マーケットプレイスから、該当言語のフォーマッター拡張機能をインストールします。
例:
- Prettier(JavaScript、TypeScript、CSS、HTMLなど)
- Python(Python)
- C/C++(C、C++)
トラブル3:デフォルト言語モードが反映されない
症状
files.defaultLanguageを設定したのに、新規ファイルが指定した言語にならない。
原因
言語識別子が間違っている(大文字になっている、スペルミスなど)。
解決方法
言語識別子を小文字で正しく入力してください。
例:
- ✓ 正しい:
markdown - ✗ 間違い:
Markdown、MarkDown
トラブル4:ファイル保存後に言語モードが変わってしまう
症状
言語モードを設定したのに、保存すると違う言語モードに変わる。
原因
ファイルの拡張子が別の言語に関連付けられている。
解決方法
ファイル拡張子との関連付けを正しく設定します(前述の「ファイル拡張子との関連付け」を参照)。
トラブル5:コマンドパレットで言語モード変更が見つからない
症状
コマンドパレットで「言語モード」と検索しても見つからない。
原因
英語表示になっている、または検索ワードが間違っている。
解決方法
以下のキーワードで検索してください:
- 日本語:「言語」「言語モード」
- 英語:「language」「Change Language Mode」
実用的な使用例

使用例1:JSONのフォーマット
コピー&ペーストしたJSONデータを整形する場合。
手順
手順1:新規ファイルを作成(Ctrl+N)
手順2:JSONデータを貼り付け
手順3:言語モードをJSONに変更(Ctrl+K, M → json)
手順4:フォーマット実行(Shift+Alt+F)
設定しておくと便利なこと
カスタムショートカットで直接JSON言語モードに変更できるようにしておく。
{
"key": "alt+j",
"command": "commands.setEditorLanguage",
"args": "json"
}
使用例2:ログファイルの確認
拡張子が.logのファイルを開く場合。
問題
ログファイルは通常プレーンテキストですが、JSONやXML形式のログを読みやすくしたい。
解決方法
手順1:ログファイルを開く
手順2:内容を確認してフォーマットを判断(JSON、XMLなど)
手順3:言語モードを変更(Ctrl+K, M)
手順4:該当する言語(JSON、XMLなど)を選択
恒久的な対策
.logファイルを常にJSONとして扱う場合は、関連付けを設定します。
{
"files.associations": {
"*.log": "json"
}
}
使用例3:コードスニペットのメモ
Slackやドキュメントからコードをコピーしてメモする場合。
手順
手順1:新規ファイル作成(Ctrl+N)
手順2:コードを貼り付け
手順3:言語モードを適切に設定(例:Python)
手順4:シンタックスハイライトが有効になり、読みやすくなる
便利な設定
よく使う言語をデフォルト言語モードに設定しておきます。
{
"files.defaultLanguage": "python"
}
使用例4:Markdownでのメモ作成
日常的にメモをMarkdownで作成する場合。
設定
デフォルト言語モードをMarkdownに設定します。
{
"files.defaultLanguage": "markdown"
}
効果
新規ファイルを作成すると、自動的にMarkdownモードになり、すぐに書き始められます。
使用例5:設定ファイルの編集
拡張子が特殊な設定ファイルを編集する場合。
例:.envファイル
環境変数ファイル(.env)をプロパティファイルとして扱います。
{
"files.associations": {
".env*": "properties"
}
}
例:docker-compose.yml
YAMLファイルとして適切に認識されるようにします。
{
"files.associations": {
"docker-compose*.yml": "yaml"
}
}
まとめ
VS Codeの言語モード変更に関する情報をまとめました。
本記事のポイント
- 言語モードはシンタックスハイライトやコード補完に必要
- 効率的な変更にはショートカットキーが必須
- デフォルト言語モードやファイル関連付けで自動化できる
言語モード変更の3つの方法
方法1:ステータスバーから(マウス)
画面右下の言語モード表示部分をクリック
- メリット:直感的
- デメリット:マウス操作が必要
方法2:ショートカットキー(推奨)
Windows/Linux: Ctrl + K, M
Mac: Cmd + K, M
- メリット:最速
- デメリット:キーの組み合わせを覚える必要がある
方法3:コマンドパレット
Ctrl + Shift + P → "言語モード"
- メリット:覚えやすい
- デメリット:ステップ数が多い
便利な設定
カスタムショートカット
デフォルトのCtrl+K, Mが押しにくい場合は、独自のショートカットを設定しましょう。
推奨:Ctrl+Shift+L(Windows/Linux)、Cmd+Shift+I(Mac)
デフォルト言語モード
新規ファイルで頻繁に使う言語を設定します。
{
"files.defaultLanguage": "markdown"
}
ファイル拡張子の関連付け
特殊な拡張子を適切な言語モードに紐付けます。
{
"files.associations": {
"*.inc": "php",
".env*": "properties"
}
}
トラブルシューティング
ショートカットが動作しない
- ステータスバーに「エディターの言語」表示を有効にする
Ctrl+KとMを別々に押す(同時押しではない)- カスタムショートカットを設定する
フォーマットが効かない
- 該当言語のフォーマッター拡張機能をインストールする
デフォルト言語モードが反映されない
- 言語識別子を小文字で正しく入力する
実用的な活用例
- JSONデータのコピー&ペーストを即座にフォーマット
- ログファイルを適切な言語モードで見やすく表示
- Markdownメモをデフォルト言語モードで効率化
- 特殊な拡張子の設定ファイルを適切に編集
最後に
言語モードの変更は、VS Codeを使う上で頻繁に行う操作です。
ショートカットキーを覚えることで、作業効率が大幅に向上します。特にデフォルトのCtrl+K, Mが押しにくい場合は、自分に合ったカスタムショートカットを設定することをおすすめします。
また、よく使う言語のデフォルト設定や、ファイル拡張子の関連付けを適切に設定しておけば、言語モードを手動で変更する頻度自体を減らすことができます。
本記事で紹介した方法を活用して、より快適なVS Codeライフを送ってください!


コメント