windows设置powershell中的快捷键
windows powershell的快捷键设置
长期使用ubuntu的终端之后,
再使用windows的powershell有些不太方便,
因为很多快捷键功能需要在windows上配置(eg:删除字符到行首/行尾/退出终端),
有的快捷键windows和ubuntu是一致的,有的不一致
为什么要设置快捷键
因为好用!!!
因为好用!!!
因为好用!!!
怎么设置快捷键
原理:将快捷键和powershell中的function(支持的功能,eg:删除字符到行首)绑定
# Set-PSReadLineKeyHandler -Key 快捷键 -Function 功能名称
Set-PSReadLineKeyHandler -Key Ctrl+d -Function ViExit
有哪些内置的功能函数
在powershell中使用Get-PSReadLineKeyHandler -Bound -Unbound命令,
可以查看内置的所有function(也就是支持的功能)
Get-PSReadLineKeyHandler -Bound -Unbound
基本编辑功能
======
Key Function Description
--- -------- -----------
Unbound Abort 中止当前的操作,例如增量历史记录搜索
Unbound AcceptAndGetNext 接受当前行,并在当前行执行完后撤消历史记录中的下一行
Enter AcceptLine 接受输入或移到下一行(如果输入缺少结束标记)。
Shift+Enter AddLine 将光标移到下一行,而不尝试执行输入
Backspace BackwardDeleteChar 删除光标前的字符
Ctrl+h BackwardDeleteChar 删除光标前的字符
Ctrl+Home BackwardDeleteLine 删除从光标处到行开头的文本
Unbound BackwardDeleteWord 删除行中的前一个单词。
Unbound BackwardKillLine 将从光标处到行开头的文本移到剪切环
Ctrl+Backspace BackwardKillWord 将从当前单词或前一单词开头到光标处的文本移到剪切环
Ctrl+w BackwardKillWord 将从当前单词或前一单词开头到光标处的文本移到剪切环
Unbound CancelLine 中止当前行的编辑并重新评估提示
Ctrl+C Copy 将所选区域复制到系统剪贴板。如果没有选定区域,则复制整行
Ctrl+c CopyOrCancelLine 将所选文本复制到剪贴板,或者如果没有选定文本,则使用 CancelLine 取消对行
的编辑。
Ctrl+x Cut 删除所选区域,并将删除的文本置于系统剪贴板中
Delete DeleteChar 删除光标下的字符
Unbound DeleteCharOrExit 删除光标下的字符,如果该行为空,则退出进程。
Unbound DeleteEndOfWord 删除到当前单词的末尾(由空格和常见分隔符分隔)。
Unbound DeleteLine 删除当前行。
Unbound DeleteLineToFirstChar 删除行的所有内容(前导空格除外)。
Unbound DeleteToEnd 从光标处删除到行尾。
Unbound DeleteWord 删除当前单词。
Ctrl+End ForwardDeleteLine 删除从光标到行尾处的文本
Ctrl+Enter InsertLineAbove 在当前行上面插入新的空行,而不尝试执行输入
Shift+Ctrl+Enter InsertLineBelow 在当前行下面插入新的空行,而不尝试执行输入
Unbound InvertCase 反转当前字符的大小写,并前移光标。
Unbound KillLine 将从光标到输入末尾处的文本移到剪切环
Unbound KillRegion 剪切光标和标记之间的文本
...
如何使用自己定义的函数
首先是要自定义一个函数,
剩下的步骤和系统内置函数一样。
function Show-TimeInfo {
Write-Host "当前时间: $(Get-Date)" -ForegroundColor Yellow
Write-Host "系统运行时间: $((Get-Date) - (Get-CimInstance Win32_OperatingSystem).LastBootUpTime)" -ForegroundColor Cyan
}
如何永久性配置
需要修改$PROFILE文件
vim $PROFILE # 应该是一个空文件
Import-Module PSReadLine
# 将自定义的快捷键写在文件中即可
Set-PSReadLineKeyHandler -Key Ctrl+d -Function ViExit
Set-PSReadLineKeyHandler -Key Ctrl+u -Function BackwardDeleteLine
参考:
[1] https://learn.microsoft.com/zh-cn/powershell/module/psreadline/set-psreadlinekeyhandler?view=powershell-7.5
[2] https://www.fournoas.com/posts/configuring-psreadline-module-of-powershell/
[3] https://www.deepseek.com/
2034

被折叠的 条评论
为什么被折叠?



