PowerShell启动报错:Get-PSReadLineKeyHandler无-Key参数(Oh My Posh)
解决PowerShell启动时Get-PSReadLineKeyHandler报错的方法
问题根源
这个报错是因为你安装的PSReadLine版本不支持-Key参数——系统自带的旧版PSReadLine没有这个参数,但你的PowerShell配置文件里用了新版语法,导致启动时冲突报错。
具体解决步骤
检查当前PSReadLine版本
打开PowerShell,运行以下命令查看版本:Get-Module -Name PSReadLine -ListAvailable要是版本低于2.0,基本就是版本兼容问题。
更新PSReadLine到最新版
用管理员权限打开PowerShell,执行:Install-Module -Name PSReadLine -Force -SkipPublisherCheck提示信任仓库时输入
Y确认就行。修改配置文件代码(不想更新版本时用)
先找到你的PowerShell配置文件,运行$PROFILE就能看到路径。打开文件后,找到包含Get-PSReadLineKeyHandler -Key的代码段,替换成旧版兼容的写法:# 替换原来的Spacebar判断 $spacebarBind = Get-PSReadLineKeyHandler | Where-Object { $_.Key -eq 'Spacebar' } if ($spacebarBind.Function -eq ...) { ... } # 替换原来的Enter判断 $enterBind = Get-PSReadLineKeyHandler | Where-Object { $_.Key -eq 'Enter' } if ($enterBind.Function -eq ...) { ... }保存后重启PowerShell就不会报错了。
重置PSReadLine配置(终极方案)
要是前面的方法都没用,直接重置默认配置:Remove-Module PSReadLine Import-Module PSReadLine Set-PSReadLineOption -ResetToDefault
内容的提问来源于stack exchange,提问作者Bipul Hf
相关产品推荐
相关产品推荐

