我想在PowerShell提示符中包含Mercurial / Git repo状态。有时这会大大减慢prompt()
函数的速度,导致漫长的等待,直到您可以开始在shell中输入。我想知道,是否可以更新提示异步?
理想情况下会:
Write-Host
当前目录(典型提示)prompt
,请将回购状态插入提示中。以前有人这样做过吗?
答案 0 :(得分:5)
不是本身。
您不能异步更新提示,因为提示只返回文本,并且只要顶级命令完成就会在主机中调用它。
您可以重写提示以执行诸如检查数据源或异步更新的变量之类的操作。因此,在命令运行时,提示不会继续改变,但它不会挂起一段时间,因为它只会查找数据。
更棘手的是,它进入了试图在事后查看执行结果的游戏。除非将它们分配给某些东西,否则PowerShell不会保留它们。所以要做到这一点,必须覆盖Out-Default(只适用于ISE,PowerGUI等,而不是powershell.exe)。压倒这一点并不是那么困难,但它需要了解很多PowerShell voodoo,即使是我令人印象深刻的标准。
在 bright 方面,我显然已经考虑了很多,并且有一个模块可以做很多事情,我只是在决定我要做什么如果它保留在自己的模块中或加入我们构建的其他模块之一。
我会在外出时更新,但这个路线图应该有很大帮助。
简短的回答是你无法更新提示异步,但是你可以快速做到这一点,并且这样做所需的技巧会打开许多冷却器门。
希望这有帮助