So legen Sie Farben in PSReadLine in PowerShell fest

Antworten:

8

Es gibt verschiedene Möglichkeiten. Du kannst das:

Set-PSReadlineOption -TokenKind Comment -ForegroundColor Green

Alternative:

$options = Get-PSReadlineOption
$options.CommentForegroundColor = Green

Die möglichen Farben stammen aus der .NET ConsoleColor Enumeration . Die tatsächlichen RGB-Farbwerte können im Dialogfeld mit den Konsoleneigenschaften geändert werden.

Um die aktuellen Farbeinstellungen anzuzeigen, führen Sie diese Get-PSReadlineOptionselbst aus.

Jason Shirk
quelle
Großartig. Vielen Dank. Wissen Sie, ob es eine Möglichkeit gibt, numerische RGB-Farben anzugeben?
Dangph
Nicht mit PSReadline. In der Konsole sind nur 16 mögliche Farben verfügbar. Die RGB-Werte werden in der Registrierung gespeichert und normalerweise im Dialogfeld "Eigenschaften" der Konsole geändert. ConsoleColor (eine .Net-Enumeration) ist eigentlich nur ein Index in eine dieser 16 möglichen Farben - der Name spielt also keine Rolle - wenn Sie den richtigen Eintrag ändern, wird nur die Registrierung für diesen Steckplatz gelesen.
Jason Shirk
Hallo, ich kann diese Farben in meiner Profildatei nicht festlegen. Es scheint Get-PSReadlineOptionnicht definiert zu sein und gibt nichts zurück, wenn es aus der Profildatei ausgeführt wird. Sobald die Shell geladen ist, gibt es jedoch kein Problem. Ich habe versucht, Import-Module PSReadlinevor diesen Zeilen ein Implizit hinzuzufügen , aber nichts hat getan.
Cyril Duchon-Doris
@JasonShirk Die Farben werden für die aktuelle Instanz von Powershell festgelegt. Wenn ich es schließe und erneut starte, verschwinden die Änderungen. Wie kann ich die Änderungen beibehalten?
krv
1
@krv - Fügen Sie die Einstellungen Ihrem Profil hinzu.
Jason Shirk
5

Während die von Jason Shirk beschriebenen Methoden auf meinem Mac mit PowerShell Core Version 6.0.1 weiterhin funktionieren, wie hier dokumentiert , funktionieren sie auf meinem Linux-Computer mit Version 6.1.0 nicht mehr.

Es scheint, dass sie die Oberfläche dieses Cmdlets vollständig geändert haben: PowerShell 6 Set-PSReadlineOption .

Jetzt können Sie eine Hash-Farbtabelle als Wert für den -ColorsParameter angeben. Das Gute ist, dass Sie jetzt viel mehr Farboptionen haben.

Aus den Beispielen:

$colors = @{
  # ConsoleColor enum has all the old colors
  "Error" = [ConsoleColor]::DarkRed

  # A mustardy 24 bit color escape sequence
  "String" = "$([char]0x1b)[38;5;100m"

  # A light slate blue RGB value
  "Command" = "#8470FF"
}

Set-PSReadLineOption -Colors $colors
Tatiana Racheva
quelle