昨年のブラックフライデーでWindowsマシンを手に入れて以来、自宅で使用する開発環境にはWindwos + WSL2を利用して、Rustを学んでいます。
これまでLinux環境での経験が長いこともあって、普段使うツールのほとんどすべてはWSL環境上に構築していて、テキストエディタには長いことEmacsを使ってきました。

WSL2とX410の組み合わせによるXWindowのサポートもなかなか良くて快適に使っていたのですが、最近X410が頻繁にエディタのウィンドウを見失ってしまってタスクトレイにEmacsが表示されなくなったこともあって、会社で使っているVSCodeへの乗り換えを進めています。

Linux環境で発生する問題

VSCodeへの乗り換えを行った際につまずいた最大のポイントが日本語入力環境でした。
EmacsではmozcをバックエンドにEmacs上でIMEを切り替えて日本語入力できていたのですが、VSCodeだとfcitx等をそろえる必要がある上、Windowsのキーバインドとバッティングする所があったり、設定を工夫してもうまくIMEのON/OFF切り替えを行うことができなかったりして、WSL2 + X410の組み合わせで使うには最悪に近いエクスペリエンスでした。

そこで色々探してみたところ、Remote WSLというVSCode拡張を見つけました。
これがもの凄く便利だったので、二日続けて記事を書こうという気になったのです。

Remote WSLとは

要するにWSL上のファイルをさもWindows上にあるかのようにWindowsにセットアップしたVSCodeから扱えるようになります!っていうような拡張で、まるでファイル編集だけをWindows上のエディタに飛ばして行っているかの如く扱えるという便利機能です。

これを使えばWSL上でcodeとタイプすればWindows上のVSCodeが起動して、各種開発をWindows上のVSCodeを介してWSL上に構築したインフラで実施することができるようになります。

セットアップ

Win10 + WSL2 + Ubuntu環境では

  1. Windows上にVSCodeをセットアップ
  2. VSCodeにRemote WSLを導入
  3. Ubuntu上でcodeとタイプして、必要なサーバソフトウェアをセットアップ

という手順だけで導入できるようです。
その後はUbuntu上でcodeとタイプしてVSCodeを呼び出せば、WSL上のフォルダを対象に各種操作を実施することができるようになります。

嬉しいポイント

個人的に一番嬉しかったポイントは、先に書いた日本語入力周りの不都合が解消されたところです。
このブログ記事もRemote WSLを使って書いていますが、この通り不都合なく日本語を扱うことができています。
(IMEについて言えば、Windowsで動くソフトウェアはやはりよくできていて、mozcに比べてもはるかに快適な変換結果を得ることができています)

Windows上での作業でありながらターミナルタブを開けばWSL環境が開きますし、VSCode標準添付のGit操作もWSL上のディレクトリを相手に動いてくれるようになるのでコマンドでgitを叩く機会も減りました。

(おそらくRustのコンパイラやLSPもWSL上に構築したものが動いてくれていると思います)
使い始めて数日ですが、今のところ悪いポイントは見当たらないぐらいに心地よいです。

誰も教えてくれなかった

こんなに便利なRemote WSL環境なのですが、Twitter上で環境構築に悩んでいる事をつぶやいたところで、誰も教えてくれませんでした。
そんなこともあって、逆にあんまり知られていないのかも?と感じて今回記事を起こした格好です。
とても便利なツールなので、WSL + VSCodeで環境構築している方は積極的に利用してくのが良いと思います。