【1クリック】エクスプローラーの右クリックからWSL側のVS Codeを開く方法【Windows 10/11】

WSL(Ubuntuなど)の中にあるプロジェクトをVS Codeで開くとき、毎回ターミナルを開いて code . と打っていませんか?
右クリックにある「Codeで開く」を使う手もありますが、こちらはWindows側のVS Codeとして開いてしまうため、結局「WSLで再度開く」を押し直すことになりがちです。
この記事では、右クリックメニューに「WSL の Code で開く」という項目を1つ追加して、WSLに接続された状態のVS Codeを1クリックで開けるようにします。
設定にかかるのは5分ほどで、管理者権限も再起動も必要ありません。やることはこちらです⇩
| 手順 | やること |
|---|---|
| 1 | 自分の環境の値を2つ確認する(ディストリ名とVS Codeの場所) |
| 2 | .regファイルを作る(コピペして2種類の値を書き換えるだけ) |
| 3 | ダブルクリックで適用する |
| 4 | 右クリックから開けるか動作確認する |
順番に見ていきましょう。
1. 「Codeで開く」がWSL開発では二度手間になる理由
WSLの中のフォルダをVS Codeで開くとき、多くの方はこうしているはずです。
- エクスプローラーでフォルダを探す
- 右クリック →「ターミナルで開く」
- ターミナルで
code .を打つ
VS Codeをインストールすると右クリックに「Codeで開く」が追加されますが、これはWindows側のVS Codeとして開く動きです。
WSL内のフォルダをこの方法で開くと、動作が遅かったり、拡張機能やターミナルがLinux側にならなかったりします。そこで「WSLで再度開く」を押し直すことになり、二度手間なんですよね。
今回の設定を入れると、右クリック →「WSL の Code で開く」だけで、最初からWSLに接続されたVS Codeが立ち上がるようになります。
2. 仕組みは「レジストリにメニューを1つ追加」だけ
やることは、レジストリのHKCU(ユーザー単位の設定領域)に右クリックメニューを1つ登録するだけです。メニューが実行するコマンドはこちらです。
wsl.exe -d <ディストリ名> --cd "%V" -e "/mnt/c/Users/<ユーザー名>/AppData/Local/Programs/Microsoft VS Code/bin/code" .
3つの部品がそれぞれ仕事をしています。
- %V:
右クリックしたフォルダのパスがWindows形式で入ります(例: \\wsl.localhost\Ubuntu\home\you\project) - wsl.exe --cd:
Windows形式のパスをWSL内のパス(/home/you/project)に自動変換して、そこを作業ディレクトリにしてくれます - -e ".../bin/code" .:
WSL側からcode .を実行するのと同じ動きです。VS CodeがWSLリモートモードで立ち上がります
つまり「ターミナルを開いて code .」を、Windowsが代わりにやってくれる仕掛けです。
HKCUへの登録はユーザー単位の設定なので、管理者権限は不要です。あとから2つのキーを消せば元に戻せます(手順は記事の最後に載せています)。
前提条件は次の3つです。
- Windows 10 / 11
- WSL2 + ディストリビューション(Ubuntuなど)導入済み
- Windows側にVS Codeがインストール済みで、「WSL」拡張機能が入っていること(WSL内で一度でも
code .が使えていればOKです)
3. 準備:自分の環境の値を2つ確認する
書き換えに使う値を先に確認しておきます。
ディストリ名
キーボードのWindowsキーを押して「powershell」と入力し、EnterでPowerShellを開いてください。開いたら、次のコマンドを貼り付けてEnterを押します。
wsl -l -q
表示された名前(例: Ubuntu や Ubuntu-24.04)をメモしておきます。
VS Codeのインストール先
標準(ユーザー単位)のインストールなら、次の場所にあります。<ユーザー名> は自分のWindowsユーザー名に読み替えてください。
C:\Users\<ユーザー名>\AppData\Local\Programs\Microsoft VS Code\
実際にあるか確かめたいときは、エクスプローラー上部のアドレス欄へ、<ユーザー名> を自分の名前に変えた上のパスを貼り付けてEnterを押してみてください。VS Codeのフォルダが開けば正解です。
全ユーザー向けにインストールしている場合は C:\Program Files\Microsoft VS Code\ です。その場合は、次の手順のコード内のパスを読み替えてください。
4. .regファイルを作って適用する
ここからはWindows側の操作です。まず、キーボードのWindowsキーを押して「メモ帳」と入力し、Enterでメモ帳を開いてください(スタートボタン横の検索欄に入力してもOKです)。
開いたら、以下をコピーしてそのまま貼り付けます。右上のコピーボタンが使えます。
Ubuntu-24.04 と <ユーザー名> の部分(計6箇所)を、先ほど確認した自分の値に書き換えてください。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\Directory\shell\WSLCode]
@="WSL の Code で開く"
"Icon"="C:\\Users\\<ユーザー名>\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe"
[HKEY_CURRENT_USER\Software\Classes\Directory\shell\WSLCode\command]
@="wsl.exe -d Ubuntu-24.04 --cd \"%V\" -e \"/mnt/c/Users/<ユーザー名>/AppData/Local/Programs/Microsoft VS Code/bin/code\" ."
[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\WSLCode]
@="WSL の Code で開く"
"Icon"="C:\\Users\\<ユーザー名>\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe"
[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\WSLCode\command]
@="wsl.exe -d Ubuntu-24.04 --cd \"%V\" -e \"/mnt/c/Users/<ユーザー名>/AppData/Local/Programs/Microsoft VS Code/bin/code\" ."
前半の Directory\shell がフォルダ本体を右クリックしたとき用、後半の Directory\Background\shell がフォルダを開いた状態で何もないところを右クリックしたとき用です。
保存するときが今回いちばんの注意ポイントです。メモ帳の「ファイル」メニュー →「名前を付けて保存」を選ぶと保存画面が開くので、次の3つを設定してください。
- 保存する場所:
画面左の一覧から「デスクトップ」を選びます(このあとダブルクリックするので、見つけやすい場所ならどこでも大丈夫です) - ファイル名:
wsl-vscode-context-menu.reg と入力します(末尾が .reg であること。ファイル名欄のすぐ下にある「ファイルの種類」は「すべてのファイル」へ変えます) - 文字コード:
保存画面の下のほうにある「エンコード」(または「文字コード」)のドロップダウンで「UTF-16 LE」を選びます
文字コードが既定のUTF-8のままだと、メニュー名の「WSL の Code で開く」が文字化けします。保存時に必ずUTF-16 LEを選んでください。
保存できたらメモ帳は閉じてOKです。デスクトップに wsl-vscode-context-menu.reg というファイルができているので、それをダブルクリックしてください。「続行しますか?」の警告で「はい」→「正しく設定されました」と出れば適用完了です。再起動も不要です。
5. 動作確認
エクスプローラーを開いて、上部のアドレス欄に \\wsl.localhost\ と入力してEnterを押すと、WSLの中のフォルダが表示されます。開きたいプロジェクトのフォルダまで進んだら、そのフォルダを右クリックして「WSL の Code で開く」を選んでください。
- 黒いウィンドウが一瞬表示されたあと、VS Codeが開きます
- 画面左下のリモートインジケーターに「WSL: Ubuntu-24.04」のように出ていれば成功です。ターミナルもLinux側になっています
Windows 11で新しい右クリックメニューを使っている場合は、「その他のオプションを表示」の中に表示されます(Shift+F10でも開けます)。
6. うまくいかないときは
黒いウィンドウが一瞬出るだけで、何も開かない
いちばんハマりやすいポイントです。コマンドを -e code . のような短い形で書くと発生します。
wsl -e が起動する環境では、VS Codeのbinフォルダが実行ファイルの検索対象に入らず、code が見つからないまま即終了してしまうためです。ターミナルから手で打つと動くので、気づきにくいんですよね。
この記事のコードのように、/mnt/c/Users/<ユーザー名>/AppData/Local/Programs/Microsoft VS Code/bin/code とフルパスで指定すれば解決します。全ユーザー向けインストールの場合は /mnt/c/Program Files/Microsoft VS Code/bin/code です。
メニュー名が文字化けした
.regファイルがUTF-8で保存されています。メモ帳で開き直して「UTF-16 LE」で保存し直し、もう一度ダブルクリックしてください。
メニュー自体が出ない
Windows 11の場合、既定の右クリックメニューには出ません。「その他のオプションを表示」を開いてみてください。
「指定されたディストリビューションは存在しません」系のエラーが出る
-d に書いたディストリ名が wsl -l -q の表示と一致していません。ハイフンやバージョン表記(Ubuntu と Ubuntu-24.04 など)まで正確に合わせてください。
7. 元に戻したいとき
Windowsキーを押して「regedit」と入力し、Enterでレジストリエディターを開きます(「変更を許可しますか?」の確認は「はい」を選びます)。開いたら、上部のアドレス欄に次のパスを1つずつ貼り付けてEnterを押し、画面左側で選ばれた「WSLCode」を右クリック →「削除」を選べば元どおりです。
HKEY_CURRENT_USER\Software\Classes\Directory\shell\WSLCode
HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\WSLCode
まとめ
最後に、ここまでのポイントをまとめます。
- 右クリックの「Codeで開く」はWindows側で開くため、WSL開発では二度手間になりやすい
- レジストリ(HKCU)にメニューを1つ追加すれば、wsl.exe --cd のパス自動変換で1クリックでWSL接続のVS Codeが開ける
- code は必ずフルパスで書くのがハマり回避のコツ
- 保存時の文字コードはUTF-16 LEを選ぶ
ターミナルを開いて code . と打つ数秒が毎回なくなるだけですが、1日に何度もフォルダを開く人ほど効いてきます。
設定はコピペと書き換えだけで終わるので、まずは .reg ファイルを作るところから試してみてください!
