PowerShell7でEmacs(Linux)のキーバインド設定

PowerShell7にしたらCtrl+Bで移動できなくなったので調査したときの覚書。

PowerShell7はクロスプラットフォームエディションっていうからBashっぽいキーバインドがデフォルトで使えると思ったらそうでもなかった。

環境: Windows10 21H1, PowerShell 7.1.3

今のPowerShellのバージョンを表示
PS> $PSVersionTable

Microsoft StoreからPowerShell7をインストールしたらWindows Terminalからpwshすると切り替わる
PS> pwsh
PS> $PSVersionTable

Ctrl+Bで移動できなくなったのはPSReadLineモジュールが効いてないから。
モジュールをインストールしなおす。
まずはPowerShellGetから。公式サイトを参考に。
PS> pwsh
PS> Install-Module -Name PowerShellGet -Force

PowerShell7を起動しなおす。

PSReadLineモジュールをインストール。
PS> Install-Module PSReadLine

エラーになったので下記コマンドを実行。
PS> Install-Module PSReadLine -AllowPrerelease -Force

インストール完了。
「-Force」付けたから?管理者権限で起動したからかも。
キーバインド変更
PS> Set-PSReadLineOption -EditMode Emacs

これだけだと再起動すると元に戻るので、設定ファイルを置く。

モジュールPathを表示
PS> $env:PSModulePath

D:\Documents\PowerShell\Modules

PowerShell5は「WindowsPowerShell」だった。
D:\Documents\PowerShell\Microsoft.PowerShell_profile.ps1を作る。

Import-Module PSReadLine
Set-PSReadlineOption -EditMode Emacs

これでPowerShellを再起動すればCtrl+Bが効く。

最新に更新する場合
PS> Update-Module


【関連記事】