WSLを使うならVS Codeから使うべき

WSL ( Windows Subsystem for Linux )は非常によくできています。WSLはWindows のコマンドライン・ウィンドウからでも、メニューからでも起動できるLinuxで、VMWareを使ったり、デュアルブートせずともLinuxのサクサク動作を享受できます。

しかしながら、その機能を使うならぜひともVisual Studio Code (VS Code)エディタと組み合わせて動かすべきです。ここでは、WSL + VS Codeがいかに素晴らしいか、その一部を紹介します。

WindowsからVS Codeを使ってWSLを起動できる

これはある意味順当な機能です。WindowsのVS CodeからWSLを利用できます。

VS CodeはWSLの中のファイルシステムやBashをWindowsのファイルシステムやコマンドラインと同列に利用できます。ですので、VS CodeのTerminalペインの中でWSLのBashを呼び出すことができますし、Explorerペインの中でWSLのファイルシステムを一覧できます。

VS Codeはアプリケーションを閉じるときに、Explorerの状態や開いているファイル、そしてコマンドラインの状態を保存し、再起動時にそれらを復元できます。この機能は、WindowsからVS Code越しにWSLを使っている時も同じで、WSLが起動されていないならVS CodeがWSLを起動します。Bashのヒストリーバッファも復元されます。

文章で書くとごちゃごちゃしていますが、ぱっと見には「VS CodeがVMのスナップショットをレジュームする」ように見えます。そしてVMのレジュームよりもはるかに高速です。

この機能はWSLだけではなく、SSH接続したサーバーに対しても利用できます。

WSLからWindowsのVS Codeを起動できる

これは先の機能とは逆の機能です。

WSL、つまりWindowsにインストールされているLinux サブシステムでVS Codeを使うために、WSLにVS Codeをインストールする必要はありません。Shellの中で以下のようにタイプするだけで、WindowsのVS Codeを起動できます。

code .

WindowsはWSLの中にVS Codeをリモートで使うスタブをインストールします。ですので、WSLの中で上記コードを実行すると、実際に起動するのはWindowsにインストールしたVS Codeです。そして、そのVS Codeが開くのは、WSLの中のファイルシステムです。

これは素晴らしい機能で、WSLにGUIをインストールせずともGUIエディタであるVS Codeを使えます。

なお、こんな機能を使わなくとも毎回Windows側からVS Codeを開けばいいようにも思えます。しかし、その方法だと、別ディレクトリを開きたいときに不便です。

それよりもWSLのBashの中で

code 任意のディレクトリ

とタイプすれば、新しいVS CodeウインドウがWindowsで開いて指定したディレクトリファイル一覧を表示します。違うディレクトリでの作業を開始することが非常に楽です。

GitHubの認証をWEBベースで行うことができる

私が一番恩恵を受けていると感じる機能です。

GitHubのセキュリティは年々向上していますが、一方でやや煩雑になっています。最近は権限を細かく制御したアクセストークンを発行することで、毎回パスワードをタイプしなくてもよくしていますが、今度はそのトークンの発行と管理が面倒です。

VS Codeはこの認証手続きをあっさりWEBベースに置き換えています。gitそのものは当然コマンドライン・アプリケーションですが、gitが認証を必要とするときにVS Codeが間に入り、WEBブラウザを使って認証を代行します。おかげで複数のリポジトリを行き来することがとても簡単です。

CMake と Google Testの統合

拡張機能を使ってCMakeとGoogle Testを統合することができます。

マイクロソフトが提供する拡張機能パッケージC/C++ Extension PackにはCMakeの拡張機能が同梱されています。このため、VS Codeがワークスペースを開いた際にCMakeLists.txtを発見すると、自動的にコンフィギュレーションの準備に入ります。

また、Google Test Adapterは Testの結果を読み取って、サイドパネルにテスト結果の一覧を表示します。当然、エラー箇所へのジャンプも簡単です。

WSLの良いところは高機能なツールをLinux上でサクサク動かすことができる点にあります。VS Codeを使えばこれらをWindows上で高度に統合して気軽に利用できます。

高いドキュメント作成能力

VS Codeの拡張機能は大量に提供されており、その中にはドキュメント作成に関するものもあります。

スペルチェッカーのような誰もが使うものから始まり、LaTeXのコマンドを入力補完するような特殊なものまであります。LaTeXはインストールが大変ですが、WSLの中に閉じ込めてしまえばWindows環境が散らかる心配はありません。VS Codeを使えばこれをきれいにWindowsから使うことができます。

また、私が特に気に入っているドキュメント開発機能にDraw.io Integration拡張機能があります。この機能を使うと、Draw.io文書をVS Codeの中で編集できます。ドキュメントに挿入する図形を、エディタから出ずに作業できるので非常に便利です。無論、WSLにGUIをインストールする必要はありません。

非常によくできた作業環境

以前、友人が

「Emacsは偶然エディタ機能が有名な作業環境だ」

と言っていましたが、同じ伝で行くと

「VS Codeは偶然エディタ機能が有名な作業環境だ」

と言えます。

最近ST MicroがARMマイコンの開発ツールをVS Code対応にしました。そのうち試してみるつもりです。「WSLに閉じ込めたARM開発環境をWindowsのOpenOCDドライバと連携させつつ、それら全体をVS Codeで管理する」と言ったことも気軽にできそうです。

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください