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

Photo by Windows on Unsplash

最近Surface Go 3を買いました。久々にWindowsをさわってどうにもPowerShellの使い勝手がなじまなくて、Mac環境に合わせるようにしてみたらそこそこ快適になった。

PowerShellのアップグレード

まずPowerShellを起動するたびに新しいPowerShellを使ってねという表示が出るので、PowerShell7をインストール。 以下ページで私はmsiファイルでインストールした。

WindowsへのPowerShellのインストール

環境にもよるが、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を行ったり来たりしながら使っていて、入力切替方法が違うので最近タイポしまくる。 ショートカットも微妙に違うのでとてもやりにくい。なんとかならないものか。。。