Windows
Windows10
WSL

開発PCをMacからWindowsに変えてやったことと知りたかったこと


はじめに

最近MicrosoftがWindowsを開発しやすい環境にガンガン変えていってくれてますが、そんなタイミングで訳あって開発PCにWindowsを使うことになったのでそのときにやったことや知りたかったことなどのメモです。

さすがに最初は慣れませんでしたが、最近のMicrosoftのおかげもあって今後はより開発しやすい環境になりそうです。


なにはともあれWSL

Windowsのcmd.exeやpowershellの操作体系はUNIXとは大きく違うのでMacから移ってきてこれに慣れていくのはちょっと厳しい。

というわけでWSLを入れていきたいと思います。


インストール方法


  1. タスクバー左の検索ボックスから「機能の有効化または無効化」を検索して開く

  2. Windows Subsytem for Linuxにチェックを入れてOK

  3. Microsoft Storeアプリから「Ubuntu」を検索して入手

  4. スタートからUbuntuを起動してユーザー名とパスワードを設定

こちらの参考記事はより詳細に書かれています。

Windows Subsystem for Linuxをインストールしてみよう! - Qiita

※制限などでStoreから入手できない場合

Linux (WSL) ディストリビューション用 Windows サブシステムを手動でダウンロードします。 | Microsoft Docs

1. 上記ページからUbuntuのディストリビューションをダウンロード

2. ダウンロードしたファイルの拡張子を.Appxから.zipにして解凍

3. 中にある.exeを起動


Windows/WSLでの開発で意識したいこと


今動かしてるものがWindowsかWSL上かを意識する

Windowsの環境変数PATHで通っているコマンドはWSLでも打つことができます。

Windowsの環境変数は、タスクバー左の検索ボックスから「環境変数」などと検索して「システム環境変数の編集」を開くことで確認することができます。

Windowsではユーザーの環境変数と、管理者のシステム環境変数が分かれています。

これらの環境変数PATHで通っているコマンドはWSLでもそのまま打つことができます。

Ubuntuを起動してecho $PATH などとして上の環境変数PATHと同じものが入っているかで確認できます。

ただ、Windows上で通っているパスはコマンドというより.exeファイルを叩けるようになってる感じなので、例えばdocker.exeとWindowsでもWSLでも叩けるようになっています。

これをdockerとして叩きたい場合は、.bashrcなどに次のようにaliasを書けばいいです。


.bashrc

alias docker='docker.exe'

alias docker-compose='docker-compose.exe'

これによりWSL上から使い慣れた形式でWindowsのアプリをコマンド起動することができますが、あくまでアプリが起動しているのはWindows上であり、WSL上で動いているわけではないということを注意する必要があります。

例えば、DockerforWindowsを入れてWin上でパスを通し、docker コマンドでWSLからDockerを動かせるようになったとして、認証系などDockerと連動させる必要のあるものはWSLではなく、Dockerが動いているのと同じWindows上で動作させる必要があるなどです。

今動かしているものがWindows上なのか、WSL上なのかは意識しておいた方がよいです。


WindowsとWSLでは改行コードが違う

改行コードはWindowsではCRLF、WSLではLFです。

これがよく問題になるのはgitでの作業です。

気をつけて!Git for Windowsにおける改行コード - Qiita

とりあえずgit config --global core.autocrlf inputにしておけば問題は回避できると思いますが、Git for Windowsの初期設定がtrueなため知らないうちにハマることがあります。

なるべく作業はWSLで統一した方がまぎれが少ないと感じているのですが、たまにWindowsからファイルを操作してそのファイルをgitのインデックスから破棄したいときに次のようなエラーが出ることがあります。

error: unable to unlink old 'ファイル名' No such file or directory

これはターミナルを立ち上げ直すことで解決します。


キーバインド、ショートカットの調整


AutoHotKeyでMacのかな/英数を実現

Macから移ってきて何気に辛いのがこれです。

Windowsではキーボード左上の半角/全角キーで切り替えますが、現在がひらがなモードか半角英数モードかで挙動が変わってしまう上に押しづらい位置にあるので辛いです。

AutoHotKeyというアプリをインストールして、スクリプトを適用するとMacのかな/英数を実現することができます。



  1. https://www.autohotkey.com/ でAutoHotKeyをインストール

  2. 下記Githubなどを参考にスクリプトを記述

GitHub - karakaram/alt-ime-ahk(左右Altキーの空打ちでIMEをON/OFF)

GitHub - Rozsa777/AutoHotkeySettings(HHKBの左右の♢空打ちでIMEをON/OFF)


  1. ahk拡張子にして適当な場所で保存する。これをダブルクリックするとAutoHotKeyにスクリプトが反映される

  2. 保存したファイルのショートカットを作成し、スタートアップフォルダに移すとPC立ち上げ時に起動する(スタートアップフォルダについては一応後述)


KeySwapでKeyの位置を変更

Ctrlなどキーの配置を変更したかったりする場合に使用します。

同じ用途でChgKeyというアプリもあるが、個人的にKeySwapの方が使いやすかった。

参考記事

【Windows10】KeySwapでキーマッピングを変更してみた - うれしいブログ


Chromeのショートカットの調整

Chromeのショートカット変更の拡張機能が若干探しづらかったので紹介。

Shortkeys (Custom Keyboard Shortcuts) - Chrome ウェブストア

自分の設定は下記

ショートカット
アクション

ctrl+alt+left
Previous tab

ctrl+alt+right
Next tab

ctrl+up
Scroll to top

ctrl+down
Scroll to bottom


Macでのあれはどうやる?


PC起動時のログイン項目

起動させたいアプリを右クリックしてショートカットを作成。

エクスプローラーのファイルパスに「スタートアップ」と入れてEnterしてスタートアップフォルダを開く。

ショートカットをスタートアップフォルダに入れておく。


スクリーンショット

Fn + Alt + PSc の後、ペイントを起動して貼り付け。

ただ面倒なので、後述のGreenshotなど使った方がよいです。


その他入れたアプリなど

用途
アプリ名                  
備考

クリップボード履歴管理
Clibor
コピペを多用するので必須。MacでのClipy代用です。

ターミナル
Cmnder
cmd.exe、powershell、WSLなどをタブで使い分けられます。主に日本語対応に少し不満点があるのでWindows Terminalには期待。他候補はHyper、FluentTerminal。

DBクライアント
A5:SQL Mk-2
SequelProが使えないので。他候補はheidiSQL、DBeaver

Windowsのパッケージマネージャー
chocolatey
Windows版のhomebrewみたいなものかと思います。WSLで完結できたら不要ですが、たまにWindowsにも入れたいときがあるので。

スクリーンショット
Greenshot
デフォルトのスクリーンショットは手間なので。

gif作成
ScreenToGif
プルリク作成時に挙動を貼りたいなどに便利。

その他参考

全てのWindowsユーザを幸せにするツールたち - Qiita


まとめ

早くWSL2とWindowsTerminalとVSCodeRemoteDevelopmentが正式に使えるようになってほしい。