やりたかったこと
- PowerShell のコマンドラインを Vim コマンドで操作したい
-
jj
をEsc
として扱う - ついでに PowerShell を便利にしたい
方法
PowerShell 起動時に実行されるスクリプトファイルの場所を確認
$PROFILE
ファイル内に以下を記述する
Set-PSReadLineOption -EditMode Vi
jj
で Esc
を呼び出したい場合には以下を追記する
Set-PSReadLineKeyHandler -Chord 'j' -ScriptBlock {
if ([Microsoft.PowerShell.PSConsoleReadLine]::InViInsertMode()) {
$key = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
if ($key.Character -eq 'j') {
[Microsoft.PowerShell.PSConsoleReadLine]::ViCommandMode()
}
else {
[Microsoft.Powershell.PSConsoleReadLine]::Insert('j')
[Microsoft.Powershell.PSConsoleReadLine]::Insert($key.Character)
}
}
}
括弧や引用符の補完などを行いたい場合は以下を参考にさらに追記する
他によい方法があったらぜひ教えてください。