powershell - 是否可以使用 PowerTab 为别名函数配置制表符补全?

标签 powershell command-line powershell-2.0 powertab

我已经为 Micrsosoft TFS 和 Micrsosoft TFPT 命令行工具(其中一些反过来使用 TFPT 中包含的 Posh cmdlet)编写了一组 PowerShell 辅助函数。为了缩短命令的标准命名约定,例如 Get-TfsStatusInvoke-TfsCommit,我还创建了别名(例如 tf-statustf-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-statustf-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/

相关文章:

powershell - 为嵌套的 PowerShell 模块创建 list

c# - 如何将多个 Windows Service PowerShell 命令组合成一个语句?

c++ - 尝试将 gz 文件提供给 C++ 程序

Python 打印语句不带回车符打印任何内容

macos - 是否可以将 Perl 与 macOS 应用程序捆绑在一起?

powershell-2.0 - ForEach-Object 中出现意外标记 "in"

powershell - 如何获取 Powershell 脚本参数的帮助消息?

powershell - Powershell从对象中选择NoteProperty类型对象

PowerShell - 分布式解决方案

.net - 使用 PowerShell 连接到 Azure FTP 但在 C# 中工作时出现错误 501