Closed F-park closed 2 months ago
pwsh
和 powershell
本身是具备补全的PSCompletions
的运行机制,需要给其中的每一个命令添加 json 定义文件来支持补全,且灵活度没有官方内置的补全灵活,暂时不考虑添加请问 pwsh
怎么启用内置的补全呢,我的 pwsh 7.4 无法用 Tab 键补全,找了一天也没找到相关文档,甚至按 F1 键还找不到帮助。
Set-PSReadLineKeyHandler Tab MenuComplete
这句命令放在 $profile
中就可以了$profile
中引入了 PSCompletions
的话,就不需要,因为 PSCompletions
内部就使用了这个命令pwsh
中的所有以 -
开头的选项参数,是需要先输入 -
再按下 Tab
才会出现补全菜单Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
我的 $profile
里有 Set-PSReadLineKeyHandler Tab MenuComplete
和 Set-PSReadLineOption -PredictionSource History
这两条命令,但依旧无法显示补全菜单
内置命令是正常的
我早上才用 scoop
重装过 pwsh
,应该不是 pwsh
的问题
pwsh
这个命令的补全?那倒是没有内置补全pwsh
内置的这些命令(如 Get-Command
)的补全我指的是前者,那应该称为 pwsh_cli
? 我没表达好,不好意思。
PSCompletions
确实也可以去添加它,包括内置命令也可以git
那样的几千行的 json是否可以用 powershell 脚本或 python 脚本自动提取命令的中英帮助文本,然后自动解析成 json 呢,然后用 github actions 定时执行,类似 scoop bucket 的操作,不过可能只能提取特定框架的。
PSCompletions
如果是去解析帮助文本的话,各种 cli 命令的帮助又各有各的特点,要使用一个脚本来实现解析比较麻烦
需求分析
pwsh
最新预览版为 7.5 windows 自带的powershell
版本为 5.1命令参考
https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_pwsh?view=powershell-7.5 https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_pwsh?view=powershell-7.5&viewFallbackFrom=powershell-5.1