man*_*lds 33 powershell keyboard-shortcuts
我想做
CTRL+ D- 退出Powershell控制台
和
CTRL+ L- 清除屏幕
喜欢在bash.
到目前为止,我已经看到我们可以定义
function ^D {exit}
Run Code Online (Sandbox Code Playgroud)
但这意味着我必须按CTRL + D然后按Enter键才能正常工作.
而且,它甚至没有让我定义
function ^L {exit}
Run Code Online (Sandbox Code Playgroud)
无论如何在默认的Powershell控制台中添加这些键绑定?
man*_*lds 29
PSReadline
Powershell v3.0有一个新库,它模拟GNU Bash选项卡完成和键绑定.甚至CTRL+ R用于反向增量搜索工作.正是我想要的.
Ryn*_*ant 14
如果您不介意依赖外部程序,可以使用AutoHotKey执行以下操作:
#IfWinActive ahk_class ConsoleWindowClass
^L::SendInput , {Esc}cls{Enter}
^D::SendInput , {Esc}exit{Enter}
#IfWinActive
Run Code Online (Sandbox Code Playgroud)
以上内容适用于PowerShell或CMD控制台.否则,我唯一能想到的就是使用P/Invoke魔法SetWindowsHookEx
.
编辑:修复了AutoHotkey脚本将快捷键传递给其他程序.
Gle*_*enn 13
旧问题,但使用PowerShell 5.1和PowerShell Core 6.x:
Set-PSReadlineKeyHandler -Key ctrl+d -Function ViExit
还有一个名为PSEventing的PowerShell管理单元,允许您这样做(请参阅首页上的演示:
http://pseventing.codeplex.com/releases/view/66587
# clear screen in response to ctrl+L, unix style
register-hotkeyevent "ctrl+L" -action { cls; write-host -nonewline (prompt) }
Run Code Online (Sandbox Code Playgroud)
键绑定由 PSReadLine 控制。PSReadLine 的默认编辑模式是 Windows 风格,其中 Ctrl-D 是未绑定的。
将编辑模式设置为 Emacs
Set-PSReadlineOption -EditMode Emacs
Run Code Online (Sandbox Code Playgroud)
或绑定密钥
Set-PSReadLineKeyHandler -Key 'Ctrl+d' -Function DeleteCharOrExit
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17282 次 |
最近记录: |