Chikuwaのつぶやき

クラシック音楽、言語、ドイツ、物理など、雑食性です

PowerShellでエイリアスを設定する方法

同じスクリプトWindows, Linux, Macのいずれでも走らせることができるという点で、作業の自動化に重宝しているPowerShell。気に入ってはいるのだが、bashzshと比べ直感的でなかったことの一つが、エイリアスの設定だった。

Windows上のWindows PowerShell 5.1およびMac上のPowerShell 7.3.1でテスト済み。

どこのどのファイルに書けばよいか

環境変数$PROFILEにあるスクリプトが、PowerShellの起動時に実行される。コマンド

$PROFILE | Format-List -Property *Host* -Force

で確認できるように、開くPowerShellの範囲と権限によって設定を分けることができる。

1語か複数語か

bashzshではいずれの場合にも.zshrc等に

alias gitl='git log --oneline'

などと書くことでエイリアスを設定できる。ところがPowerShellSet-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を利用している。