前情提要:powershell命令行的默认快捷键巨难用。
好在powershell提供了可以自定义快捷键的方式。
核心在于PSReadLine
这个模块,如果你是powershell7.1版本的话,这个模块是自带的。如果低于7.1版本,可以运行这条命令安装Install-Module -Name PSReadLine -Scope CurrentUser -Force -SkipPublisherCheck
,(本人没有试验,不负责哈哈)
大众需求
我想一般的Linux用户应该时熟悉了bash的快捷键(其实bash的快捷键和emcas是一样的),所以想要在powershell获得同样的体验。其实powershell早就为我们想到了。
# 在powershell中执行此命令
Set-PSReadLineOption -EditMode Emacs
但是以上命令在powershell退出后就失效了,所以我们需要把它写在powershell的启动文件中,操作如下的:
# 打开powershell的启动文件
notepad $PROFILE
# 将下面的命令复制到文件中,保存文件
Set-PSReadLineOption -EditMode Emacs
重新打开powershell,你会发现一切都以改变
更多PSReadLineOption信息,请点击此处
极客需求
核心在于这条命令Set-PSReadLineKeyHandler
-
查看当前系统所有已经绑定的键(Key)和功能(Function)
# 查看当前系统所有已经绑定的键 Get-PSReadLineKeyHandler -Bound # 或者使用以下快捷键 Ctrl + Alt + ?
-
查看当前系统所有未绑定的Function
# 查看当前系统所有未绑定的Function Get-PSReadLineKeyHandler -Unbound
-
自定义你想绑定的键和功能
# -Chord:你想要绑定的键(按键区分大小写) # -Function:你想要绑定的功能 # 该命令还支持将键和脚本绑定,选项是:-ScriptBlock # 下面这条命令表示将删除命令行绑定到快捷键Ctrl + u Set-PSReadLineKeyHandler -Chord Ctrl+u -Function DeleteLine
-
以上的设定的键绑定仅能维持在powershell会话运行期间,如果powershell退出,将会失效。为了永久保存,我们需要将该命令写入到powershell的启动文件中
# 打开powershell的启动文件 notepad $PROFILE # 将下面的命令复制到文件中,保存文件 Set-PSReadLineKeyHandler -Chord Ctrl+u -Function DeleteLine