English | 简体中文 | Powershell Gallery | Github | Gitee
喜欢这个项目?请给它 Star ⭐️ 或 赞赏 💰
[!Tip]
- PowerShell(pwsh): 跨平台的 PowerShell (Core),运行
pwsh/pwsh.exe启动- Windows PowerShell: Windows 系统内置的 PowerShell (Desktop),运行
powershell/powershell.exe启动- 它们都可以使用
PSCompletions,但是更推荐 PowerShell(pwsh)
一个补全管理器,为 PowerShell 带来更出色、更简便的 Tab 补全体验。
[!Tip]
- 如果这里无法显示,可前往官网查看
- 点击查看 Bilibili 中的介绍及教学视频

请查阅 更新日志
请查阅 常见问题
请查阅 贡献指南
安装模块
Install-Module PSCompletions -Scope CurrentUser
Install-PSResource PSCompletions -Scope CurrentUser
导入模块
Import-Module PSCompletions
以 git 补全为例
psc add git 添加补全git,按下 Space(空格键) 和 Tab 键获取命令补全不使用 PSCompletions 的补全库,只将它作为一个更好的补全菜单
如果存在官方补全,可运行类似的命令
xxx completion powershell | Out-String | Invoke-Expression
使用其他的补全库
更多详情,参考 菜单增强
使用 PSFzf 作为补全菜单,参考 与 PSFzf 结合使用
除了 PowerShell 内置的补全菜单,PSCompletions 模块还提供了一个更强大的补全菜单。
psc menu config enable_menu 1 (默认开启)psc 查看它只在 Windows 中可用,因为在 Linux/MacOS 中 PowerShell 没有实现相关底层方法
补全菜单的所有配置,你可以输入 psc menu 然后按下 Space(空格键) 和 Tab 键触发补全,通过 补全提示信息 来了解
1 表示 true,0 表示 false (这适用于 PSCompletions 的所有配置)psc menu config enable_enter_when_single 1psc menu config enable_menu_enhance 1 (默认开启)PSCompletions 对于补全有两种实现
enable_menu 和 enable_menu_enhance 同时为 1Set-PSReadLineKeyHandler -Key $PSCompletions.config.trigger_key -ScriptBlock { ... }trigger_key 是 TabSet-PSReadLineKeyHandler -Key Tab -ScriptBlock { ... }psc add 添加的补全
cd/.\/..\/~\/…Get-*/Set-*/New-*/…psc menu config enable_menu_enhance 0 来使用它psc add 添加的补全生效-* 的命令补全,例如 git config --global 中的 --globalgit 补全为例,如果你想要输入 git config user.name --global xxx--global,然后再补全 user.name,最后输入名称 xxxgit 为例,当输入 git add,此时按下 Space(空格键) 和 Tab 键,不会触发路径补全,只会触发模块提供的命令补全^(?:\.\.?|~)?(?:[/\\]).*比如:
./ 或 .\ 后按下 Tab 以获取 子目录 或 文件 的路径补全../ 或 ..\ 后按下 Tab 以获取 父级目录 或 文件 的路径补全/ 或 \ 后按下 Tab 以获取 同级目录 的路径补全~/ / ../../ …git add ./ 这样的命令再按下 Tab 键来获取路径补全[!Tip]
- 由于 Windows Terminal 的变更导致在补全菜单中无法正常显示 😄🤔😎,因此将更换它们。
- 相关的 issue: https://github.com/microsoft/terminal/issues/18242
- 更改为:
~,?,!
补全项后面的特殊符号用于在按下 Tab 键之前提前感知是否有可用的补全项
psc add 添加的补全中才存在psc menu symbol <type> <symbol> 来自定义psc menu symbol SpaceTab ""psc menu symbol OptionTab ""psc menu symbol WriteSpaceTab ""~,?,! : 如果出现多个,表示符合多个条件
补全提示信息只是辅助,可按需使用
psc menu config enable_tip 0psc completion git enable_tip 0U: install, add [-g, -u] [options] <app>
这里是命令的描述说明
(在 U: 和 E: 之间的内容都是命令描述)
E: install xxx
add -g xxx
示例解析:
用法: 以 U: 开头(Usage)
installadd<app>
app 是对必填参数的简要概括-g -u[options] 表示泛指一些选项类参数U: 和 E: 之间的内容E: 开头(Example)Global language: 默认为当前的系统语言
psc config language 可以查看全局的语言配置psc config language zh-CN 可以更改全局的语言配置Completion language: 为指定的补全设置的语言
psc completion git language en-USAvailable language: 每一个补全的 config.json 文件中有一个 language 属性,它的值是一个可用的语言列表Completion language,优先使用它,没有则使用 Global languageAvailable language 中Available language 中的第一种语言(一般为 en-US)PSCompletions 依赖于 PSReadLine,它是 PowerShell 的一个内置模块