(注)ギークな読者ならもっと手の込んだ開発環境だと思いますが、本記事は「私にとっての」最高の Windows 開発環境なので悪しからず。
本記事は Sansan Advent Calendar 2020 の10日目です。業務で使っていた Mac が残電源容量を50%を切ると突然落ちるという謎現象に遭遇していました。12月に部署異動した*1ので、この機に Windows に変えることにしました。 前職も Mac を使っていたので、7・8年ぶりの Windows です。
- Windows にした理由
- キーマッピングの変更
- WSL2 のインストール
- Windows Terminal の設定
- Docker のインストール
- VSCode のインストール
- GoLand のインストール
- Golang のインストール
- その他
- Mac の方が良かったこと
Windows にした理由
Mac に飽きたのと WSL(Windows Subsystem for Linux)が良かった(と聞いた)からです。昔 Windows を使っていたときはコマンドプロンプトが使いづらかったので Virtual Box を入れて C ドライブを共有して使っていました。また、当時のマシンスペックが悪いせい*2もあるのですが、IDE(Eclipseとか)が重くてストレスでした。Mac にしてからは UNIX ベースで操作がしやすかったのと Trackpad がものすごく使いやすくて不満なく使っていました。
ただ最近は(使っていた PC がハズレだったのかもしれませんが)、キーボードが効かなかったり、Bluetooth がブツブツ切れたりしてストレスが溜まるようになってきて、先ほどの電源が突然落ちる不具合が決定打となって Mac を使う意欲が薄れていきました。
最近の Windows 界隈は WSL の登場でかなり良くなってきたと思いますし、Visual Studio Code(VSCode)もエディタとしてすごく優秀なので Windows にしても業務や通常操作に支障がないと思いました。また、業務で Windows Server にログオンすることがしばしばあるのですが、Mac だとキーバインドが違うので記号の入力が大変でしたが、Windows であればなんの支障もなく文字入力ができるのも理由の一つです。
初期状態だと相変わらずの Windows なので自分にとって最高の環境にするためにやってきたことを書いていきます。Windows に変えてからまだ日が浅いのでまだまだ改良の余地はある点はご了承ください。
キーマッピングの変更
Mac のキーボード配列に慣れ親しみすぎたせいで Windows キーボードの使いづらさったらありません。Mac 風 +α に変えます。
忌まわしき「無変換」「変換」は IME のオン/オフに切り替えです。IME の設定でできます。
キー配置の変更は KeySwap を使いました。
- CapsLock ⇒ 左 Ctrl(Mac の control 相当)
- 左 Ctrl ⇒ 右 Ctrl(Mac の command 相当)
- Insert は無効化
ホットキーの変更は AutoHotKey を使いました。ややこしいですが、下の「右 Ctrl」は KeySwap で変更させる前の「左 Ctrl」のことです。
- 右 Ctrl + n ⇒ 下に移動
- 右 Ctrl + p ⇒ 上に移動
- 右 Ctrl + f ⇒ 右に移動
- 右 Ctrl + b ⇒ 左に移動
- 右 Ctrl + a ⇒ 文頭に移動
- 右 Ctrl + e ⇒ 文末に移動
- 右 Ctrl + h ⇒ BackSpace
- 右 Ctrl + d ⇒ Delete
- Ctrl + Alt + ← ⇒ 前のタブに移動
- Ctrl + Alt + → ⇒ 次のタブに移動
WSL2 のインストール
上で書いたように Windows にした最大の理由である WSL2 をインストールしました。公式ドキュメント通りにやればいいのですが、バージョン 2004 で問題が起きているせいで、2004 にアップデートすることができず、バージョン 1909 でも最新のアップデートが降ってこなくて半日ぐらい時間を費やしてしまいました。。。
無事インストールしたら、Linux ディストリビューションをインストールします。私は Ubuntu 20.04 LTS にしました。
Ubuntu を入れたら Mac 時代に作った dotfiles とインストールスクリプトを持ってきて環境づくりです。Zsh 使いなので .zshrc
と .zsh_history
を持ってきて必要なツールを入れれば Mac で使っていたのと変わらない操作ができます*3。
Windows Terminal の設定
最初から Windows Terminal というターミナルソフトが入っていてこれで十分すぎました。settings.json
をいじって、デフォルトで Ubuntu を起動するようにするのと、ホームディレクトリを /home/ohsawa
に変更します。
{ "guid": "{xxxxx}", "hidden": false, "name": "Ubuntu-20.04", "source": "Windows.Terminal.Wsl", "colorScheme": "Campbell", "cursorShape": "emptyBox", "acrylicOpacity": 1, "useAcrylic": false, "cursorColor": "#FFFFFF", "fontFace": "Cascadia", "fontSize": 11, "startingDirectory": "//wsl$/Ubuntu-20.04/home/ohsawa" },
Docker のインストール
Desktop Docker をインストールして、WSL2 対応に設定します。
特に書くことはありません。
VSCode のインストール
VSCode のインストール後、Remote Development 拡張機能を入れます。WSL2 で code
コマンドから VSCode が起動され、WSL2 上のファイルを開けるようになります。
この拡張機能を入れることで、Remote Container が使えるようになります。この機能は Docker コンテナを立ち上げて VSCode からリモート開発できます。つまり、自分の使用言語に合わせた Dockerfile を用意することで Windows や WSL2 上の環境を汚すことなく開発環境ができます。Docker Compose の設定ファイル(docker-compose.yml
)も対応しているので、~/.ssh
や ~/.zsh
をマウントすれば Docker コンテナでいつも通りのコマンド操作ができますし、EXPOSE すればブラウザで動作確認できます。控えめに言って神です。
VSCode Remote Container を使った開発環境の構築は以下の URL と書籍(技術同人誌)が大変参考になります。
- 【連載】WSL2、Visual Studio Code、DockerでグッとよくなるWindows開発環境 〜 その4:Visual Studio Code、Dockerで改善!! 〜 | SIOS Tech. Lab
- VS Code Dev Container Guidebook:74th
GoLand のインストール
GoLand は JetBrain 製の Go 言語の開発向け IDE です。
VSCode Remote Container のおかげで出番は大分薄まってしまったのですが、Terraform プラグインが使いやすいので Terraform の開発はこっちでやっています。Windows に GoLand を入れても WSL2 上のファイルを見に行きづらいですし、terraform fmt
などのコマンドが思うようにいかないので、VSCode 同様に WSL2 から呼び出せるようにしています。
この記事が大変役に立ちました。Mozc の日本語変換ができなくてしばらく躓いていました。
Golang のインストール
自作ツールを Windows 対応させたかったので Windows 側に Go を入れます。また、便利ツールも合わせていれます。
# WSL2 でクリップボードにコピー&ペーストできる PS> go get github.com/atotto/clipboard/cmd/gocopy PS> go get github.com/atotto/clipboard/cmd/gopaste # PowserShell で sudo を使える PS> go get github.com/mattn/sudo
詳細は mattn さんのブログ記事を参照してください。
その他
便利なソフトウェアを入れていきます。完全にお好みです。
CopyQ
クリップボード管理ツールです。デフォルトでクリップボードツールが入っているのですが、使い勝手が悪いのでこちらにしました。
Royal TS
https://www.royalapps.com/ts/win/features
Windows Server への RDP 用です。社内評判が良かったので入れました。高機能ですが、凝った設定はしてなくて最小限に留めています。
Windows10 フォントが汚いので一発変更!
すごいソフト名ですがw
Windows10のフォントがギザギザして何となく嫌だったので Meiryo UI に変更しました。
Screenpresso
https://www.screenpresso.com/ja/
ブログ記事を書くときに重宝するかと思い入れました。まだあまり活躍していませんw
SylphyHorn
https://www.microsoft.com/ja-jp/p/sylphyhorn/9nblggh58t01
仮想デスクトップの拡張ツールです。Windows 10では仮想デスクトップという機能があって複数の画面を切り替えることができるのですが、Mac と比べると使い勝手が悪いです。SylphyHorn を入れると少し良くなりますがそれでも Mac に見劣りします。
Mac の方が良かったこと
概ね Windows で満足していますが、Mac の方がよかったこともあります。
タッチパッド
Thinkpad を使っているのですが、タッチパッドの動きが少し悪くて Mac 使いだった人にとってはストレスになります。普段はマウスなのですが横スクロールがやりづらいです。Windows から Trackpad 2を動かすことも考えています。
フォント
Mac を使っていると意識しませんでしたが、Windows に戻るとフォントの違いがだんだん気になってきました。Mac のフォントの方がなめらかで見やすいですね。