我试图在我的提示中右对齐posh-git的Write-VcsStatus
部分。基本上,我的提示在左侧列出了我的主机名和当前目录,并且当前在当前目录之后打印了git status info。我希望这个git状态是正确的,但我无法弄清楚如何做到这一点。
这是我的提示码:
Import-Module posh-git
function prompt {
Update-NavigationHistory $pwd.Path
Write-Host ([System.Net.Dns]::GetHostName() + ": ") -nonewline -foregroundcolor DarkCyan
Write-Host (([string]$pwd).Replace("C:\Users\user", "~")) -nonewline -foregroundcolor DarkYellow
Write-VcsStatus
Write-Host
Write-Host ($([char]0x2192)) -nonewline
return " "
}
答案 0 :(得分:0)
以下是使用$Host.UI.RawUI.CursorPosition
的右对齐文字示例。
注意:这在Powershell_ISE中不起作用,因为它使用的是非标准控制台主机。
function Global:prompt {
$oc = $host.ui.RawUI.ForegroundColor
$host.UI.RawUI.ForegroundColor = "DarkCyan"
$Host.UI.Write([System.Net.Dns]::GetHostName() + ": ")
$host.UI.RawUI.ForegroundColor = "Yellow"
$Host.UI.Write(([string]$pwd).Replace("C:\Users\user", "~"))
$message = "This text is right aligned"
$startposx = $Host.UI.RawUI.windowsize.width - $message.length
$startposy = $Host.UI.RawUI.CursorPosition.Y
$Host.UI.RawUI.CursorPosition = New-Object System.Management.Automation.Host.Coordinates $startposx,$startposy
$host.UI.RawUI.ForegroundColor = "DarkGreen"
$Host.UI.Write($message)
$host.UI.RawUI.ForegroundColor = $oc
$Host.UI.Write($([char]0x2192))
return " "
}