PowershellでEmacsライクなキーバインドを使う

はじめに

PSReadLine で PowerShell を bash のキーバインドにする - QiitaPowerShellのキーバインドをEmacs風にする【PSReadLine】 - メモ.org を参考に設定したメモです。

インストール手順

PowerShell/PSReadLine: A bash inspired readline implementation for PowerShellPowerShellGet のインストール - PowerShell | Microsoft Docs

PowerShell を管理者権限で開き、以下のコマンドで PowerShellGet をインストールします。

Install-Module -Name PowerShellGet

次に PSReadLine をインストールします。

Install-Module -Name PSReadLine

設定ファイル作成

Post Installation の Alternatively のほうで設定することにします。

まず C:\Users\[User]\Documents\WindowsPowerShell ディレクトリを作成します。

New-Item だと以下のようにします。

New-Item -Path "${Env:USERPROFILE}\Documents\WindowsPowerShell2" -ItemType "directory"

次に C:\Users\[User]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 ファイルを以下の内容で作成します。

Import-Module PSReadLine
Set-PSReadlineOption -EditMode Emacs
Set-PSReadLineKeyHandler -Key Ctrl+d -Function DeleteChar

Ctrl-d を押しすぎて PowerShell を抜けないように DeleteChar に変更しました。 終了するときは exit で。

キーバインド

基本の Ctrl-f, Ctrl-b, Ctrl-a, Ctrl-e での移動の他に Ctrl-w での単語削除、 Ctrl-u での行全体削除も使えました。 Ctrl-n と Ctrl-p でコマンド履歴を前後に移動できます。