Powerlevel10k ist ein Theme für Zsh. Der Schwerpunkt liegt auf Geschwindigkeit, Flexibilität und einem Out-of-the-Box-Erlebnis.
exec zsh
neu.p10k configure
ein, wenn der Konfigurationsassistent nicht automatisch startet. Geben Sie p10k configure
ein, um direkt von Ihrem Terminal aus auf den integrierten Konfigurationsassistenten zuzugreifen.
Alle Stile außer Pure sind funktionell gleichwertig. Sie zeigen die gleichen Informationen an und unterscheiden sich nur in der Darstellung.
Der Konfigurationsassistent erstellt ~/.p10k.zsh
basierend auf Ihren Präferenzen. Durch Bearbeiten dieser Datei können zusätzliche Eingabeaufforderungsanpassungen vorgenommen werden. Es enthält zahlreiche Kommentare, die Ihnen bei der Navigation durch die Konfigurationsoptionen helfen.
Tipp : Installieren Sie die empfohlene Schriftart, bevor Sie p10k configure
ausführen, um alle Eingabeaufforderungsstile freizuschalten.
FAQ:
Fehlerbehebung :
Wenn Sie die EINGABETASTE drücken, erscheint sofort die nächste Eingabeaufforderung. Mit Powerlevel10k gibt es keine sofortige Verzögerung. Wenn Sie Cygwin auf Raspberry Pi installieren, cd
in ein Linux-Git-Repository laden und genügend Eingabeaufforderungssegmente aktivieren, um vier Eingabeaufforderungszeilen auf beiden Seiten des Bildschirms zu füllen ... Moment, das ist einfach verrückt und niemand macht das jemals. Wahrscheinlich auch unmöglich. Der Punkt ist, dass die Powerlevel10k-Eingabeaufforderung immer schnell ist, egal was Sie tun!
Beachten Sie, dass sich die Wirkung jedes Befehls sofort in der nächsten Eingabeaufforderung widerspiegelt.
Befehl | Prompt-Indikator | Bedeutung |
---|---|---|
timew start hack linux | ⌚ hack linux | Zeiterfassung in Timewarrior aktiviert |
touch xy | ?2 | 2 nicht verfolgte Dateien im Git-Repo |
rm COPYING | !1 | 1 nicht bereitgestellte Änderung im Git-Repo |
echo 3.7.3 >.python-version | ? 3.7.3 | die aktuelle Python-Version in Pyenv |
Andere Zsh-Designs, die dieselben Informationen anzeigen können, erzeugen entweder eine Verzögerung bei der Eingabeaufforderung oder drucken eine Eingabeaufforderung, die nicht den aktuellen Status des Systems widerspiegelt, und aktualisieren sie später. Mit Powerlevel10k erhalten Sie schnell, zeitnah und aktuelle Informationen.
FAQ : Ist es wirklich schnell?
Powerlevel10k versteht alle Powerlevel9k-Konfigurationsparameter.
Die Migration von Powerlevel9k zu Powerlevel10k ist ein unkomplizierter Prozess. Alle Ihre POWERLEVEL9K
Konfigurationsparameter funktionieren weiterhin. Die Eingabeaufforderung wird (fast) genauso aussehen wie zuvor, aber (sicherlich) viel schneller sein.
FAQ :
Powerlevel10k kann die gleiche Eingabeaufforderung wie Pure erzeugen. Geben Sie p10k configure
ein und wählen Sie Pure Style.
Sie können weiterhin Powerlevel10k-Funktionen wie die vorübergehende Eingabeaufforderung oder die sofortige Eingabeaufforderung verwenden, wenn Sie den Pure-Stil nutzen.
Um die Eingabeaufforderung anzupassen, bearbeiten Sie ~/.p10k.zsh
. Powerlevel10k erkennt keine Pure-Konfigurationsparameter, daher müssen Sie POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
anstelle von PURE_CMD_MAX_EXEC_TIME=3
usw. verwenden. Alle relevanten Parameter befinden sich in ~/.p10k.zsh
. Diese Datei enthält zahlreiche Kommentare, die Ihnen bei der Navigation helfen.
FAQ: Was ist der beste Eingabeaufforderungsstil im Konfigurationsassistenten?
Wenn Ihr ~/.zshrc
viele Plugins lädt oder vielleicht nur ein paar langsame (zum Beispiel pyenv oder nvm), haben Sie vielleicht bemerkt, dass es einige Zeit dauert, bis Zsh startet.
Powerlevel10k kann Zsh-Startverzögerungen beseitigen , auch wenn sie nicht durch ein Theme verursacht werden .
Diese Funktion wird als Instant Prompt bezeichnet. Sie müssen es explizit über p10k configure
oder manuell aktivieren. Es tut, was es verspricht: Beim Start von Zsh wird sofort eine Eingabeaufforderung ausgegeben, sodass Sie mit der Eingabe beginnen können, während die Plugins noch geladen werden.
Andere Themen erhöhen die Startverzögerung von Zsh – einige um ein Vielfaches, andere nur geringfügig. Powerlevel10k entfernt es vollständig.
Wenn Sie neugierig sind, wie Instant Prompt funktioniert, sehen Sie sich diesen Abschnitt in zsh-bench an.
FAQ: Wie konfiguriere ich die Sofortaufforderung?
Das Verhalten einiger Befehle hängt von der globalen Umgebung ab. Beispielsweise führt kubectl run ...
ein Image auf dem Cluster aus, der durch den aktuellen Kubernetes-Kontext definiert ist. Wenn Sie häufig den Kontext zwischen „prod“ und „testing“ wechseln, möchten Sie möglicherweise den aktuellen Kontext in der Zsh-Eingabeaufforderung anzeigen. Wenn Sie dies auch für AWS-, Azure- und Google Cloud-Anmeldeinformationen tun, wird die Eingabeaufforderung ziemlich voll.
Geben Sie „Auf Befehl anzeigen“ ein. Mit dieser Funktion werden Eingabeaufforderungssegmente nur dann angezeigt, wenn sie für den Befehl, den Sie gerade eingeben, relevant sind.
Von p10k configure
erstellte Konfigurationen aktivieren standardmäßig die Anzeige auf Befehl für mehrere Eingabeaufforderungssegmente. Hier ist der relevante Parameter für den Kubernetes-Kontext:
# Show prompt segment "kubecontext" only when the command you are typing invokes one of these tools.
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND= ' kubectl|helm|kubens '
Um anzupassen, wann verschiedene Eingabeaufforderungssegmente angezeigt werden, öffnen Sie ~/.p10k.zsh
, suchen Sie nach SHOW_ON_COMMAND
und entfernen Sie entweder diese Parameter, um betroffene Segmente bedingungslos anzuzeigen, oder ändern Sie ihre Werte.
Wenn die vorübergehende Eingabeaufforderung über p10k configure
aktiviert ist, reduziert Powerlevel10k jede Eingabeaufforderung beim Akzeptieren einer Befehlszeile.
Die vorübergehende Eingabeaufforderung erleichtert das Kopieren und Einfügen einer Reihe von Befehlen aus dem Scrollback des Terminals erheblich.
Tipp : Wenn Sie die vorübergehende Eingabeaufforderung aktivieren, nutzen Sie die zweizeilige Eingabeaufforderung. Sie profitieren von zusätzlichem Platz zum Eingeben von Befehlen, ohne den üblichen Nachteil einer verringerten Scrollback-Dichte. Sparse Prompt (mit einer Leerzeile vor Prompt) funktioniert auch hervorragend in Kombination mit Transient Prompt.
Das aktuelle Arbeitsverzeichnis ist möglicherweise das wichtigste Eingabeaufforderungssegment. Powerlevel10k legt großen Wert darauf, die wichtigen Teile hervorzuheben und sie mit dem geringsten Informationsverlust abzuschneiden, wenn der horizontale Platz knapp wird.
Wenn das vollständige Verzeichnis nicht passt, wird das Segment ganz links auf sein kürzestes eindeutiges Präfix gekürzt. Im Screencast wird ~/work
zu ~/wo
. Es konnte nicht auf ~/w
gekürzt werden, da es mehrdeutig wäre (es gab ~/wireguard
als die Sitzung aufgezeichnet wurde). Das nächste Segment – projects
– wird zu p
, da es in ~/work/
nichts anderes gab, was mit p
begann.
Verzeichnissegmente werden in einer von drei Farben angezeigt:
Tipp : Wenn Sie ein abgeschnittenes Verzeichnis kopieren, einfügen und die TAB-TASTE drücken, wird es auf das Original vervollständigt.
Fehlerbehebung : Das Verzeichnis ist in der Eingabeaufforderung bei Verwendung des Rainbow-Stils schwer zu erkennen.
Powerlevel10k kann so konfiguriert werden, dass es wie jedes andere Zsh-Theme aussieht.
Pure-, Powerlevel9k- und Robbyrussell-Emulationen sind integriert. Um das Erscheinungsbild anderer Themes zu emulieren, müssen Sie eine geeignete Konfigurationsdatei schreiben. Der beste Weg, dies zu tun, besteht darin, p10k configure
auszuführen, den Stil auszuwählen, der Ihrem Ziel am nächsten kommt, und dann ~/.p10k.zsh
zu bearbeiten.
Das gesamte Erscheinungsbild des Powerlevel10k reicht von spartanisch:
Zu lächerlich extravagant:
Powerlevel10k verfügt über Dutzende integrierte, hochwertige Eingabeaufforderungssegmente, die Informationen aus verschiedenen Quellen anzeigen können. Wenn Sie p10k configure
ausführen und einen beliebigen Stil außer Pure auswählen, werden viele dieser Segmente standardmäßig aktiviert, während andere manuell aktiviert werden können, indem Sie ~/.p10k.zsh
öffnen und die Kommentare entfernen. Sie können beliebig viele Segmente aktivieren. Es wird Ihre Eingabeaufforderung oder den Zsh-Start nicht verlangsamen.
Segment | Bedeutung |
---|---|
anaconda | Virtuelle Umgebung von Conda |
asdf | Tool-Versionen von asdf |
aws | aws-Profil |
aws_eb_env | aws elastische Bohnenrankenumgebung |
azure | Azure-Kontoname |
background_jobs | Vorhandensein von Hintergrundjobs |
battery | interner Batteriestatus und Ladezustand (ja, Batterien im wahrsten Sinne des Wortes enthalten) |
command_execution_time | Dauer (Wandzeit) des letzten Befehls |
context | Benutzer@Hostname |
cpu_arch | CPU-Architektur |
dir | aktuelles Arbeitsverzeichnis |
direnv | Direnv-Status |
disk_usage | Festplattennutzung |
dotnet_version | Dotnet-Version |
fvm | Flatterumgebung von fvm |
gcloud | Google Cloud CLI-Konto und Projekt |
goenv | go-Umgebung von goenv |
google_app_cred | Anmeldeinformationen für die Google-Anwendung |
go_version | Go-Version |
haskell_stack | Haskell-Version vom Stack |
ip | IP-Adresse und Bandbreitennutzung für eine bestimmte Netzwerkschnittstelle |
java_version | Java-Version |
jenv | Java-Umgebung von Jenv |
kubecontext | Aktueller Kubernetes-Kontext |
laravel_version | Laravel-PHP-Framework-Version |
load | CPU-Last |
luaenv | Lua-Umgebung von luaenv |
midnight_commander | Mitternachtskommandantengranate |
nix_shell | Nix-Shell-Anzeige |
nnn | nnn-Shell |
lf | LF-Shell |
chezmoi_shell | Chezmoi-Muschel |
nodeenv | node.js-Umgebung von nodeenv |
nodenv | node.js-Umgebung von nodenv |
node_version | node.js-Version |
nordvpn | NordVPN-Verbindungsstatus |
nvm | node.js-Umgebung von nvm |
os_icon | Ihr Betriebssystemlogo (Apple für macOS, Swirl für Debian usw.) |
package | name@version aus package.json |
per_directory_history | Oh My Zsh lokaler/globaler Indikator pro Verzeichnisverlauf |
perlbrew | Perl-Version von Perlbrew |
phpenv | PHP-Umgebung von phpenv |
php_version | PHP-Version |
plenv | Perl-Umgebung von plenv |
prompt_char | multifunktionales Aufforderungssymbol; ändert sich je nach vi-Modus: ❯ , ❮ , V , ▶ für den Einfüge-, Befehls-, visuellen und Ersetzungsmodus; wird bei Fehler rot |
proxy | systemweiter http/https/ftp-Proxy |
public_ip | öffentliche IP-Adresse |
pyenv | Python-Umgebung von pyenv |
ram | freier RAM |
ranger | Ranger-Muschel |
yazi | Yazi-Shell |
rbenv | Ruby-Umgebung von rbenv |
rust_version | Rustc-Version |
rvm | Ruby-Umgebung von RVM |
scalaenv | Scala-Version von scalaenv |
status | Exit-Code des letzten Befehls |
swap | gebrauchter Tausch |
taskwarrior | Taskwarrior-Aufgabenanzahl |
terraform | Terraform-Arbeitsbereich |
terraform_version | Terraform-Version |
time | aktuelle Uhrzeit |
timewarrior | Timewarrior-Tracking-Status |
todo | ToDo-Elemente |
toolbox | Toolbox-Name |
vcs | Git-Repository-Status |
vim_shell | vim-Shell ( :sh ) |
virtualenv | Python-Umgebung von venv |
vi_mode | vi-Modus (Sie benötigen dies nicht, wenn Sie prompt_char aktiviert haben) |
vpn_ip | Indikator für ein virtuelles privates Netzwerk |
wifi | WLAN-Geschwindigkeit |
xplr | xplr-Shell |
Wenn es kein Eingabeaufforderungssegment gibt, das Ihren Anforderungen entspricht, implementieren Sie Ihr eigenes. Powerlevel10k bietet eine öffentliche API zum Definieren von Segmenten, die genauso schnell und flexibel sind wie integrierte Segmente.
Unter Linux können Sie die aktuelle CPU-Temperatur abrufen, indem Sie /sys/class/thermal/thermal_zone0/temp
lesen. Der Screencast zeigt, wie man ein Eingabeaufforderungssegment definiert, um diesen Wert anzuzeigen. Sobald das Segment definiert ist, können Sie es wie jedes andere Segment verwenden. Alle standardmäßigen Anpassungsparameter funktionieren sofort.
Geben Sie als Referenz p10k help segment
ein.
Hinweis : Wenn Sie POWERLEVEL9K_*
Parameter in einer bereits initialisierten interaktiven Shell ändern (im Gegensatz zur Bearbeitung von ~/.p10k.zsh
), werden die Änderungen möglicherweise nicht sofort wirksam. Um die Änderungen anzuwenden, rufen Sie p10k reload
auf. Durch die Einstellung POWERLEVEL9K_DISABLE_HOT_RELOAD=false
entfällt die Notwendigkeit p10k reload
, führt aber zu einer geringfügig langsameren Eingabeaufforderung.
Tipp : Stellen Sie den Namen Ihrer eigenen Segmente my_
voran, um Konflikte mit zukünftigen Versionen von Powerlevel10k zu vermeiden.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Benutzer in China können für einen schnelleren Download den offiziellen Mirror auf gitee.com verwenden.
中国用户可以使用 gitee.com 上的官方镜像加速下载.
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Dies ist die einfachste Art der Installation und funktioniert auch, wenn Sie einen Plugin-Manager verwenden. Stellen Sie einfach sicher, dass Sie das aktuelle Theme in Ihrem Plugin-Manager deaktivieren. Hilfe finden Sie unter Fehlerbehebung.
Klonen Sie das Repository:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
Benutzer in China können für einen schnelleren Download den offiziellen Mirror auf gitee.com verwenden.
中国用户可以使用 gitee.com 上的官方镜像加速下载.
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
Öffnen Sie ~/.zshrc
, suchen Sie die Zeile, die ZSH_THEME
festlegt, und ändern Sie ihren Wert in "powerlevel10k/powerlevel10k"
.
Fügen Sie zstyle :prezto:module:prompt theme powerlevel10k
zu ~/.zpreztorc
hinzu.
Fügen Sie zmodule romkatv/powerlevel10k --use degit
zu ~/.zimrc
hinzu und führen Sie zimfw install
aus.
Fügen Sie antibody bundle romkatv/powerlevel10k
zu ~/.zshrc
hinzu.
Fügen Sie romkatv/powerlevel10k
zu ~/.zsh_plugins.txt
hinzu.
antigen theme romkatv/powerlevel10k
zu ~/.zshrc
hinzufügen. Stellen Sie sicher, dass Sie antigen apply
.
Fügen Sie zplug romkatv/powerlevel10k, as:theme, depth:1
zu ~/.zshrc
hinzu.
Fügen Sie zgen load romkatv/powerlevel10k powerlevel10k
zu ~/.zshrc
hinzu.
zplugin ice depth=1; zplugin light romkatv/powerlevel10k
zu ~/.zshrc
.
Die Verwendung von Eis depth=1
ist optional. Andere Eisarten werden von Powerlevel10k weder empfohlen noch offiziell unterstützt.
zinit ice depth=1; zinit light romkatv/powerlevel10k
zu ~/.zshrc
.
Die Verwendung von Eis depth=1
ist optional. Andere Eisarten werden von Powerlevel10k weder empfohlen noch offiziell unterstützt.
zi ice depth=1; zi light romkatv/powerlevel10k
zu ~/.zshrc
.
Die Verwendung von Eis depth=1
ist optional. Andere Eisarten werden von Powerlevel10k weder empfohlen noch offiziell unterstützt.
Fügen Sie plug "romkatv/powerlevel10k"
zu ~/.zshrc
hinzu.
brew install powerlevel10k
echo " source $( brew --prefix ) /share/powerlevel10k/powerlevel10k.zsh-theme " >> ~/.zshrc
yay -S --noconfirm zsh-theme-powerlevel10k-git
echo ' source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
zsh-theme-powerlevel10k-git, auf das oben verwiesen wird, ist das offizielle Powerlevel10k-Paket.
apk add zsh zsh-theme-powerlevel10k
mkdir -p ~ /.local/share/zsh/plugins
ln -s /usr/share/zsh/plugins/powerlevel10k ~ /.local/share/zsh/plugins/
Befolgen Sie die Anweisungen auf dieser Seite.
Beim ersten Start stellt Ihnen der Powerlevel10k-Konfigurationsassistent einige Fragen und konfiguriert Ihre Eingabeaufforderung. Wenn es nicht automatisch ausgelöst wird, geben Sie p10k configure
ein. Der Konfigurationsassistent erstellt ~/.p10k.zsh
basierend auf Ihren Präferenzen. Durch Bearbeiten dieser Datei können zusätzliche Eingabeaufforderungsanpassungen vorgenommen werden. Es enthält zahlreiche Kommentare, die Ihnen bei der Navigation durch die Konfigurationsoptionen helfen.
FAQ :
Fehlerbehebung :
Wenn Sie Powerlevel9k bereits verwendet haben, entfernen Sie die Konfigurationsoptionen nicht . Powerlevel10k greift sie auf und stellt Ihnen die gleiche Eingabeaufforderungs-Benutzeroberfläche zur Verfügung, die Sie gewohnt sind. Siehe Powerlevel9k-Kompatibilität.
FAQ :
Fehlerbehebung : Zusätzliche oder fehlende Leerzeichen in der Eingabeaufforderung im Vergleich zu Powerlevel9k.
Powerlevel10k erfordert keine benutzerdefinierten Schriftarten, kann diese jedoch nutzen, sofern sie verfügbar sind. Es funktioniert gut mit Nerd Fonts, Source Code Pro, Font Awesome, Powerline und sogar den Standard-Systemschriftarten. Die volle Auswahl an Stiloptionen steht nur bei Verwendung von Nerd-Schriftarten zur Verfügung.
? Empfohlene Schriftart : Meslo Nerd-Schriftart, gepatcht für Powerlevel10k. ?
Wunderschöne Monospace-Schriftart, entworfen von Jim Lyles für Bitstream, angepasst von demselben für Apple, weiter angepasst von André Berg und schließlich von Ihnen mit angepassten Skripten gepatcht, die ursprünglich von Ryan L McIntyre von Nerd Fonts entwickelt wurden. Enthält alle Glyphen und Symbole, die Powerlevel10k möglicherweise benötigt. In Dutzenden verschiedener Terminals auf allen gängigen Betriebssystemen kampferprobt.
FAQ : Wie wurde die empfohlene Schriftart erstellt?
Wenn Sie iTerm2 oder Termux verwenden, kann p10k configure
die empfohlene Schriftart für Sie installieren. Antworten Sie einfach Yes
wenn Sie gefragt werden, ob Sie Meslo Nerd Font installieren möchten.
Wenn Sie ein anderes Terminal verwenden, fahren Sie mit der manuellen Schriftarteninstallation fort. ?
MesloLGS NF
Schriftart für alle Anwendungen auf Ihrem System verfügbar.p10k configure
ein und antworten Sie mit Yes
wenn Sie gefragt werden, ob Meslo Nerd Font installiert werden soll. Alternativ öffnen Sie iTerm2 → Einstellungen → Profile → Text und stellen Sie Schriftart auf MesloLGS NF
ein.MesloLGS NF
Familie aus.fontFamily
unter module.exports.config
in MesloLGS NF
.terminal.integrated.fontFamily
in das Suchfeld oben auf der Registerkarte „Einstellungen “ ein und legen Sie den Wert unten auf MesloLGS NF
fest. Sehen Sie sich diesen Screenshot an, um zu sehen, wie es aussehen sollte, oder sehen Sie sich dieses Problem an, um weitere Informationen zu erhalten.MesloLGS NF Regular
aus.MesloLGS NF Regular
.MesloLGS NF Regular
aus.MesloLGS NF
ein.MesloLGS NF
ein.MesloLGS NF
ein.MesloLGS NF
fest.p10k configure
ein und antworten Sie mit Yes
wenn Sie gefragt werden, ob Meslo Nerd Font installiert werden soll.config
ein, gehen Sie zu „Darstellung“ , tippen Sie auf „Neue Schriftart hinzufügen“ , tippen Sie auf „Galerie öffnen“ , wählen Sie „MesloLGS NF.css“ aus, tippen Sie auf „Importieren“ und geben Sie exit
in der Startansicht ein, um die Schriftart neu zu laden.MesloLGS NF
ein.MesloLGS NF Regular
aus. Verlassen Sie das Dialogfeld „Einstellungen“, indem Sie auf „Schließen“ klicken.MesloLGS NF Regular
aus. Verlassen Sie das Dialogfeld „Einstellungen“, indem Sie auf „Schließen“ klicken.MesloLGS NF
. Wenn Sie Sitzungen haben, müssen Sie die Schriftart in jeder Sitzung über Einstellungen → Rechtsklick auf eine einzelne Sitzung → Sitzung bearbeiten → Terminaleinstellungen → Schriftarteinstellungen ändern.MesloLGS NF Regular
. Um die Schriftart für die Remote-Host-Verbindungen zu ändern, gehen Sie zu Einstellungen → Terminaloptionen → Aussehen und Verhalten und ändern Sie Schriftart: unter Terminal-Benutzeroberfläche in MesloLGS NF Regular
.MesloLGS NF
aus.MesloLGS NF Regular
“ ein.MesloLGS NF
aus und klicken Sie auf „OK“ . Klicken Sie auf OK, um das Profil zu speichern. Wählen Sie das neue Profil aus und klicken Sie auf Als Standard festlegen .~/.config/alacritty/alacritty.toml
und fügen Sie den folgenden Abschnitt hinzu: [ font . normal ]
family = " MesloLGS NF "
~/.config/foot/foot.ini
und fügen Sie den folgenden Abschnitt hinzu: font =MesloLGS NF: size =12
~/.config/kitty/kitty.conf
und fügen Sie die folgende Zeile hinzu: font_family MesloLGS NF
MesloLGS NF
ein. Erfordert puTTY-Version >= 0,75.$HOME/.config/wezterm/wezterm.lua
und fügen Sie Folgendes hinzu: local wezterm = require ' wezterm ' ;
return {
font = wezterm . font ( " MesloLGS NF " ),
}
~/.Xresources
und fügen Sie die folgende Zeile hinzu: URxvt.font: xft:MesloLGS NF:size=11
xrdb ~/.Xresources
aus, um sie neu zu laden. Die neue Konfiguration wird auf alle neuen Terminals angewendet.~/.Xresources
und fügen Sie die folgende Zeile hinzu: xterm*faceName: MesloLGS NF
xrdb ~/.Xresources
aus, um sie neu zu laden. Die neue Konfiguration wird auf alle neuen Terminals angewendet.~/.config/zed/settings.json
und setzen Sie terminal.font_family
auf "MesloLGS NF"
. {
"terminal" : {
"font_family" : "MesloLGS NF"
} ,
// Other settings.
}
'MesloLGS NF'
(einschließlich der Anführungszeichen) und benutzerdefiniertes CSS (Inline-Text) auf Folgendes: @font-face {
font-family : "MesloLGS NF" ;
src : url ( "https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Regular.ttf" );
font-weight : normal;
font-style : normal;
}
@font-face {
font-family : "MesloLGS NF" ;
src : url ( "https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Bold.ttf" );
font-weight : bold;
font-style : normal;
}
@font-face {
font-family : "MesloLGS NF" ;
src : url ( "https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Italic.ttf" );
font-weight : normal;
font-style : italic;
}
@font-face {
font-family : "MesloLGS NF" ;
src : url ( "https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Bold%20Italic.ttf" );
font-weight : bold;
font-style : italic;
}
~/.config/deepin/deepin-terminal/config.conf
und fügen Sie den folgenden Abschnitt hinzu: [basic.interface.font]
value = " MesloLGS NF "
p10k configure
aus, um ein neues ~/.p10k.zsh
zu generieren. Die alte Konfiguration funktioniert möglicherweise nicht ordnungsgemäß mit der neuen Schriftart.Sie verwenden ein anderes Terminal und wissen, wie Sie die Schriftart dafür einstellen? Teilen Sie Ihr Wissen, indem Sie eine PR senden, um die Liste zu erweitern!
Probieren Sie Powerlevel10k in Docker aus. Sie können beim Ausprobieren des Themes bedenkenlos alle Änderungen am Dateisystem vornehmen. Sobald Sie Zsh beenden, wird der Container gelöscht.
docker run -e TERM -e COLORTERM -e LC_ALL=C.UTF-8 -it --rm alpine sh -uec '
apk add git zsh nano vim
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo "source ~/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc
cd ~/powerlevel10k
exec zsh '
Tipp : Installieren Sie die empfohlene Schriftart, bevor Sie den Docker-Befehl ausführen, um Zugriff auf alle Eingabeaufforderungsstile zu erhalten.
Tipp : Führen Sie p10k configure
in Docker aus, um einen anderen Eingabeaufforderungsstil auszuprobieren.
Powerlevel10k wird unter der MIT-Lizenz veröffentlicht.
$HOME/.git
nicht in der Eingabeaufforderung angezeigt?Der Befehl zum Aktualisieren von Powerlevel10k hängt davon ab, wie es installiert wurde.
Installation | Befehl aktualisieren |
---|---|
Handbuch | git -C ~/powerlevel10k pull |
Oh mein Zsh | git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull |
Prezto | zprezto-update |
Zim | zimfw update |
Antigen | antigen update |
Gegenmittel | antidote update |
Zplug | zplug update |
Zgen | zgen update |
Zplugin | zplugin update |
Zinit | zinit update |
Zi | zi update |
Zap | zap update |
Homebrew | brew update && brew upgrade |
Arch Linux | yay -S --noconfirm zsh-theme-powerlevel10k-git |
Alpine Linux | apk update && apk upgrade |
WICHTIG : Starten Sie Zsh neu, nachdem Sie Powerlevel10k aktualisiert haben. Verwenden Sie nicht source ~/.zshrc
.
Entfernen Sie alle Verweise auf „p10k“ aus ~/.zshrc
. Möglicherweise haben Sie diesen Ausschnitt oben:
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
Und das ganz unten:
[[ ! -f ~ /.p10k.zsh ]] || source ~ /.p10k.zsh
Diese werden vom Konfigurationsassistenten hinzugefügt. Entfernen Sie sie.
Entfernen Sie alle Verweise auf „powerlevel10k“ aus ~/.zshrc
, ~/.zpreztorc
und ~/.zimrc
(einige dieser Dateien fehlen möglicherweise – das ist normal). Diese Referenzen wurden von Ihnen bei der Installation von Powerlevel10k manuell hinzugefügt. Wenn Sie eine Erinnerung benötigen, lesen Sie die Installationsanweisungen.
Stellen Sie sicher, dass alle Verweise auf „p10k“ und „powerlevel10k“ aus ~/.zshrc
, ~/.zpreztorc
und ~/.zimrc
entfernt wurden.
grep -E ' p10k|powerlevel10k ' ~ /.zshrc ~ /.zpreztorc ~ /.zimrc 2> /dev/null
Wenn dieser Befehl eine Ausgabe erzeugt, gibt es immer noch Verweise auf „p10k“ oder „powerlevel10k“. Sie müssen sie entfernen.
Löschen Sie die Powerlevel10k-Konfigurationsdatei. Diese Datei wird vom Konfigurationsassistenten erstellt und kann manuelle Bearbeitungen durch Sie enthalten.
rm -f ~ /.p10k.zsh
Löschen Sie Powerlevel10k-Quelldateien. Diese Dateien wurden heruntergeladen, als Sie Powerlevel10k installiert haben. Der Befehl zum Löschen hängt davon ab, welche Installationsmethode Sie gewählt haben. Wenn Sie eine Erinnerung benötigen, lesen Sie die Installationsanweisungen.
Installation | Befehl zum Deinstallieren |
---|---|
Handbuch | rm -rf ~/powerlevel10k |
Oh mein Zsh | rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k |
Prezto | n / A |
Zim | zimfw uninstall |
Antigen | antigen purge romkatv/powerlevel10k |
Gegenmittel | antidote purge romkatv/powerlevel10k |
Zplug | zplug clean |
Zgen | zgen reset |
Zplugin | zplugin delete romkatv/powerlevel10k |
Zinit | zinit delete romkatv/powerlevel10k |
Zi | zi delete romkatv/powerlevel10k |
Zap | zsh -ic 'zap clean' |
Homebrew | brew uninstall powerlevel10k |
Arch Linux | yay -R --noconfirm zsh-theme-powerlevel10k-git |
Alpine Linux | apk del zsh-theme-powerlevel10k |
Starten Sie Zsh neu. Verwenden Sie nicht source ~/.zshrc
.
Löschen Sie Powerlevel10k-Cache-Dateien.
rm -rf -- " ${XDG_CACHE_HOME :- $HOME / .cache} " /p10k- * (N) " ${XDG_CACHE_HOME :- $HOME / .cache} " /gitstatus
uname -sm | tr ' [A-Z] ' ' [a-z] '
target_uname
durch die Ausgabe des vorherigen Befehls ersetzt haben: target_uname= " replace this with the output of the previous command "
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
GITSTATUS_CACHE_DIR= " $HOME " /powerlevel10k/gitstatus/usrbin ~ /powerlevel10k/gitstatus/install -f -s " ${target_uname % * } " -m " ${target_uname #* } "
~/powerlevel10k
von der Maschine, die mit dem Internet verbunden ist, auf die Maschine ohne Internetzugang.source ~/powerlevel10k/powerlevel10k.zsh-theme
zu ~/.zshrc
auf dem Computer ohne Internetzugang hinzu: echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
~/.zshrc
auf dem Computer ohne Internetzugang ZSH_THEME
festlegt, entfernen Sie diese Zeile. sed -i.bak ' /^ZSH_THEME=/d ' ~ /.zshrc
Entfernen Sie zum Aktualisieren ~/powerlevel10k
auf beiden Computern und wiederholen Sie die Schritte 1–3.
Der beste Weg, um Hilfe zu bitten und Fehler zu melden, besteht darin, ein Problem zu eröffnen.
Gitter ist eine weitere Option.
Wenn alles andere fehlschlägt, senden Sie eine E-Mail an [email protected].
Verschlüsseln Sie bei Bedarf Ihre Kommunikation mit diesem PGP-Schlüssel.
Powerlevel10k definiert Eingabeaufforderung und nichts anderes. Es legt aufforderungsbezogene Optionen sowie die Parameter PS1
und RPS1
fest.
Alles innerhalb der hervorgehobenen Bereiche auf dem Screenshot wird von Powerlevel10k erzeugt. Powerlevel10k hat keine Kontrolle über den Terminalinhalt oder die Farben außerhalb dieser Bereiche.
Powerlevel10k hat keinen Einfluss auf:
ls
verwendete Farben.git
-Befehls.PS1
und RPS1
.p10k
. # Add powerlevel10k to the list of Oh My Zsh themes.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM /themes/powerlevel10k
# Replace ZSH_THEME="powerlevel9k/powerlevel9k" with ZSH_THEME="powerlevel10k/powerlevel10k".
sed -i.bak ' s/powerlevel9k/powerlevel10k/g ' ~ /.zshrc
# Restart Zsh.
exec zsh
p10k configure
ein und wählen Sie Ihren bevorzugten Eingabeaufforderungsstil.Verwandt:
Ja. Siehe zsh-bench oder einen direkten Vergleich mit Powerlevel9k und Spaceship.
Sehen Sie sich die Sofortaufforderung an, um mehr über die Sofortaufforderung zu erfahren. In diesem Abschnitt wird erläutert, wie Sie es aktivieren und konfigurieren können, und es werden Vorbehalte aufgeführt, die Sie beachten sollten.
Die sofortige Eingabeaufforderung kann entweder über p10k configure
oder durch manuelles Hinzufügen des folgenden Codeausschnitts oben in ~/.zshrc
aktiviert werden:
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
Es ist wichtig, dass Sie die Zeilen wörtlich kopieren. Ersetzen Sie source
nicht durch etwas anderes, rufen Sie zcompile
nicht auf, leiten Sie die Ausgabe nicht um usw.
Wenn die sofortige Eingabeaufforderung aktiviert ist, wird die Standardeingabe für die Dauer der Zsh-Initialisierung nach /dev/null
umgeleitet und die Standardausgabe mit Standardfehler wird in eine temporäre Datei umgeleitet. Sobald Zsh vollständig initialisiert ist, werden die Standarddateideskriptoren wiederhergestellt und der Inhalt der temporären Datei ausgedruckt.
Wenn Sie die sofortige Eingabeaufforderung verwenden, sollten Sie alle beim Zsh-Start angezeigten Ausgaben sorgfältig prüfen, da sie möglicherweise darauf hinweisen, dass die Initialisierung durch die sofortige Eingabeaufforderung geändert oder möglicherweise sogar unterbrochen wurde. Initialisierungscode, der möglicherweise Konsoleneingaben erfordert, z. B. die Abfrage eines Schlüsselbundkennworts oder einer [y/n] -Bestätigung, muss oberhalb der Präambel der Sofortaufforderung in ~/.zshrc
verschoben werden. Initialisierungscode, der lediglich auf der Konsole ausgibt, aber nie von dort liest, funktioniert mit sofortiger Eingabeaufforderung korrekt, obwohl die Ausgabe, die normalerweise Farben enthält, möglicherweise ungefärbt erscheint. Sie können es entweder belassen, die Ausgabe unterdrücken oder es über die Präambel der Sofortaufforderung verschieben.
Hier ist ein Beispiel für ~/.zshrc
, das abbricht, wenn die sofortige Eingabeaufforderung aktiviert ist:
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
keychain id_rsa --agents ssh # asks for password
chatty-script # spams to stdout even when everything is fine
# ...
Feste Version:
keychain id_rsa --agents ssh # moved before instant prompt
# OK to perform console I/O before this point.
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
# From this point on, until zsh is fully initialized, console input won't work and
# console output may appear uncolored.
chatty-script > /dev/null # spam output suppressed
# ...
Wenn POWERLEVEL9K_INSTANT_PROMPT
nicht gesetzt oder auf verbose
gesetzt ist, gibt Powerlevel10k eine Warnung aus, wenn es während der Initialisierung eine Konsolenausgabe erkennt, um auf potenzielle Probleme aufmerksam zu machen. Sie können diese Warnung mit POWERLEVEL9K_INSTANT_PROMPT=quiet
stummschalten (ohne die Konsolenausgabe zu unterdrücken). Dies wird empfohlen, wenn ein Initialisierungscode in ~/.zshrc
auf der Konsole ausgegeben wird und es nicht möglich ist, ihn über die Präambel der Sofortaufforderung zu verschieben oder seine Ausgabe zu unterdrücken. Sie können die sofortige Eingabeaufforderung mit POWERLEVEL9K_INSTANT_PROMPT=off
vollständig deaktivieren. Tun Sie dies, wenn die sofortige Eingabeaufforderung die Zsh-Initialisierung unterbricht und Sie nicht wissen, wie Sie das Problem beheben können.
Der Wert von POWERLEVEL9K_INSTANT_PROMPT
kann geändert werden, indem Sie p10k configure
ausführen und die entsprechende Option auf dem Bildschirm „Instant Prompt“ auswählen. Alternativ können Sie in der vorhandenen Datei ~/.p10k.zsh
nach POWERLEVEL9K_INSTANT_PROMPT
suchen und dort den Wert ändern.
Hinweis : Für die sofortige Eingabeaufforderung ist Zsh >= 5.4 erforderlich. Es ist in Ordnung, es zu aktivieren, auch wenn Sie eine ältere Version von Zsh verwenden, aber es führt zu nichts.
FAQ :
Wenn Sie die sofortige Eingabeaufforderung aktiviert haben, sollten diese Zeilen oben in ~/.zshrc
stehen:
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
Um direnv zu initialisieren, müssen Sie eine Zeile über diesem Block und eine Zeile darunter hinzufügen.
(( ${+commands[direnv]} )) && emulate zsh -c " $( direnv export zsh ) "
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
(( ${+commands[direnv]} )) && emulate zsh -c " $( direnv hook zsh ) "
Verwandte Themen : Wie exportiere ich GPG_TTY, wenn ich die Sofortaufforderung verwende?
Sie können GPG_TTY
wie folgt an eine beliebige Stelle in ~/.zshrc
exportieren:
export GPG_TTY= $TTY
Dies funktioniert unabhängig davon, ob Sie die Sofortaufforderung verwenden oder nicht. Es funktioniert auch, wenn Sie powerlevel10k nicht verwenden. Als zusätzlicher Bonus ist es viel schneller als der häufig verwendete export GPG_TTY=$(tty)
.
Verwandte Themen : Wie initialisiere ich direnv, wenn ich die Sofortaufforderung verwende?
Bei Verwendung des Lean-, Classic- oder Rainbow-Stils kann der Git-Status wie folgt aussehen:
feature:master wip ⇣42⇡42 ⇠42⇢42 *42 merge ~42 +42 !42 ?42
Symbol | Bedeutung | Quelle |
---|---|---|
feature | aktueller Zweig; ersetzt durch #tag oder @commit wenn es sich nicht auf einem Zweig befindet | git status --ignore-submodules=dirty |
master | Remote-Tracking-Zweig; Wird nur angezeigt, wenn sie von der lokalen Niederlassung abweicht | git rev-parse --abbrev-ref --symbolic-full-name @{upstream} |
wip | Die Zusammenfassung des letzten Commits enthält „wip“ oder „WIP“. | git show --pretty=%s --no-patch HEAD |
= | mit der Fernbedienung auf dem neuesten Stand (weder vorne noch hinten) | git rev-list --count HEAD...@{upstream} |
⇣42 | so viele Commits hinter der Fernbedienung | git rev-list --right-only --count HEAD...@{upstream} |
⇡42 | so viele Commits vor der Fernbedienung | git rev-list --left-only --count HEAD...@{upstream} |
⇠42 | so viele Commits hinter der Push-Remote | git rev-list --right-only --count HEAD...@{push} |
⇢42 | so viele Commits vor der Push-Remote | git rev-list --left-only --count HEAD...@{push} |
*42 | so viele Vorräte | git stash list |
merge | Repository-Status | git status --ignore-submodules=dirty |
~42 | so viele Zusammenführungskonflikte | git status --ignore-submodules=dirty |
+42 | so viele inszenierte Veränderungen | git status --ignore-submodules=dirty |
!42 | so viele nicht inszenierte Änderungen | git status --ignore-submodules=dirty |
?42 | so viele nicht verfolgte Dateien | git status --ignore-submodules=dirty |
─ | Die Anzahl der bereitgestellten, nicht bereitgestellten oder nicht verfolgten Dateien ist unbekannt | echo $POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY oder git config --get bash.showDirtyState |
Verwandte Themen : Wie ändere ich das Format des Git-Status?
Um das Format des Git -Status zu ändern, öffnen Sie ~/.p10k.zsh
, suchen Sie nach my_git_formatter
und bearbeiten Sie seinen Quellcode.
Verwandte : Was bedeuten unterschiedliche Symbole im Git -Status?
$HOME/.git
nicht in der Eingabeaufforderung angezeigt? Wenn Sie einen schlanken, klassischen oder Regenbogenstil verwenden, enthält ~/.p10k.zsh
den folgenden Parameter:
# Don't show Git status in prompt for repositories whose workdir matches this pattern.
# For example, if set to '~', the Git repository at $HOME/.git will be ignored.
# Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'.
typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN= ' ~ '
Um den Git -Status für $HOME/.git
in Eingabeaufforderung zu sehen, öffnen Sie ~/.p10k.zsh
und entfernen Sie POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN
.
TL; DR: Wenn der Git-Status in der Eingabeaufforderung ausgegraut ist, bedeutet dies, dass Powerlevel 10K derzeit den aktuellen Git-Status im Hintergrund berechnet. Die Eingabeaufforderung wird automatisch aktualisiert, wenn diese Berechnung abgeschlossen ist.
Wenn sich Ihr aktuelles Verzeichnis in einem Git-Repository befindet, berechnet PowerLevel10K nach jedem Befehl einen aktuellen Git-Status. Wenn das Repository groß ist oder die Maschine langsam ist, kann diese Berechnung einige Zeit dauern. Wenn es länger als 10 Millisekunden dauert (konfigurierbar über POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS
), zeigt PowerLevel10K den letzten bekannten Git-Status in Gray an und berechnet weiterhin den aktuellen Git-Status im Hintergrund. Nach Abschluss der Berechnung aktualisiert Power Level 10k die Eingabeaufforderung mit neuen Informationen, diesmal mit farbigem Git -Status.
Bei Verwendung des Regenbogenstils wird der Git -Status als schwarz auf Grau angezeigt, während er noch berechnet wird. Abhängig von der terminalen Farbpalette kann dies schwer zu lesen sein. In diesem Fall möchten Sie möglicherweise die Hintergrundfarbe in etwas Leichteres für mehr Kontrast ändern. Öffnen Sie dazu ~/.p10k.zsh
, suchen Sie nach POWERLEVEL9K_VCS_LOADING_BACKGROUND
, wenden Sie sich an, wenn er kommentiert wird, und ändern Sie den Wert.
typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=244
Geben Sie source ~/.p10k.zsh
ein, um Ihre Änderungen auf die aktuelle ZSH -Sitzung anzuwenden.
Verwandte : Wie ändere ich die schnellen Farben?
Bei Verwendung von Lean, Classic oder Rainbow Style zeigt die Eingabeaufforderung username@hostname
, wenn Sie als root oder über SSH angemeldet sind. Wenn Sie als normaler Benutzer in Ihrem lokalen Computer angemeldet sind, ist es wenig Wert, username
oder hostname
anzusehen. Das Fehlen von username@hostname
in Ihrer Eingabeaufforderung ist also ein Hinweis darauf, dass Sie lokal arbeiten und dass Sie nicht root sind. Sie können es jedoch ändern.
Öffnen Sie ~/.p10k.zsh
. In der Nähe von oben sehen Sie die wichtigsten Parameter, die definieren, welche Segmente in Ihrer Eingabeaufforderung angezeigt werden. Alle allgemein nützlichen schnellen Segmente sind dort aufgeführt. Einige von ihnen sind aktiviert, andere werden kommentiert. Einer von ihnen ist für Sie von Interesse.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
...
context # user@hostname
...
)
Suchen Sie nach context
um den Abschnitt in der Konfiguration zu ermitteln, in dem Parameter für dieses Eingabeaufforderungspezifikum aufgeführt sind. Sie sollten die folgenden Zeilen sehen:
# Don't show context unless running with privileges or in SSH.
# Tip: Remove the next line to always show context.
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
Wenn Sie dem Tipp folgen und die letzte Zeile entfernen (oder kommentieren), werden Sie immer username@hostname
in der Eingabeaufforderung sehen. Sie können das Format in nur username
oder die Farbe ändern, indem Sie die Werte der Parameter in der Nähe einstellen. Es gibt viele Kommentare, die Ihnen helfen, zu navigieren.
Sie können context
auch in eine andere Position in POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
oder sogar an POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
verschieben.
Eingabeaufforderungen können nur angezeigt werden, wenn der aktuelle Befehl Sie eingeben, das ein relevantes Tool aufruft.
# Show prompt segment "kubecontext" only when the command you are typing invokes
# invokes kubectl, helm, or kubens.
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND= ' kubectl|helm|kubens '
Konfigurationen, die von p10k configure
erstellt wurden, können diese Art von Parametern enthalten. Um anzupassen, wenn verschiedene Eingabeaufforderungen angezeigt werden, öffnen Sie ~/.p10k.zsh
, suchen Sie nach SHOW_ON_COMMAND
und entfernen Sie diese Parameter entweder oder ändern Sie deren Werte.
Sie können auch eine Funktion in ~/.zshrc
definieren, um die Anzeige eines schnitten Segments zwischen immer und auf Befehl umzuschalten. Dies ähnelt kubeon
/ kubeoff
von Kube-PS1.
function kube-toggle() {
if (( ${+POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND} )) ; then
unset POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND
else
POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND= ' kubectl|helm|kubens '
fi
p10k reload
if zle ; then
zle push-input
zle accept-line
fi
}
Rufen Sie diese Funktion auf, indem Sie kube-toggle
eingeben. Sie können es auch an einen Schlüssel binden, indem Sie ~/.zshrc
zwei weitere Zeilen hinzufügen:
zle -N kube-toggle
bindkey ' ^] ' kube-toggle # ctrl-] to toggle kubecontext in powerlevel10k prompt
Sie können entweder die von Ihrem Terminal verwendete Farbpalette ändern oder Farben durch Powerlevel10K -Konfigurationsparameter festlegen.
Wie genau Sie die terminale Farbpalette (auch bekannt als Farbschema oder das Thema) ändern, hängt von der Art des Terminals ab, das Sie verwenden. Schauen Sie sich in den Einstellungen/Einstellungen des Terminals um oder konsultieren Sie die Dokumentation.
Wenn Sie die terminale Farbpalette ändern, betrifft sie normalerweise nur die ersten 16 Farben, die von 0 auf 15 nummeriert sind. Um einen Einfluss auf die Eingabeaufforderung von Power-Level 10K zu erhalten, müssen Sie einen schnellen Stil verwenden, der diese niedrigen Farben verwendet. Geben Sie p10k configure
und wählen Sie Regenbogen , Lean → 8 Farben oder rein → Original . Andere Stile verwenden höhere Farben, sodass sie in jeder terminalen Farbpalette gleich aussehen.
Öffnen Sie ~/.p10k.zsh
, suchen Sie nach "Farbe", "Vordergrund" und "Hintergrund" und ändern Sie die Werte entsprechender Parameter. So können Sie beispielsweise den Vordergrund der time
Zeitpunkts auf leuchtend rot einstellen:
typeset -g POWERLEVEL9K_TIME_FOREGROUND=160
Die Farben werden unter Verwendung von Zahlen von 0 bis 255 angegeben. Farben von 0 bis 15 sehen in verschiedenen Klemmen unterschiedlich aus. Viele Terminals unterstützen auch die Anpassung dieser Farben durch Farbpaletten (auch bekannt als Farbschemata oder Themen). Farben von 16 bis 255 sehen immer gleich aus.
Geben Sie source ~/.p10k.zsh
ein, um Ihre Änderungen auf die aktuelle ZSH -Sitzung anzuwenden.
Führen Sie den folgenden Befehl aus:
for i in {0..255} ; do print -Pn " %K{ $i } %k%F{ $i } ${(l : 3 :: 0 : )i} %f " ${ ${(M)$((i % 6)) :# 3} : + $' n ' } ; done
Wenn Ihr Terminal TrueColor unterstützt, können Sie zusätzlich zu den nummerierten Farben 24-Bit-Farben im Format #RRGGBB
verwenden.
typeset -g POWERLEVEL9K_TIME_FOREGROUND= ' #FF0000 '
Verwandt:
Standardmäßig kann das VSCODE -Terminal die Vordergrundfarbe Ihrer Wahl durch eine andere Farbe willkürlich ersetzen. Dieses Verhalten kann in VSCODE -Einstellungen ausgeschaltet werden.
PowerLevel10K verwendet Gitstatus als Backend hinter vcs
-Eingabeaufforderung. Gitstatus spawns gitstatusd
und zsh
. Einzelheiten finden Sie in Gitstatus. PowerLevel10K kann auch zsh
hervorbringen, um eine Berechnung durchzuführen, ohne die Eingabeaufforderung zu blockieren. Um Sicherheitsrisiko zu vermeiden, werden diese Hintergrundprozesse nicht von verschiedenen interaktiven Schalen geteilt. Sie enden automatisch, wenn der übergeordnete zsh
-Prozess exec(3)
endet oder ausführt.
Nein, PowerLevel10K ist immer schnell, mit jeder Konfiguration, die Sie darauf werfen. Wenn Sie bei der Verwendung von PowerLevel10K eine spürbare umfortige Latenz haben, öffnen Sie bitte ein Problem.
Ja. Siehe ZSH-Bench.
PowerLevel10K wurde im März 2019 nach einer einwöchigen Diskussion in Powerlevel9k#1170 aus dem Powerlevel9k gegabelt. PowerLevel9k war bereits ein ausgereiftes Projekt mit einer großen Benutzerbasis und einem in Monaten gemessenen Freigabebasis. Der Powerlevel10K wurde ausgeschaltet, um die Leistungsverbesserungen und neue Funktionen mit viel höherem Tempo zu iterieren.
Powerlevel9k und Powerlevel10K sind unabhängige Projekte. Wenn Sie einen verwenden, sollten Sie den anderen nicht installieren. Probleme sollten gegen das Projekt eingereicht werden, das Sie tatsächlich verwenden. Es gibt keine Personen, die Rechte in beiden Repositories begehen. Alle Fehlerbehebungen und neuen Funktionen für das PowerLevel9k -Repository werden auf PowerLevel10K portiert.
Im Laufe der Zeit wurde praktisch jeder Code in PowerLevel10K umgeschrieben. Derzeit gibt es keine sinnvolle Überschneidung zwischen den Implementierungen von Powerlevel9k und Powerlevel10K.
PowerLevel10K setzt sich dafür ein, die Rückwärtskompatibilität mit allen Konfigurationen auf unbestimmte Zeit aufrechtzuerhalten. Diese Verpflichtung deckt alle Konfigurationsparameter ab, die von PowerLevel9k (siehe PowerLevel9k -Kompatibilität) und zusätzlichen Parametern, die nur PowerLevel10K versteht, erkannt. Namen aller Parameter in Powerlevel10K beginnen mit POWERLEVEL9K_
für Konsistenz.
Fast. Es gibt einige Unterschiede.
git
VCS -Backend in PowerLevel10K aktiviert. Wenn Sie svn
und hg
benötigen, fügen Sie sie zu POWERLEVEL9K_VCS_BACKENDS
hinzu. Diese Backends sind im Power -Level -10k noch nicht optimiert. Die Aktivierung macht sie so langsam .POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY=true
nicht.POWERLEVEL9K_MODE
definiert, bevor Sie das Thema beschaffen. Dieser Parameter wird von Powerlevel9k ignoriert, aber von Powerlevel10K geehrt. Wenn Sie möchten, dass Ihre Eingabeaufforderung in PowerLevel 10K genauso wie in PowerLevel9k schauen, entfernen Sie POWERLEVEL9K_MODE
.ZLE_RPROMPT_INDENT
nicht. Infolgedessen kann die rechte Eingabeaufforderung in PowerLevel 10K am Ende einen zusätzlichen Platz im Vergleich zu Powerlevel9k haben. Setzen Sie ZLE_RPROMPT_INDENT=0
Wenn Sie diesen Speicherplatz nicht wollen. Weitere Details zur Fehlerbehebung.POWERLEVEL9K_LEGACY_ICON_SPACING=true
um den gleichen Abstand wie in Powerlevel9k zu erhalten. Weitere Details zur Fehlerbehebung.Wenn Sie beim Umschalten von PowerLevel9k zu PowerLevel10K weitere Änderungen im sofortigen Erscheinungsbild bemerken, öffnen Sie bitte ein Problem.
Es gibt so viele Meinungen darüber, was die beste Aufforderung ausmacht, wie es Menschen gibt. Es kommt hauptsächlich auf persönliche Vorlieben an. Es gibt jedoch einige versteckte Auswirkungen unterschiedlicher Entscheidungen.
Pure Style ist eine genaue Replikation des reinen ZSH -Themas. Es existiert, um die Migration für Benutzer dieses Themas zu erleichtern. Wenn Sie nicht von ihnen sind, wählen Sie einen schlanken Stil über Pure.
Wenn Sie die schnellen Farben auf die ausgewählte terminalfarbene Farbpalette (z. B. solarisierte Dunkelheit ) einschränken möchten, verwenden Sie Regenbogen , Lean → 8 Farben oder rein → Original . Andere Stile verwenden feste Farben und sehen somit in jeder terminalen Farbpalette gleich aus.
Alle Stile mit Ausnahme von Pure haben die Option, ASCII -Charset zu verwenden. Die Eingabeaufforderung sieht weniger hübsch aus, wird aber mit allen Schriftarten und in allen Orten korrekt rendern.
Wenn Sie eine vorübergehende Eingabeaufforderung aktivieren, nutzen Sie die Eingabeaufforderung mit zwei Zeilen. Sie erhalten den Vorteil eines zusätzlichen Platzes, um Befehle zu tippen, ohne den üblichen Nachteil der reduzierten Schriftrollendichte. Es ist auch schön, alle Befehle aus dem gleichen Offset zu beginnen.
Wenn Sie eine vorübergehende Eingabeaufforderung aktivieren, ist eine spärliche Eingabeaufforderung (mit einer leeren Linie vor der Eingabeaufforderung) eine gute Wahl.
Wenn Sie VI Keymap verwenden, wählen Sie Eingabeaufforderung mit prompt_char
(angezeigt als grün ❯
im Assistenten). Dieses Symbol ändert sich je nach VI -Modus: ❯
, ❮
, V
, ▶
Für Einfügen, Befehl, visuell und ersetzen. Wenn ein Befehl fehlschlägt, wird das Symbol rot. Lean Style enthält immer prompt_char
. Regenbogen und klassische Stile haben es nur in der Zwei-Linie-Konfiguration ohne linke Rahmen.
Wenn Sie den horizontalen Raum schätzen oder die minimalistische Ästhetik bevorzugen:
Hinweis : Sie können den Konfigurationsassistenten so oft ausführen, wie Sie möchten. Geben Sie p10k configure
ein, um einen neuen Eingabeaufforderungstil auszuprobieren.
Verwenden Sie diese Konfiguration.
Sie können es entweder herunterladen, speichern als ~/.p10k.zsh
und source ~/.p10k.zsh
aus ~/.zshrc
oder Quelle p10k-robbyrussell.zsh
direkt aus Ihrem klonierten powerlevel10k
Repository.
Nein. Wenn Sie die Eingabetaste drücken und der von Ihnen eingegebene Befehl beginnt, wird der Fehlerstatus noch nicht bekannt, sodass er nicht in der Eingabeaufforderung angezeigt werden kann. Nach Abschluss des Befehls wird der Fehlerstatus bekannt, aber es ist nicht mehr möglich, die Eingabeaufforderung für diesen Befehl zu aktualisieren. Aus diesem Grund spiegelt sich der Fehlerstatus für jeden Befehl in der nächsten Eingabeaufforderung wider.
Weitere Informationen finden Sie in diesem Beitrag on /r /zsh.
ZSH 5.3 oder neuer sollte funktionieren. Schnelles Start erfordert ZSH> = 5.4.
Alle Screenshots und animierten GIFs wurden im GNOME -Terminal mit der empfohlenen Schriftart und der Tango Dark Color -Palette mit benutzerdefinierter Hintergrundfarbe ( #171A1B
anstelle von #2E3436
- doppelt so dunkel) aufgezeichnet.
Die Syntax-Hervorhebung wurde von Zsh-Syntax-Highlighting bereitgestellt.
Die empfohlene Schriftart ist das Produkt vieler Personen. Sein Ursprung ist Bitstream Vera Sans Mono , das Menlo zur Welt gebracht hat, was wiederum Meslo hervorgebracht hat. Schließlich wurden Meslo zusätzliche Glyphen mit Skripten von Nerd -Schriftarten hinzugefügt. Die endgültige Schriftart wird unter den Bedingungen der Apache -Lizenz veröffentlicht.
Meslolgs NF -Schrift kann mit dem folgenden Befehl nachgebildet werden (erfordert git
und docker
):
git clone --depth=1 https://github.com/romkatv/nerd-fonts.git
cd nerd-fonts
./build ' Meslo/S/* '
Wenn alles gut läuft, werden vier ttf
-Dateien in ./out
angezeigt.
Derzeit ist es weder einfach noch empfohlen, Power -Level -10K zu verpacken und zu verteilen. Es gibt keine Anweisungen, die Sie befolgen können, mit denen Sie Ihr Paket einfach aktualisieren können, wenn neue Versionen von PowerLevel10K veröffentlicht werden. Dies mag sich in Zukunft ändern, aber nicht bald.
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
source ~/.zshrc
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
Wenn Sie ein Terminal öffnen oder ZSH manuell starten, können Sie auf diese Fehlermeldung stoßen:
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
typeset -p P9K_VERSION
aus, um zu überprüfen, ob PowerLevel10K geladen wurde.typeset -p P9K_VERSION
erfolgreich ist und so etwas wie typeset P9K_VERSION=1.19.14
(die Version unterschiedlich sein kann), entfernen Sie die folgende Zeile von ~/.zshrc
: ZSH_THEME= " powerlevel10k/powerlevel10k "
typeset -p P9K_VERSION
mit dem typeset: no such variable: P9K_VERSION
, führen Sie den folgenden Befehl aus: git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
exec zsh
neu. Wenn es wie ein Stammgast aussieht ?
das ist normal. Dies bedeutet, dass Sie im aktuellen Git -Repository nicht abgeschlossene Dateien haben. Geben Sie git status
ein, um diese Dateien anzuzeigen. Sie können dieses Symbol ändern oder die Anzeige von nicht zusammengezogenen Dateien insgesamt deaktivieren. Suchen Sie nach untracked files
in ~/.p10k.zsh
.
FAQ : Was bedeuten unterschiedliche Symbole im Git -Status?
Sie können auch ein seltsam aussehendes Fragezeichen in Ihrer Eingabeaufforderung erhalten, wenn die Schrift Ihres Terminals einige Glyphen fehlt. Siehe Icons, Glyphen oder Powerline -Symbole rendern nicht.
Starten Sie Ihr Terminal neu, installieren Sie die empfohlene Schriftart und führen Sie p10k configure
aus.
Es gibt drei Unvollkommenheiten auf dem Screenshot. Von links nach rechts:
ZSH-Themen haben keine Down-to-Pixel-Kontrolle über den Terminalgehalt. Alles, was Sie auf dem Bildschirm sehen, besteht aus Monospace -Charakteren. Ein White Powerline-Eingabeaufforderungsegment besteht aus Text auf weißem Hintergrund, gefolgt von U+E0B0 (ein rechts zeigendes Dreieck).
Wenn Powerlevel10K -Eingabeaufforderung Unvollkommenheiten um Powerline -Symbole aufweist, sehen Sie genau die gleichen Unvollkommenheiten mit allen Powerline -Themen (Agnoster, Powerlevel9k, Powerline usw.).
Es gibt verschiedene Dinge, die Sie versuchen können, mit diesen Unvollkommenheiten umzugehen:
Eine radikalere Lösung besteht darin, ohne Hintergrund auf einen schnellen Stil zu wechseln. Geben p10k configure
und wählen Sie Lean . Dieser Stil hat einen modernen leichten Look. Als Bonus leidet es nicht unter der Rendern von Unvollkommenheiten, die die Eingabeaufforderung im Powerline-Stil betreffen.
Geben Sie echo 'u276F'
ein. Wenn Sie einen Fehler erhalten, in dem "ZSH: Charakter nicht in Reichweite" heißt, unterstützt Ihr Gebietsschema UTF-8 nicht. Sie müssen es beheben. Wenn Sie ZSH über SSH laufen, sehen Sie sich dies an. Wenn Sie ZSH lokal ausführen, "setzen Sie das UTF-8-Gebietsschema in Ihrem Betriebssystem ".
Geben Sie echo 'u276F'
ein. Wenn Sie einen Fehler erhalten, in dem "ZSH: Charakter nicht im Bereich" heißt, siehe vorheriger Abschnitt.
Wenn der Befehl echo
druckt ❯
, der Cursor jedoch noch an der falschen Stelle ist, installieren Sie die empfohlene Schriftart und führen Sie p10k configure
aus.
Wenn dies nicht hilft, fügen Sie unset ZLE_RPROMPT_INDENT
unten von ~/.zshrc
hinzu.
Immer noch Probleme haben? Führen Sie den folgenden Befehl aus, um das Problem zu diagnostizieren:
() {
emulate -L zsh
setopt err_return no_unset
local text
print -rl -- ' Select a part of your prompt from the terminal window and paste it below. ' ' '
read -r ' ?Prompt: ' text
local -i len= ${(m) # text}
local frame= " +- ${(pl. $len ..-.) :- } -+ "
print -lr -- $frame " | $text | " $frame
}
+------------------------------+
| romka@adam ✓ ~/powerlevel10k |
+------------------------------+
Wenn die Ausgabe des Befehls für jeden Teil Ihrer Eingabeaufforderung (links und rechts) ausgerichtet ist, zeigt dies einen Fehler im Thema oder Ihrer Konfiguration an. Verwenden Sie diesen Befehl, um ihn zu diagnostizieren:
print -rl -- ${(eq+)PROMPT} ${(eq+)RPROMPT}
Suchen Sie nach %{...%}
und Backslash Escapes in der Ausgabe. Wenn es welche gibt, sind sie die wahrscheinlichen Schuldigen. Öffnen Sie ein Problem, wenn Sie stecken bleiben.
+-----------------------------+
| romka@adam ✓ ~/powerlevel10k |
+-----------------------------+
Dies wird normalerweise durch einen terminalen Fehler oder eine Missverständnis verursacht, die es mehrdeutige Breitenzeichen als doppelte Breite anstelle einer einzelnen Breite druckt. Zum Beispiel dieses Problem.
+------------------------------+
| romka@adam ✓~/powerlevel10k |
+------------------------------+
Beachten Sie, dass diese Eingabeaufforderung sich vom Original unterscheidet, da nach dem Scheck einen Platz fehlt.
Dies kann durch einen Fehler mit niedrigem Niveau in MacOS verursacht werden. Siehe dieses Problem.
Dies kann auch passieren, wenn die Eingabeaufforderung Glyphen enthält, die als "breit" im Unicode-Standard bezeichnet werden und Ihr Terminal sie fälschlicherweise als nicht weit anzeigt. Zu den an dieser Begrenzung leidenen Terminals gehören Konsole, Hyper und das integrierte VSCODE -Terminal. Die Lösung besteht darin, ein anderes Terminal zu verwenden oder alle breiten Glyphen aus der Eingabeaufforderung zu entfernen.
+--------------------------------+
| romka@adam ✓ ~/powerlevel10k |
+--------------------------------+
Dies kann durch falsch konfiguriertes Gebietsschema verursacht werden. Siehe dieses Problem.
Siehe Cursor ist am falschen Ort.
Siehe Cursor ist am falschen Ort.
Wenn PowerLevel10K startet, wird automatisch p10k configure
wenn keine POWERLEVEL9K_*
-Parameter definiert sind. Basierend auf Ihren Auswahlmöglichkeiten für Ihre Auswahlstil erstellt der Konfigurationsassistent ~/.p10k.zsh
mit einer Reihe von POWERLEVEL9K_*
-Parametern und fügt ~/.zshrc
eine Zeile hinzu, um diese Datei zu beschaffen. Wenn Sie das nächste Mal ZSH starten, sollte der Konfigurationsassistent nicht automatisch ausgeführt werden. Wenn dies der Fall ist, bedeutet dies, dass die Bewertung von ~/.zshrc
vorzeitig endet, bevor sie die Linie erreicht, die ~/.p10k.zsh
bezeichnet. Dies geschieht am häufigsten aufgrund von Syntaxfehlern in ~/.zshrc
. Diese Fehler werden vom Bildschirm "Konfigurationsassistent" versteckt, sodass Sie sie nicht bemerken. Wenn Sie den Konfigurationsassistenten beenden, suchen Sie nach Fehlermeldungen. Sie können auch POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true zsh
verwenden, um ZSH zu starten, ohne den Konfigurationsassistenten automatisch auszuführen. Sobald Sie die Fehler sehen können, beheben Sie ~/.zshrc
um sie loszuwerden.
Wenn die ZSH -Version unter 5.7.1 oder COLORTERM
weder 24bit
noch truecolor
ist, bietet der Konfigurationsassistent keinen reinen Stil mit einem schnellen Farbschema. Fix : Installieren Sie ZSH> = 5.7.1 und verwenden Sie ein Terminal mit TrueColor -Unterstützung. Überprüfen Sie mit print -P '%F{#ff0000}red%f'
.
Wenn das Terminal weniger als 256 Farben anzeigen kann, wird der Konfigurationsassistent mit 8 Farben einen Lean -Stil vor den Voraussetzungen vornehmen. Alle anderen Stile erfordern mindestens 256 Farben. Fix : Verwenden Sie ein Terminal mit 256 Farbunterstützung und stellen Sie sicher, dass TERM
Begriffsumgebungsvariable korrekt eingestellt ist. Überprüfen Sie mit print $terminfo[colors]
.
Wenn das System kein UTF-8-Gebietsschema vorhanden ist, bietet der Konfigurationsassistent keine Eingabeaufentwicklungsstile an, die Unicode-Zeichen verwenden. Fix : Installieren Sie ein UTF-8-Gebietsschema. Überprüfen Sie mit locale -a
.
Ein weiterer Fall, in dem der Konfigurationsassistent möglicherweise keine Unicode -Eingabeaufforderungsstile anbietet, ist, wenn die Option MULTIBYTE
Shell deaktiviert ist. Fix : Aktivieren Sie die Option MULTIBYTE
oder deaktivieren Sie sie nicht (diese Option ist standardmäßig in ZSH aktiviert). Überprüfen Sie mit print -r -- ${options[MULTIBYTE]}
.
Wenn MULTIBYTE
aktiviert ist und ein UTF-8-Gebietsschema verfügbar ist, bewerten die ersten Fragen, die vom Konfigurationsassistenten die Funktionen der Terminalschrift bewerten. Wenn Ihre Antworten darauf hinweisen, dass einige Glyphen nicht korrekt rendern, bietet der Konfigurationsassistent keine sofortigen Stile, die sie verwenden. Fix : Starten Sie Ihr Terminal neu und installieren Sie die empfohlene Schriftart. Überprüfen Sie, indem Sie p10k configure
und überprüfen Sie, ob alle Glyphen korrekt rendern.
Sobald Sie die empfohlene Schriftart heruntergeladen haben, können Sie sie wie jede andere Schriftart installieren. Google "So installieren Sie Schriftarten unter Ihrem Betriebssystem ".
TL; DR: Fügen Sie ZLE_RPROMPT_INDENT=0
und POWERLEVEL9K_LEGACY_ICON_SPACING=true
to ~/.zshrc
hinzu, um den gleichen Eingabeaufforderung wie in PowerLevel9k zu erhalten.
Bei Verwendung von PowerLevel10K mit einer PowerLevel9K -Konfiguration erhalten Sie möglicherweise hier und da zusätzliche Räume in der Eingabeaufforderung. Diese kommen in zwei Geschmacksrichtungen.
TL; DR: Fügen Sie ZLE_RPROMPT_INDENT=0
zu ~/.zshrc
hinzu, um diesen Raum loszuwerden.
Aus ZSH -Dokumentation:
ZLE_RPROMPT_INDENT <S>
Wenn Sie festgelegt sind, wird die Eindrücke zwischen der rechten Seite der rechten Eingabeaufforderung im Linieneditor durch
RPS1
oderRPROMPT
und die rechte Seite des Bildschirms angegeben. Wenn nicht eingestellt, wird der Wert1
verwendet.In der Regel wird dies verwendet, um den Wert auf
0
einzustellen, sodass die Eingabeaufforderung mit der rechten Seite des Bildschirms bündig erscheint.
Powerlevel10K respektiert diesen Parameter. Wenn Sie ZLE_RPROMPT_INDENT=1
festlegen (oder es nicht festgelassen lassen, was das gleiche ist wie auf 1
), erhalten Sie rechts von der rechten Eingabeaufforderung einen leeren Speicherplatz. Wenn Sie ZLE_RPROMPT_INDENT=0
festlegen, wird Ihre Eingabeaufforderung an den Rand des Terminals gehen. So funktioniert es in jedem Thema, außer bei Powerlevel9k.
PowerLevel9K -Ausgabe: Powerlevel9k#1292. Es wurde im Entwicklungszweig von Powerlevel9k festgelegt, aber die Lösung hat es noch nicht zum master
geschafft.
Fügen Sie ZLE_RPROMPT_INDENT=0
zu ~/.zshrc
hinzu, um den gleichen Abstand am rechten Rand der Eingabeaufforderung wie in Powerlevel9k zu erhalten.
Hinweis: Mehrere Versionen von ZSH haben Fehler, die ausgelöst werden, wenn Sie ZLE_RPROMPT_INDENT=0
festgelegt werden. PowerLevel10K kann diese Fehler bei der Verwendung von PowerLine -Eingabeaufforderungen umgehen. Wenn Sie visuelle Artefakte in der Eingabeaufforderung oder in der falschen Cursorposition bemerken, entfernen Sie ZLE_RPROMPT_INDENT
aus ~/.zshrc
.
TL; DR: Fügen Sie POWERLEVEL9K_LEGACY_ICON_SPACING=true
to ~/.zshrc
hinzu, um den gleichen Abstand um Symbole wie in Powerlevel9k zu erhalten.
Der Abstand um Ikonen in Powerlevel9k ist inkonsistent.
Diese Inkonsistenz ist eine ständige Quelle des Ärgers, daher wurde sie in Power -Level -10k festgelegt. Sie können POWERLEVEL9K_LEGACY_ICON_SPACING=true
zu ~/.zshrc
hinzufügen, um den gleichen Abstand um Symbole wie in Powerlevel9k zu erhalten.
Hinweis: Es ist keine gute Idee, bei Verwendung von p10k configure
POWERLEVEL9K_LEGACY_ICON_SPACING
zu definieren.
source ~/.zshrc
Es ist fast immer eine schlechte Idee, source ~/.zshrc
auszuführen, egal ob Sie PowerLevel10K verwenden oder nicht. Dieser Befehl kann zu zufälligen Fehlern, dem Fehlbehnencode und einer progressiven Verlangsamung von ZSH führen.
Wenn Sie Änderungen an ~/.zshrc
oder an Dateien vorgenommen haben, starten Sie ZSH neu, um sie anzuwenden. Der zuverlässigste Weg, dies zu tun, besteht darin, exit
einzugeben und dann eine neue ZSH -Sitzung zu starten. Sie können auch exec zsh
verwenden. Dieser Befehl ist zwar nicht genau gleichwertig mit dem Neustart von ZSH, ist aber viel zuverlässiger als source ~/.zshrc
.
Sehen Sie seltsame Dinge, die nach der Eingabe von source ~/.zshrc
passieren.
Wenn die Installationsanweisungen für Sie nicht funktionieren, deaktivieren Sie Ihr aktuelles Thema (damit Sie am Ende kein Thema haben) und installieren Sie dann die Power -Level -10K manuell.
~/.zshrc
und entfernen Sie die Linie, die ZSH_THEME
festlegt. Es könnte so aussehen: ZSH_THEME="powerlevel9k/powerlevel9k"
.~/.zshrc
und entfernen Sie den Befehl zplug
, der sich auf Ihr aktuelles Thema bezieht. Wenn Sie beispielsweise PowerLevel9k verwenden, suchen Sie nach zplug bhilburn/powerlevel9k, use:powerlevel9k.zsh-theme
.~/.zpreztorc
und setzen Sie zstyle :prezto:module:prompt theme off
In It. Entfernen Sie einen anderen Befehl, der theme
wie zstyle :prezto:module:prompt theme powerlevel9k
festlegt.~/.zshrc
und entfernen Sie die Linie, die antigen theme
festlegt. Es könnte so aussehen: antigen theme powerlevel9k/powerlevel9k
.git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Diese Installationsmethode macht nichts langsamer oder auf andere Weise unterdurchschnittlich.
Im Regenbogenstil wird das aktuelle Arbeitsverzeichnis mit hellem weißem Text auf blauem Hintergrund angezeigt. Das Weiß ist fest und sieht immer gleich aus, aber das Erscheinungsbild von "Blau" wird durch Ihre terminale Farbpalette definiert. Wenn es sehr leicht ist, kann es schwierig sein, weiße Text darauf zu sehen.
Es gibt verschiedene Möglichkeiten, dies zu beheben.
p10k configure
ein und wählen Sie einen lesbareren Eingabeaufforderungsstil.POWERLEVEL9K_DIR_BACKGROUND
, POWERLEVEL9K_DIR_FOREGROUND
, POWERLEVEL9K_DIR_SHORTENED_FOREGROUND
, POWERLEVEL9K_DIR_ANCHOR_FOREGROUND
und POWERLEVEL9K_DIR_ANCHOR_BOLD
bezeichnet. Sie finden sie in ~/.p10k.zsh
.Verwandte : Falsche Vordergrundfarbe in VSCODE -Anschluss.
Standardmäßig kann das VSCODE -Terminal die Vordergrundfarbe Ihrer Wahl durch eine andere Farbe willkürlich ersetzen. Dieses Verhalten kann in VSCODE -Einstellungen ausgeschaltet werden.
Wenn Sie ein paar Male horizontal die Größe eines Terminalfensters ändern, sehen Sie möglicherweise dieses hässliche Bild.
TL; DR: Dieses Problem tritt auf, wenn bei der Größenänderung ein Terminal -Reflower -ZSH -Eingabeaufforderung. Es ist nicht spezifisch für Powerlevel10K. Siehe Minderung.
Hinweis: In diesem Abschnitt heißt es, dass das Problem durch einen Fehler in ZSH verursacht wird. Obwohl es wahr ist, dass es möglich ist, das Problem unter vielen Umständen zu vermeiden, indem ZSH geändert wird, kann es auf diese Weise nicht vollständig gelöst werden. So ist es unfair, ZSH die Schuld zu geben.
Das Problem zeigt sich, wenn sich der vertikale Abstand zwischen dem Beginn der aktuellen Eingabeaufforderung und dem Cursor (fortan VD
) ändert, wenn das Terminalfenster geändert wird.
Wenn ein Terminalfenster horizontal geschrumpft wird, gibt es zwei Möglichkeiten für ein Terminal, lange Linien zu verarbeiten, die nicht mehr passen: Reflow oder Abschneiden .
Terminalgehalt vor dem Schrumpfen:
Terminal Reflows Text beim Schrumpfen:
Terminalverschmutzungstext beim Schrumpfen:
Die Reflowing -Strategie kann die Höhe des Terminalgehalts verändern. Wenn ein solcher Inhalt zwischen dem Beginn der aktuellen Eingabeaufforderung und dem Cursor liegt, druckt ZSH Eingabeaufforderung in der falschen Zeile. Die Kürzungsstrategie ändert niemals die Höhe des Terminalinhalts, sodass dieses Problem nicht ausgelöst wird.
Mal sehen, wie sich das Problem in Zeitlupe abspielt. Wir werden zunächst zsh -f
starten und den folgenden Code einfügen:
function pause() { read -s }
functions -M pause 0
reset
print -l {1..3}
setopt prompt_subst
PROMPT= $' ${$((pause()))+}left>${(pl.$((COLUMNS-12))..-.)}<right n > '
Wenn PROMPT
erweitert wird, ruft sie pause
auf, um uns den Zustand des Terminals zu beobachten. Hier ist der Anfangszustand:
ZSH verfolgt die Cursorposition relativ zum Beginn der aktuellen Eingabeaufforderung. In diesem Fall weiß es, dass der Cursor eine Zeile unten ist. Wenn wir das Terminalfenster verkleinern, sieht es so aus:
Zu diesem Zeitpunkt sendet das Terminal SIGWINCH
nach ZSH, um es über Änderungen der Terminalabmessungen zu informieren. Beachten Sie, dass dieses Signal gesendet wird , nachdem der Inhalt des Terminals reflektiert wurde.
Wenn ZSH SIGWINCH
empfängt, versucht es, die aktuelle Eingabeaufforderung zu löschen und neu zu drucken. Es geht zu der Position, in der die aktuelle Eingabeaufforderung lautet - eine Zeile über dem Cursor (!) - Löscht alle terminalen Inhalte, die dort folgen und druckt, um die Eingabeaufforderung zu expandieren. Nach der Größenänderung befindet sich jedoch nicht mehr eine Zeile über dem Cursor. Es sind zwei Zeilen oben! ZSH druckt am Ende eine neue Eingabeaufforderung, die zu niedrig ist.
In diesem Fall hatten wir einen unerwünschten Junk -Inhalt, weil VD
zugenommen hat. Wenn Sie das Terminalfenster breiter machen, kann VD
ebenfalls abnehmen , was dazu führen kann, dass die neue Eingabeaufforderung höher gedruckt wird als beabsichtigt, wodurch nützliche Inhalte in diesem Prozess gelöscht werden.
Hier sind einige weitere Beispiele, bei denen ein schrumpfendes Terminalfenster VD
erhöht wurde.
prompt_subst
. Beachten Sie, dass sich der Cursor unter der Eingabeaufforderung befindet (drücken Sie ESC-Enter, um ihn dort zu erreichen).prompt_subst
, keine richtige Eingabeaufforderung. Hier wird VD
verpflichtet, beim Schrumpfen des Terminals aufgrund der Befehlszeile zu vergrößern. Dieses ZSH -Patch behebt das Problem in einigen Terminals. Die Idee hinter dem Patch besteht darin, vor dem Drucken der sc
und rc
(Wiederherstellung Cursor) den Cursor -Cursor Cursor in die ursprüngliche Position zu verwenden, wenn die Eingabeaufforderung aktualisiert werden muss.
Der Patch funktioniert nur an Terminals, die zusammen mit dem Text, wenn das Terminalfenster geändert wird, geändert, die geändert werden. Der Patch hat keinen beobachtbaren Einfluss auf Klemmen, die den Text in der Größe nicht reflowieren (sowohl gepatchte als auch nicht angepatte ZSH verhalten sich korrekt) und an den Klemmen, die Text überfließen ). Mit anderen Worten, das Patch behebt das Problem der Größenänderung in einigen Terminals, während das Verhalten bei anderen unverändert bleibt.
Es gibt zwei alternative Ansätze zum Patchen von ZSH, die auf den ersten Blick zu funktionieren scheint, aber tatsächlich nicht:
sc
u7
-Terminalfunktion, um die aktuelle Cursorposition abzufragen, und dann auf cup
um darauf zurückzukehren. This doesn't work because the absolute position of the start of the current prompt changes when text gets reflown.VD
based on new terminal dimensions before attempting to refresh prompt. This doesn't work because Zsh doesn't know whether terminal reflows text or truncates it. If Zsh could somehow know that the terminal reflows text, this approach still wouldn't work on terminals that continuously reflow text and rapid-fire SIGWINCH
when the window is being resized. In such environment real terminal dimensions go out of sync with what Zsh thinks the dimensions are.There is no ETA for the patch making its way into upstream Zsh. See discussion.
There are a few mitigation options for this issue.
POWERLEVEL9K_TERM_SHELL_INTEGRATION=true
in ~/.p10k.zsh
.POWERLEVEL9K_SHOW_RULER=false
.POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '
.POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX=''
, POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX=''
and POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX=''
.POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
. Right prompt on the last prompt line will cause resizing issues only when the cursor is below it. This isn't very common, so you might want to keep some elements in POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
provided that none of them are succeeded by newline
.When using Konsole with a non-monospace font, icons may be cut off on the right side. Here "non-monospace" refers to any font with glyphs wider than a single column, or wider than two columns for glyphs designated as "wide" in the Unicode standard.
The last line on the screenshot shows a cut off Arch Linux logo.
There are several mitigation options for this issue.
os_icon
prompt segment gets cut off, open ~/.p10k.zsh
, search for POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION
and change it as follows: typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION= ' ${P9K_CONTENT} ' # extra space at the end
~/.p10k.zsh
: typeset -g POWERLEVEL9K_LINUX_ARCH_ICON= ' Arch ' # plain "Arch" in place of a logo
os_icon
prompt segment gets cut off, open ~/.p10k.zsh
and remove os_icon
from POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
and POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
.Note : Non-monospace fonts are not officially supported by Konsole.
Some fonts have this incorrect dotted icon in bold typeface. There are two ways to fix this issue.
~/.p10k.zsh
, search for POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION
and remove %B
from its value. typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION= ' ${P9K_CONTENT} ' # not bold
Powerlevel10k uses gitstatusd to inspect the state of git repositories. The project relies on the libgit2 library, which has some gaps in its implementation. Under some conditions, this may result in discrepancies between the real state of a git repository (reflected by git status
) and what gets shown in the Powerlevel10k prompt.
Most notably, libgit2 does not support skipHash
. If you see incorrect git status in prompt, run git config -l
and check whether skipHash
is enabled. If it is, consider disabling it. Keep in mind that skipHash
may be implicitly enabled when activating certain git features, such as manyFiles
.