PowerShellをMac環境のように利用できるようにする

最近Surface Go 3を買いました。久々にWindowsをさわってどうにもPowerShellの使い勝手がなじまなくて、Mac環境に合わせるようにしてみたらそこそこ快適になった。
PowerShellのアップグレード
まずPowerShellを起動するたびに新しいPowerShellを使ってねという表示が出るので、PowerShell7をインストール。 以下ページで私はmsiファイルでインストールした。
環境にもよるが、PowerShell7(私はWindows Terminalから起動)を起動すると文字化けが発生してしまう。 この場合、ターミナルが利用しているフォントを変える(たとえばMSゴシックなどに変える)と解消される。
タブ補完
コマンドを打つときのタブ補完の動作が、最も近しいコマンドに変わってしまうので個人的にはちょっと使いづらい。 bash-completionのような動作になってほしいのでプロファイルを変更する
bash like補完
$PROFILE.CurrentUserCurrentHost
をエディタで開いて以下を追加する
Set-PSReadLineOption -Key Tab -Function Complete
ターミナルを開き直すか、 . $profile
でプロファイルを適用すると、タブで補完候補が出るような動きになる。
ただし、よく使うgitコマンドまでは補完されないので次はgitコマンド補完
gitコマンド補完
gitコマンドをタブ補完させるには posh-git
をインストールする方法が簡単だった。
あらかじめGitをインストールしておいてから、以下コマンドを実行して posh-git
をインストールする。
Install-Module posh-git -Scope CurrentUser
インストールするのにNuGetというパッケージマネージャーが必要になるのでインストールする。
あとはもう一度プロファイル $PROFILE.CurrentUserCurrentHost
をエディタで開いて以下を追加する。
Import-Module posh-git
ターミナルを開き直すことでgitコマンド(サブコマンドやブランチ名などの)補完ができるようになります快適!
補足1
Windows TerminalやIDEのターミナルで、プロファイルを設定すると「このシステムではスクリプトの実行が無効になっているため…」というようなセキュリティエラーが発生することがある。その場合は起動オプションを以下のようにすることで対処できる。
pwsh.exe -ExecutionPolicy RemoteSigned
まとめ
Surface Go 3を買ってまず最初にWSL2(Ubuntu)で開発環境を整えていたが、いろいろと不都合や開発のやりずらさみたいなのがわかってきて、Windows環境自体を使いやすくしようと思い設定を変えてみた。
駄文
HHKB US配列でMacとWindowsを行ったり来たりしながら使っていて、入力切替方法が違うので最近タイポしまくる。 ショートカットも微妙に違うのでとてもやりにくい。なんとかならないものか。。。