有没有办法将 CTRL+[ 映射到 Powershell 中?
Is there a way to map CTRL+[ to escape in Powershell?
我发现 powershell 中有一个 vi 模式,但它似乎 CTRL+[ 没有像在 vi 和 bash 中那样映射到转义。我将设置添加到我的个人资料中,如下所示:
New-Item $profile -Type File -Force
echo "Set-PSReadLineOption -EditMode vi" >> $profile
我通读了文档 here,没有发现任何与我的问题相关的内容。我正在考虑的当前解决方案是一个 AutoHotKey 脚本,它在存在 Powershell window 时重新映射键。如果有人知道实现此目的的更本地方法,请告诉我。我还认为通过 regedit 或类似的东西进行系统范围的更改是行不通的,因为我需要 CTRL+[ 才能在 powershell window.
之外正常运行
我找到了一个可以解决问题的命令
Set-PSReadlineKeyHandler -Chord Ctrl+[ -Function ViCommandMode
编辑:我想我可以分享更多关于我是如何找到这个答案的。 运行 这个命令
Get-PSReadLineKeyHandler -Bound -Unbound
将为您提供所有可用映射的列表,如 here 所述。我找到了绑定到函数 ViCommandMode 的 escape,我用它来构造上面粘贴的解决方案。
我发现 powershell 中有一个 vi 模式,但它似乎 CTRL+[ 没有像在 vi 和 bash 中那样映射到转义。我将设置添加到我的个人资料中,如下所示:
New-Item $profile -Type File -Force
echo "Set-PSReadLineOption -EditMode vi" >> $profile
我通读了文档 here,没有发现任何与我的问题相关的内容。我正在考虑的当前解决方案是一个 AutoHotKey 脚本,它在存在 Powershell window 时重新映射键。如果有人知道实现此目的的更本地方法,请告诉我。我还认为通过 regedit 或类似的东西进行系统范围的更改是行不通的,因为我需要 CTRL+[ 才能在 powershell window.
之外正常运行我找到了一个可以解决问题的命令
Set-PSReadlineKeyHandler -Chord Ctrl+[ -Function ViCommandMode
编辑:我想我可以分享更多关于我是如何找到这个答案的。 运行 这个命令
Get-PSReadLineKeyHandler -Bound -Unbound
将为您提供所有可用映射的列表,如 here 所述。我找到了绑定到函数 ViCommandMode 的 escape,我用它来构造上面粘贴的解决方案。