WindowsからTeraTerm等のターミナルソフトを使って、Linuxサーバにssh接続し、Linux上で開発をすることは、一般的に行っていると思う。しかし、Windows用のVS CodeのIntellisenseやdebug機能を使いたい!と思うこともよくある。そんなことが、WSL2を使うことで簡単にできちゃうので、紹介してみる。
インストール
Remote Development Extention
VS Codeの画面左側のExtensions(Ctrl + Shift + X)メニューで、Remote Developmentを検索し、インストール。とっても簡単。
WSL2 + Linux Distribution
ググればわかりやすいページがたくさんヒットするので、頑張りましょう。なお、私も書いてたりします。
Windows 10でLinuxを使う(WSL2)
Go tools
WSL2上のLinuxにGo Toolsをインストールする。Distributionで用意しているパッケージでもいいかもしれないが、私は何となく最新版をインストールした。Getting Started - The Go Programming Languageを見れば、簡単にインストールできる。
インストール後、$HOME/.profileに以下のPATH設定をお忘れなく。
GOPATH="$HOME/go"
PATH="$PATH:/usr/local/go/bin:$GOPATH/bin"
Go on Linux on WSL2
モジュール初期化
Linux上で、以下のコマンドを実行し、モジュールの初期化を行う。
mkdir hello
cd hello
go mod init hello
VS Code起動
上記で作成したhelloディレクトリで、以下のコマンドを実行。Windows上でVS Codeがhelloディレクトリをオープンした状態で起動する。
code .
VS Codeの画面左下にWSL: XXXXXと表示されていれば成功。
Go Extentionのインストール
VS Codeで、hello.goを作成すると、Go Extentionのインストールを勧められるので、Installをクリック。
インストール完了後、Reload Requiredをクリック。
この後、ソースコードの編集、実行時にUpdateやInstallの問い合わせが何回かあるが、基本的に言われるがままに実行する。
Go build
ソースの編集後、Ctrl + F5で、コマンドパレットが開くのでGoを選択。
package main
import (
"fmt"
)
func main() {
msg := "Hello, Wold!"
fmt.Println(msg)
}
下記のように、DEBUG CONSOLEにHello, World!と表示されればOK。
Ctrl + F5を実行するたびに、Goを選択するのは面倒なので、画面左のRun(Ctrl + Shift + D)メニューをクリックし、create a launch.json fileをクリックし、コマンドパレットからGoを選択。
launch.jsonファイルが開くが、編集は不要なので、そのまま閉じる。これで、Ctrl + F5実行時の問い合わせがなくなる。
Debug
F5キーによりデバッグもできる。ソースコードの行番号の左側をクリックすることでブレークポイントを設定。F5キーを実行すると、デバッグ開始しブレークポイントで処理が止まる。あとは、Continue(F5)、Step Over(F10)、Step Into(F11)等で遊びましょう。







