前回:PowerShell 7.4 でのパイプラインならパラレルで動いた。 - 標準愚痴出力 で、PowerShell 7.4 をインストールしたので、ついでに PowerShell 関係の環境を少し整えた。
キーバインドを Emacs 風に変更
PowerShell で Linux の shell っぽいキーバインドを利用する によると、
Import-Module PSReadline Set-PSReadLineOption -EditMode Emacs
でよいとのこと。ただし、これはセッションを終了すると消えてしまう。起動時に自動的に実行させるためには
mkdir (Split-Path -Path $profile) vim $profile
で起動する時のコードを登録する。 ( くわしくは「プロファイルについて - PowerShell | Microsoft Learn」にあるそうだが、面倒なので、あまり本気で読んでいない)
スクリプトを PowerShell 7.4 以上でしか実行できないようにする
たとえば、例のバックアップスクリプトは PowerShell 5.1 で実行されると、またマシンが凍ることになる。安全装置を入れておきたい。
If ( (Get-Host).Version -lt [System.Version] '7.4.0' ){ Write-Host "Please use PowerShell 7.4 or later" exit 1 }
を先頭に書いとこう。
[nyagos] 拡張子 .ps1 との関連付け
.nyagos の Lua コードを修正。PowerShell 7 が存在しそうな時だけ、ps1 で終わるコマンド名の前に pwsh
を挿入するようにした。
if string.find(nyagos.env.PATH,"PowerShell\\7",1,true) then share._setsuffix("ps1","pwsh") end