Windows PowerToys の Keyboard Manager を使って macOS 風のキーバインドを導入するというのをやっているけど、これをすると WSL2 が快適になる代わりに PowerShell が不便になるという問題があった。具体的には、Up/Down キーで ^P ^N が入力されてしまうので履歴が辿れないなど。

これは実は簡単に解決可能で、

PowerShell、Set-PSReadLineOption -EditMode Emacs

として PowerShell 上のキーバインドを emacs 風にするだけでよい。これで Ctrl-P / Ctrl-N などが適切にマッピングされるようになる。

毎回実行するのは面倒なので、echo $PROFILE で出てくるファイルパスに以下のように書いておくと良い。

echo "Running $PROFILE"
Set-PSReadLineOption -EditMode Emacs

$PROFILE は自分の環境だと C:\Users\[username]\OneDrive\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 だった。

  1. トップ
  2. tech
  3. PowerToys で macOS 風キーバインドを導入したときに生じる PowerShell の不便の解消