我已经为 Micrsosoft TFS 和 Micrsosoft TFPT 命令行工具(其中一些反过来使用 TFPT 中包含的 Posh cmdlet)编写了一组 PowerShell 辅助函数。为了缩短命令的标准命名约定,例如 Get-TfsStatus
和 Invoke-TfsCommit
,我还创建了别名(例如 tf-status
和 tf-commit
)。我也使用 PowerTab 完成制表符,但 v0.99.6 默认不支持带别名的制表符完成。
如何配置 Tab 完成,以便我的别名(全部以 tf-
开头)可以显示可用命令列表?
我看到 PowerTab 包含一个用于修改选项卡扩展行为的编辑器,但我不清楚我需要配置什么。我也知道在关闭 PowerTab 的情况下,默认的 posh tab 补全可以使用别名。
示例函数和别名:
function Get-TfsStatus([switch]$all) {
# Do something
}
Set-Alias tf-status Get-TfsStatus
Set-Alias tf-st Get-TfsStatus
注意:最初,我将实际函数名称设置为tf-status
、tf-commit
等,但是当您Import-Module
,PowerShell 提示我没有遵循 PowerShell 函数的命名标准。
最佳答案
这不是我预期的用例,因此没有得到很好的支持。但是,只要您的别名名称中继续包含“-”,就有一种简单的方法可以解决这个问题。
编辑 TabExpansionCore.ps1 的第 957 行,将“别名”添加到命令类型列表中。
Get-Command -CommandType Alias,Function,ExternalScript,Filter,Cmdlet -Name "$($Matches[1])*" |
关于powershell - 是否可以使用 PowerTab 为别名函数配置制表符补全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15119039/