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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值