【问题标题】:Setting WindowTitle of PowerShell posh-git - escape hyphen?设置 PowerShell posh-git 的 WindowTitle - 转义连字符?
【发布时间】:2014-04-28 03:29:30
【问题描述】:

我正在尝试设置 Powershell(由控制台托管)的 WindowTitle 以匹配我的 posh-git 提示符的输出。因此,如果我有一个修改过的文件,我的提示将类似于:

[回购大师 +0 ~1 -0]

我想将 $Host.UI.RawUI.WindowTitle 设置为相同的东西,但字符串的“-0”部分似乎是某种转义序列。如果我这样做:

$repoName = Split-Path -Leaf (Split-Path $GitStatus.GitDir)
$title = "[$repoName $($GitStatus.Branch)"

if($GitPromptSettings.EnableFileStatus -and $GitStatus.HasWorking) {
    $title += " +$($GitStatus.Working.Added.Count)"
    $title += " ~$($GitStatus.Working.Modified.Count)"
    $title += " -$($GitStatus.Working.Deleted.Count)"

    if ($GitStatus.Working.Unmerged) {
        $title += " !$($GitStatus.Working.Unmerged.Count)"
    }
}

$title += "]"
$Host.UI.RawUI.WindowTitle = $title

我得到的只是'-0]'。关于提供转义字符以使其正常运行的任何想法?

如果我将“-”字符更改为 ~,那么我会得到整个标题:

[回购大师+0~1~0]

提前致谢。

【问题讨论】:

  • 也许是 Console2 的事情?你的代码对我来说很好。
  • 您可以尝试ConsoleZ(控制台分叉)或ConEmu。两者都得到积极维护。
  • 谢谢@Maximus 我正在尝试使用 ConsoleZ,但似乎标题始终采用 [TabName] - ... 的形式,其中 TabName 是 ConsoleZ 设置中定义的实际选项卡名称。它似乎没有显示我分配的文本。我查看了 ConsoleZ 设置,但没有看到任何关于如何扩展它的明显内容。你熟悉吗?
  • 没有。我是ConEmu的作者……

标签: powershell escaping console2 posh-git


【解决方案1】:

这是 Console2 的一个错误。请参阅#421 Tab titles containing dash are truncated 以获取类似的错误报告。

另外,Dash causes corruption in window title 谈到了这个问题,但他们似乎还没有解决它。

使用不同的 PowerShell 主机,代码可以在标题中使用连字符正常工作。

【讨论】:

  • 确实如此。这就是 posh-git 标题默认使用 ~ 的原因。
猜你喜欢
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 2016-04-15
  • 2016-03-29
相关资源
最近更新 更多