windowsではpowershellを使っていたが、とにかく起動が遅い。遅すぎるよ…
代わりのshellとしてMSYS2を使ってみることにする。
インストール
インストールはscoopで行う。
scoopが既に導入済みだったため使った。
別にscoopじゃないとダメとかではない。
> scoop install msys2
初回起動&パッケージのインストール
初回起動時にpacmanの鍵の設定やホームディレクトリの作成が行われる。
そのため、この段階で一回起動しておく。
パスは%USERPROFILE%\scoop\apps\msys2\current\msys2_shell.cmd
。
(ユーザー名が含まれるパスのため環境によって文字列が変化するので%USERPROFILE%
と表記するが、実際の操作ではC:\Users\okutom\
のように絶対パスで操作をしている。)
msys2起動後、使用するパッケージをインストールする。
$ pacman -S zsh unzip vim
インストール後一旦終了する。
Windows Terminalの設定
Windows Terminalの設定画面で新しいプロファイルの追加を行う。
名前: MSYS2
コマンドライン: %USERPROFILE%\scoop\apps\msys2\current\msys2_shell.cmd -defterm -no-start -msys
開始ディレクトリ: %USERPROFILE%\scoop\persist\msys2\home\ユーザー名
アイコン: %USERPROFILE%\scoop\paas\msys2\current\msys2.ico
zshを使うための設定
%USERPROFILE%\scoop\apps\msys2\current\msys2_shell.cmd
をテキストエディタで開き編集する。
デフォルトではbashを指定して起動するようになっているためzshに変える。
- set "LOGINSHELL=bash" + set "LOGINSHELL=zsh"
デフォルトではln -s
を実行した時にシンボリックリンクは作成されずファイルコピーで動作するようになっている。
シンボリックリンクを作成するように変更する。
- rem set MSYS=winsymlinks:nativestrict + set MSYS=winsymlinks:nativestrict
また、シンボリックリンクを作成するためにはmsys2を管理者権限で実行するか、開発者モードをオンにする必要がある。
Windows11では 設定 > プライバシーとセキュリティ > 開発者向け > 開発者モード
で設定出来る。
msys2でgitをインストールして使うと正常に動作しない。
windowsのgitを使うようにパスを引き継ぐ設定をする。
- rem set MSYS2_PATH_TYPE=inherit + set MSYS2_PATH_TYPE=inherit
感想
powershellよりは起動が早いと感じる。
ただ、linuxで使っているテーマを適用するとcd
、ls
、cat
とかを使った後に1秒くらい止まる。
標準出力周りがなにか悪さしている?
また、ssh-agentの設定でpsコマンドを使っているのだが、msys2のpsコマンドはcygwin由来のコマンドでxオプションが無いらしい。
起動時に毎回
ps: unknown option -- x Try `ps --help' for more information.
と出るのが鬱陶しい。