PowerShellでエイリアスを設定する方法
同じスクリプトをWindows, Linux, Macのいずれでも走らせることができるという点で、作業の自動化に重宝しているPowerShell。気に入ってはいるのだが、bashやzshと比べ直感的でなかったことの一つが、エイリアスの設定だった。
Windows上のWindows PowerShell 5.1およびMac上のPowerShell 7.3.1でテスト済み。
どこのどのファイルに書けばよいか
環境変数$PROFILEにあるスクリプトが、PowerShellの起動時に実行される。コマンド
$PROFILE | Format-List -Property *Host* -Force
で確認できるように、開くPowerShellの範囲と権限によって設定を分けることができる。
1語か複数語か
alias gitl='git log --oneline'
などと書くことでエイリアスを設定できる。ところがPowerShellのSet-Aliasは複数語のコマンドにエイリアスを設定できない(そもそも推奨していないらしい)。解決法として、次のように関数を定義する。
function gitl { git log --oneline }
例
Windowsでは~\Documents\WindowsPowerShell\profile.ps1、Macでは~/.config/powershell/profile.ps1に
Import-module posh-git function gs { git status } function gitl { git log --oneline }
なお、gitのブランチやファイル編集状況をプロンプトに表示するため、posh-gitを利用している。