gpt4 book ai didi

powershell - 是否可以异步更新 PowerShell 提示符?

转载 作者:行者123 更新时间:2023-12-03 16:32:21 31 4
gpt4 key购买 nike

我喜欢在我的 PowerShell 提示符中包含 Mercurial/Git 存储库状态。有时这会减慢 prompt()功能相当大,导致长时间等待,直到您可以开始在 shell 中输入。我想知道,是否可以更新提示异步?

理想情况下,它会:

  • Write-Host当前目录(典型提示)
  • 开始在后台收集 repo 状态。
  • 收集 repo 状态时,假设 prompt还没有被再次调用,将 repo 状态插入到提示符中。

  • 有没有人这样做过?

    最佳答案

    不是本身。

    您不能异步更新提示,因为提示只返回文本,并且只要完成顶级命令,就会在主机中调用它。

    您可以重写提示来执行诸如检查数据源或异步更新的变量之类的操作。因此,在命令运行时提示不会不断变化,但它不会挂起一段时间,因为它只是在查找数据。

    更棘手的是,它进入了试图在事后偷看执行结果的游戏。 PowerShell 不会保留它们,除非它们被分配给某些东西。因此,要正确执行此操作,必须覆盖 Out-Default(仅适用于 ISE、PowerGUI 等,而不适用于 powershell.exe)。覆盖它并不难,但它需要了解很多 PowerShell 巫术,即使按照我令人印象深刻的标准。

    从好的方面来说,我显然一直在思考这个问题,并且有一个模块可以做很多这样的事情,我只是在确定我要如何处理它以及它是否保留在自己的模块中或加入我们构建的其他模块之一。

    我会在外出时更新它,但这个路线图应该会有很大帮助。

    简短的回答是您无法更新提示异步,但您可以让它变得更快,并且这样做所需的技巧打开了许多更酷的门。

    希望这可以帮助

    关于powershell - 是否可以异步更新 PowerShell 提示符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839873/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com