Powerlevel10k は Zsh のテーマです。スピード、柔軟性、すぐに使えるエクスペリエンスを重視します。
exec zsh
で Zsh を再起動します。p10k configure
と入力します。 p10k configure
と入力して、端末から直接組み込み構成ウィザードにアクセスします。
Pure を除くすべてのスタイルは機能的に同等です。これらは同じ情報を表示し、表示方法のみが異なります。
構成ウィザードは、設定に基づいて~/.p10k.zsh
を作成します。このファイルを編集することで、追加のプロンプトのカスタマイズを行うことができます。構成オプションをナビゲートするのに役立つコメントがたくさんあります。
ヒント: p10k configure
実行してすべてのプロンプト スタイルのロックを解除する前に、推奨フォントをインストールしてください。
よくある質問:
トラブルシューティング:
ENTER を押すと、次のプロンプトが即座に表示されます。 Powerlevel10k では、プロンプトラグはありません。 Raspberry Pi に Cygwin をインストールする場合は、Linux Git リポジトリにcd
、画面の両側に 4 つのプロンプト行を埋めるのに十分なプロンプト セグメントをアクティブ化します...待ってください、それはまったくクレイジーであり、誰もそんなことはしません。おそらくそれも無理でしょう。重要なのは、Powerlevel10k プロンプトは、何をしても常に高速であるということです。
すべてのコマンドの効果が次のプロンプトに即座に反映されることに注目してください。
指示 | プロンプトインジケーター | 意味 |
---|---|---|
timew start hack linux | ⌚ hack linux | timewarrior で時間追跡が有効になりました |
touch xy | ?2 | Git リポジトリ内の 2 つの追跡されていないファイル |
rm COPYING | !1 | Git リポジトリ内の 1 つのステージングされていない変更 |
echo 3.7.3 >.python-version | ? 3.7.3 | pyenv の現在の Python バージョン |
同じ情報を表示できる他の Zsh テーマでは、プロンプトの遅延が発生するか、システムの現在の状態を反映しないプロンプトが表示され、後で更新されます。 Powerlevel10k を使用すると、迅速なプロンプトと最新情報が得られます。
FAQ : 本当に速いですか?
Powerlevel10k は、Powerlevel9k のすべての構成パラメータを理解します。
Powerlevel9k から Powerlevel10k への移行は簡単なプロセスです。すべてのPOWERLEVEL9K
構成パラメータは引き続き機能します。プロンプトは以前と(ほぼ)同じように見えますが、(確かに)はるかに速くなります。
よくある質問:
Powerlevel10k は Pure と同じプロンプトを生成できます。 p10k configure
と入力し、 「Pure style」を選択します。
Pure スタイルをスポーツする場合でも、一時的なプロンプトやインスタント プロンプトなどの Powerlevel10k 機能を引き続き使用できます。
プロンプトをカスタマイズするには、 ~/.p10k.zsh
を編集します。 Powerlevel10k は Pure 構成パラメータを認識しないため、 PURE_CMD_MAX_EXEC_TIME=3
などの代わりにPOWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
使用する必要があります。関連するパラメータはすべて~/.p10k.zsh
にあります。このファイルには、ファイル内をナビゲートするのに役立つコメントが多数含まれています。
FAQ:構成ウィザードでの最適なプロンプト スタイルは何ですか?
~/.zshrc
多数のプラグインをロードする場合、またはおそらくいくつかの遅いプラグイン (pyenv や nvm など) をロードする場合、Zsh の起動に時間がかかることに気付いたかもしれません。
Powerlevel10k は、テーマが原因でない場合でも、 Zsh の起動遅延を解消できます。
この機能はインスタント プロンプトと呼ばれます。 p10k configure
を通じて、または手動で明示的に有効にする必要があります。これは文字通りのことを行います。Zsh の起動時にすぐにプロンプトが表示され、プラグインのロード中に入力を開始できるようになります。
他のテーマでは、Zsh の起動遅延が増加します。大幅に増加するテーマもあれば、ほんの少しだけ増加するテーマもあります。 Powerlevel10k はそれを完全に削除します。
インスタント プロンプトがどのように機能するかについて興味がある場合は、zsh-bench のこのセクションを参照してください。
FAQ:インスタント プロンプトを設定するにはどうすればよいですか?
一部のコマンドの動作はグローバル環境に依存します。たとえば、 kubectl run ...
現在の kubernetes コンテキストによって定義されたクラスター上でイメージを実行します。 「prod」と「testing」の間でコンテキストを頻繁に変更する場合は、Zsh プロンプトに現在のコンテキストを表示するとよいでしょう。 AWS、Azure、Google Cloud の認証情報に対しても同様に行うと、プロンプトがかなり混雑します。
Show On コマンドを入力します。この機能により、プロンプト セグメントは、現在入力しているコマンドに関連する場合にのみ表示されます。
p10k configure
によって作成された設定では、デフォルトでいくつかのプロンプト セグメントに対して show on コマンドが有効になります。 Kubernetes コンテキストに関連するパラメータは次のとおりです。
# 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 '
さまざまなプロンプト セグメントが表示されるタイミングをカスタマイズするには、 ~/.p10k.zsh
を開いてSHOW_ON_COMMAND
を検索し、これらのパラメーターを削除して影響を受けるセグメントを無条件に表示するか、値を変更します。
p10k configure
によって一時プロンプトが有効になっている場合、Powerlevel10k はコマンド ラインを受け入れるときにすべてのプロンプトをトリミングします。
一時的なプロンプトにより、ターミナルのスクロールバックから一連のコマンドをコピーして貼り付けることがはるかに簡単になります。
ヒント: 一時的なプロンプトを有効にする場合は、2 行のプロンプトを利用してください。スクロールバックの密度が低下するという通常の欠点を生じることなく、コマンドを入力するための追加のスペースが得られるという利点があります。スパース プロンプト (プロンプトの前に空の行がある) は、一時的なプロンプトと組み合わせるとうまく機能します。
現在の作業ディレクトリは、おそらく最も重要なプロンプト セグメントです。 Powerlevel10k は、水平方向のスペースが不足した場合に重要な部分を強調し、情報の損失を最小限に抑えて切り詰めるために多大な労力を費やします。
ディレクトリ全体が収まらない場合は、左端のセグメントが最も短い一意のプレフィックスに切り詰められます。スクリーンキャストでは、 ~/work
~/wo
になります。あいまいになるため、 ~/w
に切り詰めることはできません (セッションが記録されたときは~/wireguard
がありました)。 ~/work/
にはp
で始まるものが他にないため、次のセグメントprojects
-- はp
に変わります。
ディレクトリ セグメントは、次の 3 色のいずれかで表示されます。
ヒント: 切り詰められたディレクトリをコピーして貼り付けてTAB キーを押すと、元のディレクトリに戻ります。
トラブルシューティング: レインボー スタイルを使用すると、プロンプトでディレクトリが見にくくなります。
Powerlevel10k は、他の Zsh テーマと同じように構成できます。
Pure、Powerlevel9k、robbyrussell エミュレーションが組み込まれています。他のテーマの外観をエミュレートするには、適切な構成ファイルを作成する必要があります。最善の方法は、 p10k configure
実行し、目的に最も近いスタイルを選択して、 ~/.p10k.zsh
を編集することです。
Powerlevel10k の外観の全範囲は、スパルタンから次のとおりです。
にばかげている贅沢:
Powerlevel10k には、さまざまなソースからの情報を表示できる高品質のプロンプト セグメントが多数組み込まれています。 p10k configure
実行して Pure 以外のスタイルを選択すると、これらのセグメントの多くはデフォルトで有効になりますが、他のセグメントは~/.p10k.zsh
を開いてコメントを解除することで手動で有効にすることができます。セグメントは好きなだけ有効にできます。プロンプトや Zsh の起動が遅くなることはありません。
セグメント | 意味 |
---|---|
anaconda | condaからの仮想環境 |
asdf | asdf のツール バージョン |
aws | AWS プロファイル |
aws_eb_env | aws Elastic Beanstalk 環境 |
azure | Azureアカウント名 |
background_jobs | バックグラウンドジョブの存在 |
battery | 内部バッテリーの状態と充電レベル (はい、文字通りバッテリーが含まれています) |
command_execution_time | 最後のコマンドの継続時間 (経過時間) |
context | ユーザー@ホスト名 |
cpu_arch | CPUアーキテクチャ |
dir | 現在の作業ディレクトリ |
direnv | ディレンブステータス |
disk_usage | ディスク使用量 |
dotnet_version | ドットネットバージョン |
fvm | fvm からのフラッター環境 |
gcloud | Google Cloud cli アカウントとプロジェクト |
goenv | goenv からの go 環境 |
google_app_cred | Google アプリケーションの認証情報 |
go_version | 行くバージョン |
haskell_stack | スタックからの Haskell バージョン |
ip | 指定されたネットワーク インターフェイスの IP アドレスと帯域幅の使用状況 |
java_version | Javaのバージョン |
jenv | jenvからのJava環境 |
kubecontext | 現在の Kubernetes コンテキスト |
laravel_version | laravel phpフレームワークのバージョン |
load | CPU負荷 |
luaenv | luaenv からの lua 環境 |
midnight_commander | 真夜中の指揮官シェル |
nix_shell | nixシェルインジケーター |
nnn | nnnシェル |
lf | シェルの場合 |
chezmoi_shell | チェズモイシェル |
nodeenv | nodeenvからのnode.js環境 |
nodenv | nodenvからのnode.js環境 |
node_version | Node.jsのバージョン |
nordvpn | nordvpn接続ステータス |
nvm | nvmからのnode.js環境 |
os_icon | OS ロゴ (macOS の場合は apple、debian の場合は swirl など) |
package | package.json のname@version |
per_directory_history | Oh My Zsh ディレクトリごとの履歴のローカル/グローバル インジケーター |
perlbrew | perlbrew の perl バージョン |
phpenv | phpenvからのphp環境 |
php_version | PHPのバージョン |
plenv | plenv からの Perl 環境 |
prompt_char | 多機能プロンプトシンボル。 vi モードに応じて変化します: ❯ 、 ❮ 、 V 、 ▶ はそれぞれ挿入、コマンド、ビジュアル、および置換モードです。エラーで赤くなる |
proxy | システム全体の http/https/ftp プロキシ |
public_ip | パブリックIPアドレス |
pyenv | pyenvからのPython環境 |
ram | 空きRAM |
ranger | レンジャーシェル |
yazi | ヤジシェル |
rbenv | rbenv からの Ruby 環境 |
rust_version | 錆びたバージョン |
rvm | RVMからのRuby環境 |
scalaenv | scalaenv からの scala バージョン |
status | 最後のコマンドの終了コード |
swap | 中古スワップ |
taskwarrior | タスクウォリアーのタスク数 |
terraform | テラフォームワークスペース |
terraform_version | テラフォームのバージョン |
time | 現在時刻 |
timewarrior | タイムウォリアーの追跡ステータス |
todo | todo アイテム |
toolbox | ツールボックス名 |
vcs | Gitリポジトリのステータス |
vim_shell | vim シェル ( :sh ) |
virtualenv | venv からの Python 環境 |
vi_mode | vi モード (prompt_char を有効にしている場合は必要ありません) |
vpn_ip | 仮想プライベートネットワークインジケーター |
wifi | WiFiの速度 |
xplr | xplrシェル |
必要な処理を行うプロンプト セグメントがない場合は、独自のセグメントを実装してください。 Powerlevel10k は、組み込みのセグメントと同じくらい高速かつ柔軟なセグメントを定義するためのパブリック API を提供します。
Linux では、 /sys/class/thermal/thermal_zone0/temp
を読み取ることで現在の CPU 温度を取得できます。スクリーンキャストは、この値を表示するプロンプト セグメントを定義する方法を示しています。セグメントを定義すると、他のセグメントと同様に使用できます。標準のカスタマイズ パラメーターはすべて、そのまま使用できます。
参照用にp10k help segment
と入力します。
注: ( ~/.p10k.zsh
を編集するのではなく) すでに初期化されている対話型シェルでPOWERLEVEL9K_*
パラメーターを変更する場合、変更はすぐには有効にならない可能性があります。変更を適用するには、 p10k reload
を呼び出します。 POWERLEVEL9K_DISABLE_HOT_RELOAD=false
を設定すると、 p10k reload
の必要がなくなりますが、プロンプトの表示が若干遅くなります。
ヒント: Powerlevel10k の将来のバージョンとの衝突を避けるために、独自のセグメントの名前の前にmy_
を付けます。
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
中国のユーザーは gitee.com の公式ミラーを使用してダウンロードを高速化できます。
ユーザーは gitee.com 上の官方画像加速ダウンロードを使用できます。
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
これは最も単純なインストール方法であり、プラグイン マネージャーを使用している場合でも機能します。プラグインマネージャーで現在のテーマを必ず無効にしてください。ヘルプが必要な場合は、トラブルシューティングを参照してください。
リポジトリのクローンを作成します。
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
中国のユーザーは、gitee.com の公式ミラーを使用してダウンロードを高速化できます。
ユーザーは gitee.com 上の官方画像加速ダウンロードを使用できます。
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
~/.zshrc
を開き、 ZSH_THEME
を設定する行を見つけ、その値を"powerlevel10k/powerlevel10k"
に変更します。
zstyle :prezto:module:prompt theme powerlevel10k
~/.zpreztorc
に追加します。
zmodule romkatv/powerlevel10k --use degit
~/.zimrc
に追加し、 zimfw install
実行します。
antibody bundle romkatv/powerlevel10k
~/.zshrc
に追加します。
romkatv/powerlevel10k
~/.zsh_plugins.txt
に追加します。
antigen theme romkatv/powerlevel10k
~/.zshrc
に追加します。その後のどこかにantigen apply
ようにしてください。
zplug romkatv/powerlevel10k, as:theme, depth:1
を~/.zshrc
に追加します。
zgen load romkatv/powerlevel10k powerlevel10k
~/.zshrc
に追加します。
zplugin ice depth=1; zplugin light romkatv/powerlevel10k
~/.zshrc
に変換します。
depth=1
氷の使用はオプションです。他の種類の氷は、Powerlevel10k によって推奨されておらず、公式にサポートされていません。
zinit ice depth=1; zinit light romkatv/powerlevel10k
~/.zshrc
に変換します。
depth=1
氷の使用はオプションです。他の種類の氷は、Powerlevel10k によって推奨されておらず、公式にサポートされていません。
zi ice depth=1; zi light romkatv/powerlevel10k
~/.zshrc
に変換します。
depth=1
氷の使用はオプションです。他の種類の氷は、Powerlevel10k によって推奨されておらず、公式にサポートされていません。
plug "romkatv/powerlevel10k"
~/.zshrc
に追加します。
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 は、公式の Powerlevel10k パッケージです。
apk add zsh zsh-theme-powerlevel10k
mkdir -p ~ /.local/share/zsh/plugins
ln -s /usr/share/zsh/plugins/powerlevel10k ~ /.local/share/zsh/plugins/
このページの指示に従ってください。
最初の実行時に、Powerlevel10k 構成ウィザードはいくつかの質問をし、プロンプトを構成します。自動的にトリガーされない場合は、 p10k configure
と入力します。構成ウィザードは、設定に基づいて~/.p10k.zsh
を作成します。このファイルを編集することで、追加のプロンプトのカスタマイズを行うことができます。構成オプションをナビゲートするのに役立つコメントがたくさんあります。
よくある質問:
トラブルシューティング:
以前に Powerlevel9k を使用していた場合は、構成オプションを削除しないでください。 Powerlevel10k はそれらを選択し、使い慣れているものと同じプロンプト UI を提供します。 Powerlevel9k の互換性を参照してください。
よくある質問:
トラブルシューティング: Powerlevel9k と比較して、プロンプトに余分なスペースまたは欠落しているスペースがあります。
Powerlevel10k はカスタム フォントを必要としませんが、利用可能な場合はそれらを利用できます。 Nerd Fonts、Source Code Pro、Font Awesome、Powerline、さらにはデフォルトのシステム フォントでもうまく動作します。スタイル オプションをすべて選択できるのは、Nerd Fonts を使用する場合のみです。
?推奨フォント: Powerlevel10k 用にパッチされた Meslo Nerd Font。 ?
Jim Lyles が Bitstream 用にデザインしたゴージャスな等幅フォントで、同氏が Apple 用にカスタマイズし、André Berg がさらにカスタマイズし、最終的には Nerd Fonts の Ryan L McIntyre が独自に開発したカスタマイズされたスクリプトを使用して、実際にパッチが適用されます。 Powerlevel10k に必要なすべてのグリフとシンボルが含まれています。すべての主要なオペレーティング システム上の数十の異なる端末で実戦テスト済み。
FAQ :推奨フォントはどのようにして作られたのですか?
iTerm2 または Termux を使用している場合、 p10k configure
推奨フォントをインストールできます。 Meslo Nerd Font をインストールするかどうかを尋ねられたら、 Yes
と答えてください。
別の端末を使用している場合は、手動フォントのインストールに進みます。 ?
MesloLGS NF
フォントが使用できるようになります。p10k configure
と入力し、 Yes
と答えます。あるいは、 iTerm2 → Preferences → Profiles → Textを開き、 Font をMesloLGS NF
に設定します。MesloLGS NF
ファミリを選択します。module.exports.config
の下のfontFamily
の値をMesloLGS NF
に変更します。terminal.integrated.fontFamily
と入力し、以下の値をMesloLGS NF
に設定します。このスクリーンショットを参照してどのように見えるかを確認するか、追加情報についてはこの問題を参照してください。MesloLGS NF Regular
を選択します。MesloLGS NF Regular
を選択します。MesloLGS NF Regular
を選択します。MesloLGS NF
に設定します。MesloLGS NF
に設定します。MesloLGS NF
に設定します。MesloLGS NF
に設定します。p10k configure
と入力し、 Yes
と答えます。config
と入力し、 「外観」に移動し、 「新しいフォントの追加」をタップし、 「ギャラリーを開く」をタップして、 「MesloLGS NF.css」を選択し、 「インポート」をタップして、ホームビューでexit
と入力してフォントを再読み込みします。MesloLGS NF
に設定します。MesloLGS NF Regular
を選択します。 「閉じる」をクリックして「環境設定」ダイアログを終了します。MesloLGS NF Regular
を選択します。 「閉じる」をクリックして「環境設定」ダイアログを終了します。MesloLGS NF
に変更します。セッションがある場合は、[設定] → 個々のセッションを右クリック → [セッションの編集] → [ターミナル設定] → [フォント設定]を使用して、それぞれのセッションのフォントを変更する必要があります。MesloLGS NF Regular
] に変更します。リモート ホスト接続のフォントを変更するには、 [設定] → [ターミナル オプション] → [ルック アンド フィール]に移動し、 [ターミナル UI]の下の[フォント] をMesloLGS NF Regular
に変更します。MesloLGS NF
フォントを選択します。MesloLGS NF Regular
に設定します。MesloLGS NF
を選択して、 [OK]をクリックします。 「OK」をクリックしてプロファイルを保存します。新しいプロファイルを選択し、 [デフォルトとして設定]をクリックします。~/.config/alacritty/alacritty.toml
を作成または開き、次のセクションをそれに追加します。 [ font . normal ]
family = " MesloLGS NF "
~/.config/foot/foot.ini
を作成または開き、次のセクションをそれに追加します。 font =MesloLGS NF: size =12
~/.config/kitty/kitty.conf
を作成または開き、次の行をそれに追加します。 font_family MesloLGS NF
MesloLGS NF
に設定します。 PuTTY バージョン >= 0.75 が必要です。$HOME/.config/wezterm/wezterm.lua
を作成または開き、以下を追加します。 local wezterm = require ' wezterm ' ;
return {
font = wezterm . font ( " MesloLGS NF " ),
}
~/.Xresources
を作成または開き、次の行をそれに追加します。 URxvt.font: xft:MesloLGS NF:size=11
xrdb ~/.Xresources
実行して再ロードします。新しい設定はすべての新しい端末に適用されます。~/.Xresources
を作成または開き、次の行をそれに追加します。 xterm*faceName: MesloLGS NF
xrdb ~/.Xresources
実行して再ロードします。新しい設定はすべての新しい端末に適用されます。~/.config/zed/settings.json
を開き、 terminal.font_family
"MesloLGS NF"
に設定します。 {
"terminal" : {
"font_family" : "MesloLGS NF"
} ,
// Other settings.
}
'MesloLGS NF'
(引用符を含む) に設定し、カスタム CSS (インライン テキスト) を次のように設定します。 @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
を作成または開き、次のセクションをそれに追加します。 [basic.interface.font]
value = " MesloLGS NF "
p10k configure
実行して、新しい~/.p10k.zsh
を生成します。古い設定は新しいフォントでは正しく動作しない可能性があります。別の端末を使用していて、その端末にフォントを設定する方法を知っていますか? PR を送信して知識を共有し、リストを拡大してください。
Docker で Powerlevel10k を試してください。テーマを試している間、ファイル システムに安全に変更を加えることができます。 Zsh を終了すると、コンテナーは削除されます。
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 '
ヒント: すべてのプロンプト スタイルにアクセスするには、Docker コマンドを実行する前に推奨フォントをインストールしてください。
ヒント: Docker 内でp10k configure
実行して、別のプロンプト スタイルを試してください。
Powerlevel10k は MIT ライセンスに基づいてリリースされています。
$HOME/.git
の Git ステータスがプロンプトに表示されないのはなぜですか?Powerlevel10k を更新するコマンドは、インストール方法によって異なります。
インストール | 更新コマンド |
---|---|
マニュアル | git -C ~/powerlevel10k pull |
オーマイザッシュ | git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull |
プレスト | zprezto-update |
ジム | zimfw update |
抗原 | antigen update |
解毒剤 | antidote update |
Zプラグ | zplug update |
ズゲン | zgen update |
Zプラグイン | zplugin update |
ジニット | zinit update |
子 | zi update |
ザップ | zap update |
自作 | brew update && brew upgrade |
Arch Linux | yay -S --noconfirm zsh-theme-powerlevel10k-git |
アルパイン・リナックス | apk update && apk upgrade |
重要: Powerlevel10k を更新した後、Zsh を再起動します。 source ~/.zshrc
は使用しないでください。
~/.zshrc
から「p10k」への参照をすべて削除します。次のスニペットが上部にある場合があります。
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
そしてこれが一番下にあります:
[[ ! -f ~ /.p10k.zsh ]] || source ~ /.p10k.zsh
これらは構成ウィザードによって追加されます。それらを削除してください。
~/.zshrc
、 ~/.zpreztorc
、および~/.zimrc
から「powerlevel10k」への参照をすべて削除します (これらのファイルの一部が欠落している可能性があります。これは正常です)。これらの参照は、Powerlevel10k のインストール時に手動で追加されました。注意が必要な場合は、インストール手順を参照してください。
"p10k" および "powerlevel10k" へのすべての参照が~/.zshrc
、 ~/.zpreztorc
、および~/.zimrc
から削除されていることを確認します。
grep -E ' p10k|powerlevel10k ' ~ /.zshrc ~ /.zpreztorc ~ /.zimrc 2> /dev/null
このコマンドで出力が生成される場合、「p10k」または「powerlevel10k」への参照がまだ存在します。それらを削除する必要があります。
Powerlevel10k 構成ファイルを削除します。このファイルは構成ウィザードによって作成され、ユーザー自身による手動編集が含まれる場合があります。
rm -f ~ /.p10k.zsh
Powerlevel10k ソース ファイルを削除します。これらのファイルは、Powerlevel10k のインストール時にダウンロードされています。それらを削除するコマンドは、選択したインストール方法によって異なります。注意事項が必要な場合は、インストール手順を参照してください。
インストール | アンインストールコマンド |
---|---|
マニュアル | rm -rf ~/powerlevel10k |
オーマイザッシュ | rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k |
プレスト | 該当なし |
ジム | zimfw uninstall |
抗原 | antigen purge romkatv/powerlevel10k |
解毒剤 | antidote purge romkatv/powerlevel10k |
Zプラグ | zplug clean |
ズゲン | zgen reset |
Zプラグイン | zplugin delete romkatv/powerlevel10k |
ジニット | zinit delete romkatv/powerlevel10k |
子 | zi delete romkatv/powerlevel10k |
ザップ | zsh -ic 'zap clean' |
自作 | brew uninstall powerlevel10k |
Arch Linux | yay -R --noconfirm zsh-theme-powerlevel10k-git |
アルパイン・リナックス | apk del zsh-theme-powerlevel10k |
Zshを再起動します。 source ~/.zshrc
は使用しないでください。
Powerlevel10k キャッシュ ファイルを削除します。
rm -rf -- " ${XDG_CACHE_HOME :- $HOME / .cache} " /p10k- * (N) " ${XDG_CACHE_HOME :- $HOME / .cache} " /gitstatus
uname -sm | tr ' [A-Z] ' ' [a-z] '
target_uname
の値を前のコマンドの出力に置き換えた後、インターネットに接続されているマシンで次のコマンドを実行します。 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
を、インターネットに接続されているマシンからインターネットにアクセスできないマシンにコピーします。~/.zshrc
にsource ~/powerlevel10k/powerlevel10k.zsh-theme
を追加します。 echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
~/.zshrc
でZSH_THEME
が設定されている場合は、その行を削除してください。 sed -i.bak ' /^ZSH_THEME=/d ' ~ /.zshrc
更新するには、両方のマシンで~/powerlevel10k
削除し、手順 1 ~ 3 を繰り返します。
助けを求めたり、バグを報告したりする最善の方法は、問題を開くことです。
ギッターもオプションです。
他のすべてが失敗した場合は、[email protected] に電子メールを送信してください。
必要に応じて、この PGP キーを使用して通信を暗号化します。
Powerlevel10k はプロンプトのみを定義します。プロンプト関連のオプションとパラメータPS1
およびRPS1
設定します。
スクリーンショットの強調表示された領域内のすべては Powerlevel10k によって生成されます。 Powerlevel10k は、これらの領域以外の端末のコンテンツや色を制御できません。
Powerlevel10k は以下には影響しません。
ls
で使用される色。git
コマンドの動作。PS1
および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
と入力し、好みのプロンプト スタイルを選択します。関連している:
はい。 zsh-bench または Powerlevel9k および Spaceship との直接の比較を参照してください。
インスタント プロンプトについて詳しくは、インスタント プロンプトを参照してください。このセクションでは、これを有効にして構成する方法について説明し、注意する必要がある注意事項を示します。
インスタント プロンプトは、 p10k configure
を使用するか、 ~/.zshrc
の先頭に次のコード スニペットを手動で追加することで有効にできます。
# 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
行をそのままコピーすることが重要です。 source
他のものに置き換えたり、 zcompile
を呼び出したり、出力をリダイレクトしたりしないでください。
インスタント プロンプトが有効な場合、Zsh の初期化中に標準入力は/dev/null
にリダイレクトされ、標準エラーを含む標準出力は一時ファイルにリダイレクトされます。 Zsh が完全に初期化されると、標準のファイル記述子が復元され、一時ファイルの内容が出力されます。
インスタント プロンプトを使用する場合は、Zsh の起動時に表示される出力を注意深く確認する必要があります。これは、インスタント プロンプトによって初期化が変更されたか、場合によっては破損していることを示している可能性があるためです。キーリングのパスワードや[y/n]確認の要求など、コンソール入力が必要な初期化コードは、 ~/.zshrc
のインスタント プロンプト プリアンブルの上に移動する必要があります。コンソールに出力するだけでコンソールから読み取ることのない初期化コードは、インスタント プロンプトでは正しく機能しますが、通常は色が付いている出力が色付けされていないように見える場合があります。そのままにするか、出力を抑制するか、インスタント プロンプト プリアンブルの上に移動することができます。
インスタント プロンプトが有効になっている場合に壊れる~/.zshrc
の例を次に示します。
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
# ...
修正版:
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
# ...
POWERLEVEL9K_INSTANT_PROMPT
が設定されていないか、 verbose
に設定されている場合、Powerlevel10k は初期化中にコンソール出力を検出すると警告を出力し、潜在的な問題に注意を促します。 POWERLEVEL9K_INSTANT_PROMPT=quiet
を使用すると、この警告を (コンソール出力を抑制せずに) 消すことができます。 ~/.zshrc
内の一部の初期化コードがコンソールに出力され、それをインスタント プロンプト プリアンブルの上に移動したり、その出力を抑制したりすることが不可能な場合には、これをお勧めします。 POWERLEVEL9K_INSTANT_PROMPT=off
を使用すると、インスタント プロンプトを完全に無効にすることができます。インスタント プロンプトによって Zsh の初期化が中断され、修正方法がわからない場合は、これを実行してください。
POWERLEVEL9K_INSTANT_PROMPT
の値は、 p10k configure
を実行し、インスタント プロンプト画面で適切なオプションを選択することで変更できます。あるいは、既存の~/.p10k.zsh
でPOWERLEVEL9K_INSTANT_PROMPT
を検索し、そこでその値を変更することもできます。
注: インスタント プロンプトには Zsh >= 5.4 が必要です。古いバージョンの Zsh を使用している場合でも有効にしても問題ありませんが、何も行われません。
よくある質問:
インスタント プロンプトを有効にしている場合は、 ~/.zshrc
の先頭に次の行があるはずです。
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
direnv を初期化するには、そのブロックの上に 1 行、下に 1 行を追加する必要があります。
(( ${+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 ) "
関連: インスタント プロンプトを使用するときに GPG_TTY をエクスポートするにはどうすればよいですか?
~/.zshrc
のどこにでも次のようにGPG_TTY
エクスポートできます。
export GPG_TTY= $TTY
これは、インスタント プロンプトを使用しているかどうかに関係なく機能します。 powerlevel10kを使用していなくても動作します。おまけに、一般的に使用されるexport GPG_TTY=$(tty)
よりもはるかに高速です。
関連: インスタント プロンプトを使用するときに direnv を初期化するにはどうすればよいですか?
リーン、クラシック、またはレインボー スタイルを使用している場合、Git ステータスは次のようになります。
feature:master wip ⇣42⇡42 ⇠42⇢42 *42 merge ~42 +42 !42 ?42
シンボル | 意味 | ソース |
---|---|---|
feature | 現在のブランチ;ブランチ上にない場合は#tag または@commit に置き換えられます | git status --ignore-submodules=dirty |
master | リモート追跡ブランチ。ローカルブランチと異なる場合にのみ表示されます | git rev-parse --abbrev-ref --symbolic-full-name @{upstream} |
wip | 最新のコミットの概要に「wip」または「WIP」が含まれている | git show --pretty=%s --no-patch HEAD |
= | リモコンの最新情報 (前も後も) | git rev-list --count HEAD...@{upstream} |
⇣42 | リモートの背後にあるこれだけのコミット | git rev-list --right-only --count HEAD...@{upstream} |
⇡42 | リモートより先にこの多くのコミットが行われる | git rev-list --left-only --count HEAD...@{upstream} |
⇠42 | プッシュリモートの背後にあるこれだけのコミット | git rev-list --right-only --count HEAD...@{push} |
⇢42 | プッシュリモートの前にこれだけ多くのコミットが行われる | git rev-list --left-only --count HEAD...@{push} |
*42 | これだけの隠し場所 | git stash list |
merge | リポジトリの状態 | git status --ignore-submodules=dirty |
~42 | これほど多くのマージ競合 | git status --ignore-submodules=dirty |
+42 | この多くの段階的な変更 | git status --ignore-submodules=dirty |
!42 | この多くのステージングされていない変更 | git status --ignore-submodules=dirty |
?42 | これほど多くの追跡されていないファイル | git status --ignore-submodules=dirty |
─ | ステージングされたファイル、ステージングされていないファイル、または追跡されていないファイルの数が不明です | echo $POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY またはgit config --get bash.showDirtyState |
関連: Git ステータスの形式を変更するにはどうすればよいですか?
Git ステータスの形式を変更するには、 ~/.p10k.zsh
を開いてmy_git_formatter
を検索し、そのソース コードを編集します。
関連: Git ステータスのさまざまなシンボルは何を意味しますか?
$HOME/.git
の Git ステータスがプロンプトに表示されないのはなぜですか?リーン、クラシック、またはレインボー スタイルを使用する場合、 ~/.p10k.zsh
には次のパラメーターが含まれます。
# 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= ' ~ '
プロンプトで$HOME/.git
の Git ステータスを確認するには、 ~/.p10k.zsh
を開いてPOWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN
を削除します。
tl;dr: プロンプトの Git ステータスがグレー表示されている場合、Powerlevel10k が現在バックグラウンドで最新の Git ステータスを計算していることを意味します。この計算が完了すると、プロンプトが自動的に更新されます。
現在のディレクトリがGitリポジトリ内にある場合、PowerLevel10Kはコマンドごとに最新のGITステータスを計算します。リポジトリが大きい場合、またはマシンが遅い場合、この計算にはかなりの時間がかかる場合があります。 10ミリ秒( POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS
経由で構成可能)が長くなると、PowerLevel10KはGRAEで最後の既知のGITステータスを表示し、バックグラウンドで最新のGITステータスを計算し続けます。計算が完了すると、PowerLevel10Kは新しい情報でプロンプトをリフレッシュします。今回は色付きのgitステータスを使用します。
レインボースタイルを使用する場合、Gitステータスは灰色の黒として表示され、まだ計算されています。ターミナルカラーパレットに応じて、これを読むのが難しい場合があります。この場合、よりコントラストのために背景色を軽いものに変更することをお勧めします。それを行うには、 ~/.p10k.zsh
を開いて、 POWERLEVEL9K_VCS_LOADING_BACKGROUND
を検索して、コメントアウトされている場合はそれを除外して、値を変更します。
typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=244
source ~/.p10k.zsh
を入力して、現在のZSHセッションに変更を適用します。
関連:迅速な色を変更するにはどうすればよいですか?
リーン、クラシック、レインボースタイルを使用する場合、RootまたはSSH経由でログインしている場合、 username@hostname
プロンプトに表示します。通常のユーザーとしてローカルマシンにログインした場合、 username
またはhostname
を表示することにはほとんど価値がありません。したがって、プロンプトにusername@hostname
がないことは、ローカルで作業していることとルートではないことを示しています。ただし、変更できます。
~/.p10k.zsh
を開きます。上部の近くで、プロンプトに表示されるセグメントを定義する最も重要なパラメーターを見ることができます。一般的に有用なプロンプトセグメントはすべてそこにリストされています。それらのいくつかは有効になり、他のものはコメントアウトされています。それらの1つはあなたにとって興味深いものです。
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
...
context # user@hostname
...
)
context
を検索して、このプロンプトセグメントに固有のパラメーターをリストする構成内のセクションを見つけます。次の行が表示されます。
# 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=
ヒントに従って最後の行を削除(またはコメントアウト)する場合、常にusername@hostname
プロンプトに表示されます。近くのパラメーターの値を調整して、フォーマットをusername
のみに変更したり、色を変更したりできます。ナビゲートするのに役立つコメントがたくさんあります。
また、 context
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
の別の位置に移動するか、 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
に移動することもできます。
入力している現在のコマンドが関連するツールを呼び出す場合にのみ、プロンプトセグメントを表示するように設定できます。
# 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 '
p10k configure
によって作成された構成には、この種類のパラメーターが含まれている場合があります。異なるプロンプトセグメントが表示されたらカスタマイズするには、 ~/.p10k.zsh
を開き、 SHOW_ON_COMMAND
を検索し、これらのパラメーターを削除するか、値を変更します。
また、 ~/.zshrc
の関数を定義して、常にコマンド間でプロンプトセグメントの表示を切り替えることもできます。これは、Kube-PS1のkubeon
/ kubeoff
に似ています。
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
}
kube-toggle
を入力して、この関数を呼び出します。 ~/.zshrc
にさらに2行を追加することで、キーにバインドすることもできます。
zle -N kube-toggle
bindkey ' ^] ' kube-toggle # ctrl-] to toggle kubecontext in powerlevel10k prompt
ターミナルで使用されるカラーパレットを変更するか、PowerLevel10K構成パラメーターを使用して色を設定できます。
ターミナルカラーパレット(別名配色またはテーマ)を正確に変更する方法は、使用している端末の種類に依存します。ターミナルの設定/設定を調べるか、ドキュメントを参照してください。
ターミナルカラーパレットを変更すると、通常は0〜15の数字の最初の16色のみに影響します。PowerLevel10Kプロンプトに影響を与えるために、これらの低い色の色を利用するプロンプトスタイルを使用する必要があります。タイプp10k configure
て選択し、レインボー、リーン→ 8色または純粋な→オリジナルを選択します。他のスタイルはより高い数の色を使用しているため、ターミナルカラーパレットでも同じように見えます。
~/.p10k.zsh
を開く、「色」、「前景」、「背景」を検索し、適切なパラメーターの値を変更します。たとえば、 time
プロンプトセグメントの前景を明るい赤に設定する方法は次のとおりです。
typeset -g POWERLEVEL9K_TIME_FOREGROUND=160
色は0〜255の数値を使用して指定されています。0〜15の色は、端子が異なるとは異なります。多くの端子は、カラーパレット(別名カラースキーム、またはテーマ)を介したこれらの色のカスタマイズもサポートしています。 16から255の色は常に同じように見えます。
source ~/.p10k.zsh
を入力して、現在のZSHセッションに変更を適用します。
端末で異なる数字の色がどのように見えるかを確認するには、次のコマンドを実行します。
for i in {0..255} ; do print -Pn " %K{ $i } %k%F{ $i } ${(l : 3 :: 0 : )i} %f " ${ ${(M)$((i % 6)) :# 3} : + $' n ' } ; done
端末がTruecolorをサポートしている場合、番号付きの色に加えて、 #RRGGBB
形式で24ビット色を使用できます。
typeset -g POWERLEVEL9K_TIME_FOREGROUND= ' #FF0000 '
関連している:
デフォルトでは、VSCODE端末は、選択した前景を別の色に任意に置き換えることができます。この動作は、VSCODE設定でオフにすることができます。
PowerLevel10Kは、 vcs
プロンプトの背後にあるバックエンドとしてGitStatusを使用します。 gitstatusはgitstatusd
とzsh
スポーンします。詳細については、gitstatusを参照してください。 PowerLevel10Kは、プロンプトをブロックせずに計算を実行するためにzsh
生成する場合があります。セキュリティの危険を回避するために、これらの背景プロセスは異なるインタラクティブシェルによって共有されません。親zsh
プロセスがexec(3)
終了または実行すると、自動的に終了します。
いいえ、PowerLevel10Kは常に高速であり、任意の構成をスローします。 PowerLevel10Kを使用しているときに顕著なプロンプトレイテンシがある場合は、問題を開いてください。
はい。 zsh-benchを参照してください。
PowerLevel10Kは、PowerLevel9K#1170で1週間にわたる議論の後、2019年3月にPowerLevel9Kからフォークされました。 PowerLevel9Kは、すでに大規模なユーザーベースと数か月で測定されたリリースサイクルを備えた成熟したプロジェクトでした。 PowerLevel10Kは、パフォーマンスの改善と新機能をはるかに高いペースで繰り返すためにスピンオフされました。
PowerLevel9KとPowerLevel10Kは独立したプロジェクトです。 1つを使用する場合、もう1つをインストールしないでください。実際に使用するプロジェクトに対して問題を提出する必要があります。両方のリポジトリに権利をコミットしている個人はいません。 PowerLevel9Kリポジトリにコミットされたすべてのバグ修正と新機能がPowerLevel10Kに移植されます。
時間が経つにつれて、PowerLevel10Kのほぼすべてのコードが書き直されました。現在、PowerLevel9KとPowerLevel10Kの実装の間に意味のあるオーバーラップはありません。
PowerLevel10Kは、すべての構成と無期限に後方互換性を維持することに取り組んでいます。このコミットメントは、PowerLevel9K(PowerLevel9K互換性を参照)とPowerLevel10Kのみが理解している追加のパラメーターによって認識されたすべての構成パラメーターをカバーします。 PowerLevel10Kのすべてのパラメーターの名前は、一貫性のためにPOWERLEVEL9K_
から始まります。
ほとんど。いくつかの違いがあります。
git
VCSバックエンドのみが有効になります。 svn
とhg
必要な場合は、 POWERLEVEL9K_VCS_BACKENDS
に追加します。これらのバックエンドはまだPowerLevel10Kで最適化されていないため、それらを有効にすると迅速に非常に遅くなります。POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY=true
をサポートしていません。POWERLEVEL9K_MODE
定義した可能性があります。このパラメーターはPowerLevel9Kによって無視されますが、PowerLevel10Kによって表彰されます。 PowerLevel9Kと同じPowerLevel10KをPowerLevel10Kを見たい場合は、 POWERLEVEL9K_MODE
削除します。ZLE_RPROMPT_INDENT
尊重しません。その結果、PowerLevel10Kの右のプロンプトは、PowerLevel9Kと比較して最後に余分なスペースを持つことができます。そのスペースが欲しくない場合は、 ZLE_RPROMPT_INDENT=0
を設定します。トラブルシューティングの詳細。POWERLEVEL9K_LEGACY_ICON_SPACING=true
PowerLevel9kと同じ間隔を取得するように設定します。トラブルシューティングの詳細。PowerLevel9KからPowerLevel10Kに切り替えたときに、迅速な外観の変更に気付いた場合は、問題を開いてください。
人々と同じくらい最良のプロンプトを構成するものについて多くの意見があります。それは主に個人的な好みに帰着します。ただし、さまざまな選択にはいくつかの隠れた意味があります。
純粋なスタイルは、純粋なZSHテーマの正確な複製です。このテーマのユーザーの移行を容易にするために存在します。あなたがそれらの1つでない限り、純粋に無駄のないスタイルを選択してください。
選択した端子カラーパレット(たとえば、 Solarized Dark )に迅速な色を閉じ込めたい場合は、虹、リーン→ 8色、または純粋なオリジナルを使用します。他のスタイルは固定色を使用しているため、任意の端末カラーパレットでも同じように見えます。
Pureを除くすべてのスタイルには、 ASCIIチャーセットを使用するオプションがあります。プロンプトはあまりきれいに見えませんが、すべてのフォントとすべてのロケールで正しくレンダリングされます。
一時的なプロンプトを有効にする場合は、2行のプロンプトを利用してください。スクロールバック密度が低下する通常の欠点なしで、コマンドを入力するための余分なスペースの利点が得られます。すべてのコマンドを同じオフセットから開始することもいいです。
同様に、一時的なプロンプトを有効にする場合、スパースプロンプト(プロンプトの前に空のラインを使用)が最適です。
VIキーマップを使用している場合は、 prompt_char
が入っているプロンプトを選択します(ウィザードでは❯
として表示されます)。このシンボルは、VIモード: ❯
、 ❮
、 V
、 ▶
挿入、コマンド、視覚、交換モードの場合はそれぞれ変化します。コマンドが失敗すると、シンボルが赤くなります。リーンスタイルには常にprompt_char
が含まれています。 RainbowとClassic Stylesは、左フレームのない2行の構成でのみそれを持っています。
水平スペースを大切にしたり、ミニマリストの美学を好む場合:
注:構成ウィザードを好きなだけ実行できます。タイプp10k configure
新しいプロンプトスタイルを試してみてください。
この構成を使用します。
それをダウンロードするか、 ~/.p10k.zsh
とsource ~/.p10k.zsh
から~/.zshrc
、またはクローン化されたpowerlevel10k
リポジトリからSource p10k-robbyrussell.zsh
を直接保存できます。
いいえ。ENTERを押して型と入力したコマンドが実行された場合、エラーステータスはまだわからないため、プロンプトで表示できません。コマンドが完了すると、エラーステータスがわかっていますが、そのコマンドのプロンプトを更新することはできなくなります。これが、すべてのコマンドのエラーステータスが次のプロンプトに反映される理由です。
詳細については、 /r /zshのこの投稿を参照してください。
ZSH 5.3以降は機能するはずです。高速スタートアップにはZSH> = 5.4が必要です。
すべてのスクリーンショットとアニメーションGIFは、カスタムの背景色( #2E3436
の代わりに# #171A1B
- 2倍暗い)を備えた推奨フォントとタンゴダークカラーパレットを備えたGNOME端末に録音されました。
構文ハイライトは、存在する場所で、Zsh-Syntax-Highlightingによって提供されました。
推奨されるフォントは、多くの個人の積です。その起源は、メンロを産んだビットストリーム・ベラ・サン・モノであり、それがメスロを生み出しました。最後に、オタクフォントからフォークされたスクリプトを使用して、メスロに追加のグリフが追加されました。最終フォントは、Apacheライセンスの条件の下でリリースされます。
Meslolgs NFフォントは、次のコマンドで再作成できます( git
とdocker
必要です)。
git clone --depth=1 https://github.com/romkatv/nerd-fonts.git
cd nerd-fonts
./build ' Meslo/S/* '
すべてがうまくいけば、4つのttf
ファイルが./out
に表示されます。
現在、PowerLevel10Kをパッケージ化して配布することは簡単でも推奨されていません。 PowerLevel10Kの新しいバージョンがリリースされたときに、パッケージを簡単に更新できるようにするために従うことができる指示はありません。これは将来変化する可能性がありますが、すぐには変わりません。
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
source ~/.zshrc
を入力した後に奇妙なことが起こります[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
端末を開くとき、またはZSHを手動で開始するとき、このエラーメッセージに遭遇する可能性があります。
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
typeset -p P9K_VERSION
を実行します。typeset -p P9K_VERSION
成功および印刷する場合~/.zshrc
typeset P9K_VERSION=1.19.14
(バージョンが異なる可能性があります)を削除します。 ZSH_THEME= " powerlevel10k/powerlevel10k "
typeset -p P9K_VERSION
エラーで失敗した場合typeset: no such variable: P9K_VERSION
、次のコマンドを実行します。 git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
exec zsh
でzshを再起動します。レギュラーのように見える場合は?
、それは正常です。これは、現在のgitリポジトリにトラックされていないファイルがあることを意味します。これらのファイルを表示するには、 git status
を入力します。このシンボルを変更したり、トラックされていないファイルの表示を完全に無効にしたりできます。 ~/.p10k.zsh
でuntracked files
を検索します。
FAQ :gitステータスのシンボルはどういう意味ですか?
また、ターミナルのフォントにいくつかのグリフが欠落している場合、プロンプトに奇妙に見える質問マークを取得することもできます。アイコン、グリフ、またはパワーラインシンボルがレンダリングされないことを参照してください。
ターミナルを再起動し、推奨フォントをインストールし、 p10k configure
実行します。
スクリーンショットには3つの欠陥があります。左から右へ:
ZSHテーマは、端子コンテンツをピクセル下に制御できません。画面に表示されるものはすべて、モノスペースのキャラクターで作られています。白いパワーラインプロンプトセグメントは、白い背景のテキストで作られており、続いてU+E0B0(右ポイントの三角形)が続きます。
PowerLevel10KプロンプトにPowerlineシンボルの周りに不完全がある場合、すべてのパワーラインテーマ(Agnoster、PowerLevel9K、Powerlineなど)がまったく同じ欠陥が表示されます。
これらの欠陥に対処しようとすることができることがいくつかあります。
より根本的な解決策は、背景なしで迅速なスタイルに切り替えることです。タイプp10k configure
、 LEANを選択します。このスタイルはモダンな軽量の外観を持っています。ボーナスとして、パワーラインスタイルのプロンプトを苦しめる不完全さをレンダリングすることに悩まされません。
echo 'u276F'
を入力します。 「ZSH:キャラクターではない範囲」というエラーが発生した場合、ロケールはUTF-8をサポートしていません。それを修正する必要があります。 SSHを介してZSHを実行している場合は、これを参照してください。 ZSHをローカルに実行している場合は、Google「 OSでUTF-8ロケールを設定します」。
echo 'u276F'
を入力します。 「ZSH:文字が範囲ではない」というエラーが発生した場合は、前のセクションを参照してください。
echo
コマンドが❯
されているが、カーソルがまだ間違った場所にある場合は、推奨フォントをインストールし、 p10k configure
実行します。
これが役に立たない場合は、 ~/.zshrc
の下部にunset ZLE_RPROMPT_INDENT
変更します。
まだ問題がありますか?次のコマンドを実行して問題を診断します。
() {
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 |
+------------------------------+
コマンドの出力がプロンプトのすべての部分(左と右)に並べられている場合、これはテーマまたは構成のバグを示します。このコマンドを使用して診断します。
print -rl -- ${(eq+)PROMPT} ${(eq+)RPROMPT}
%{...%}
を探し、バックスラッシュは出力で逃げます。もしあれば、彼らはおそらく犯人です。立ち往生している場合は問題を開きます。
+-----------------------------+
| romka@adam ✓ ~/powerlevel10k |
+-----------------------------+
これは通常、端末のバグまたは誤解が原因で、曖昧な幅の文字を単一の幅ではなく2倍の幅として印刷します。たとえば、この問題。
+------------------------------+
| romka@adam ✓~/powerlevel10k |
+------------------------------+
チェックマークの後にスペースが欠落しているため、このプロンプトはオリジナルとは異なることに注意してください。
これは、MacOSの低レベルのバグによって引き起こされる可能性があります。この問題を参照してください。
これは、プロンプトがUnicode標準で「幅」として指定されたグリフが含まれており、端末がそれらを誤って誤って表示する場合にも発生する可能性があります。この制限に苦しむ端子には、Konsole、Hyper、および統合されたVSCode端子が含まれます。解決策は、別の端末を使用するか、すべての幅の広いグリフをプロンプトから除去することです。
+--------------------------------+
| romka@adam ✓ ~/powerlevel10k |
+--------------------------------+
これは、誤解されたロケールによって引き起こされる可能性があります。この問題を参照してください。
カーソルが間違った場所にあるのを参照してください。
カーソルが間違った場所にあるのを参照してください。
PowerLevel10Kが起動すると、 POWERLEVEL9K_*
パラメーターが定義されていない場合、 p10k configure
自動的に実行します。プロンプトスタイルの選択に基づいて、構成ウィザードは~/.p10k.zsh
を作成します。 POWERLEVEL9K_*
パラメーターのパラメーターは、このファイルを調達するために~/.zshrc
にラインを追加します。次回ZSHを起動するとき、構成ウィザードは自動的に実行されないはずです。もしそうなら、これは~/.zshrc
の評価が、 ~/.p10k.zsh
のソースに到達する前に早期に終了することを意味します。これは、 ~/.zshrc
の構文エラーのために最も多くの場合発生します。これらのエラーは構成ウィザード画面によって隠されるため、気付かない。構成ウィザードを終了するときは、エラーメッセージを探します。 POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true zsh
を使用して、構成ウィザードを自動的に実行せずにzshを起動することもできます。エラーを確認できたら、 ~/.zshrc
を修正してそれらを取り除きます。
ZSHバージョンが5.7.1を下回っている場合、またはCOLORTERM
Environment変数が24bit
もtruecolor
でもない場合、構成ウィザードはおしゃれな配色で純粋なスタイルを提供しません。修正:ZSH> = 5.7.1をインストールし、TrueColorサポートを備えた端末を使用します。 print -P '%F{#ff0000}red%f'
で確認します。
端子が256色未満の色を表示できる場合、構成ウィザードは8色のリーンスタイルを事前に選択します。他のすべてのスタイルには、少なくとも256色が必要です。修正:256色のサポートを備えた端末を使用し、 TERM
環境変数が正しく設定されていることを確認してください。 print $terminfo[colors]
で確認します。
システムにUTF-8ロケールがない場合、構成ウィザードはUnicode文字を使用するプロンプトスタイルを提供しません。修正:UTF-8ロケールをインストールします。 locale -a
で確認します。
構成ウィザードがUnicodeプロンプトスタイルを提供しない可能性のある別のケースは、 MULTIBYTE
シェルオプションが無効になっている場合です。修正: MULTIBYTE
オプションを有効にするか、むしろ無効にしないでください(このオプションはデフォルトでZSHで有効になります)。 print -r -- ${options[MULTIBYTE]}
で確認します。
MULTIBYTE
が有効になり、UTF-8ロケールが利用可能になると、構成ウィザードがターミナルフォントの機能を評価する最初のいくつかの質問があります。回答が一部のグリフが正しくレンダリングされないことを示している場合、構成ウィザードはそれらを使用するプロンプトスタイルを提供しません。修正:ターミナルを再起動し、推奨フォントをインストールします。 p10k configure
を実行し、すべてのグリフが正しくレンダリングされることを確認して確認します。
推奨フォントをダウンロードしたら、他のフォントと同じようにインストールできます。 Google「 OSにフォントをインストールする方法」。
TL; DR: ZLE_RPROMPT_INDENT=0
およびPOWERLEVEL9K_LEGACY_ICON_SPACING=true
~/.zshrc
を追加して、PowerLevel9Kと同じプロンプト間隔を取得します。
PowerLevel9K構成でPowerLevel10Kを使用する場合、あちこちでプロンプトに追加のスペースが表示される場合があります。これらには2つのフレーバーがあります。
tl; dr: ZLE_RPROMPT_INDENT=0
を~/.zshrc
に追加して、そのスペースを取り除きます。
ZSHドキュメントから:
ZLE_RPROMPT_INDENT <S>
設定されている場合、
RPS1
またはRPROMPT
によって与えられたラインエディターの右側の右側の右側の間にインデントを与えるために使用されます。設定されていない場合、値1
が使用されます。通常、これは値を
0
に設定するために使用されるため、画面の右側にプロンプトがフラッシュするようになります。
PowerLevel10Kはこのパラメーターを尊重します。 ZLE_RPROMPT_INDENT=1
設定すると(または、 1
に設定するのと同じものである)、右側の右側に空のスペースが得られます。 ZLE_RPROMPT_INDENT=0
設定すると、プロンプトが端末の端に移動します。これは、PowerLevel9Kを除くすべてのテーマで機能する方法です。
PowerLevel9K問題:PowerLevel9K#1292。 PowerLevel9Kの開発ブランチで修正されていますが、修正はまだmaster
になっていません。
ZLE_RPROMPT_INDENT=0
を追加して~/.zshrc
を追加して、PowerLevel9Kと同じプロンプトの右端に同じ間隔を取得します。
注: ZSHのいくつかのバージョンには、 ZLE_RPROMPT_INDENT=0
設定するとトリガーされるバグがあります。 PowerLevel10Kは、Powerlineプロンプトスタイルを使用する場合、これらのバグを回避できます。プロンプトの視覚的アーティファクトまたは間違ったカーソル位置に気付いた場合は、 ~/.zshrc
からZLE_RPROMPT_INDENT
削除してみてください。
TL; DR: POWERLEVEL9K_LEGACY_ICON_SPACING=true
to〜 ~/.zshrc
を追加して、PowerLevel9kと同じ間隔を取得します。
PowerLevel9Kのアイコンの周りの間隔は一貫していません。
この矛盾は一定の迷惑の原因であるため、PowerLevel10Kで修正されました。 POWERLEVEL9K_LEGACY_ICON_SPACING=true
to〜 ~/.zshrc
を追加して、PowerLevel9kと同じ間隔を取得できます。
注: p10k configure
使用するときにPOWERLEVEL9K_LEGACY_ICON_SPACING
を定義することは良い考えではありません。
source ~/.zshrc
を入力した後に奇妙なことが起こりますPowerLevel10Kを使用しているかどうかにかかわらず、 source ~/.zshrc
を実行することはほとんど常に悪い考えです。このコマンドは、ランダムなエラー、誤動作コード、およびZSHの進歩的な減速をもたらす可能性があります。
~/.zshrc
またはそれによって調達されたファイルに変更を加えた場合、ZSHを再起動して適用します。これを行う最も信頼できる方法は、 exit
を入力して新しいZSHセッションを開始することです。 exec zsh
使用することもできます。完全なZSH再起動と正確に同等ではありませんが、このコマンドはsource ~/.zshrc
よりもはるかに信頼性が高くなります。
source ~/.zshrc
。
インストール手順が機能しなかった場合は、現在のテーマを無効にして(テーマがなくなるように)、PowerLevel10Kを手動でインストールしてみてください。
~/.zshrc
を開き、 ZSH_THEME
設定する線を削除します。このように見えるかもしれません: ZSH_THEME="powerlevel9k/powerlevel9k"
。~/.zshrc
を開き、現在のテーマを参照するzplug
コマンドを削除します。たとえば、現在PowerLevel9Kを使用している場合は、 zplug bhilburn/powerlevel9k, use:powerlevel9k.zsh-theme
を探してください。~/.zpreztorc
を開き、 zstyle :prezto:module:prompt theme off
にします。 zstyle :prezto:module:prompt theme powerlevel9k
などのtheme
設定する他のコマンドを削除します。~/.zshrc
を開き、 antigen theme
設定するラインを取り外します。このように見えるかもしれません: antigen theme powerlevel9k/powerlevel9k
。git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
このインストール方法は、より遅くなったり、サブパーを使用したりしません。
レインボースタイルでは、現在の作業ディレクトリは、青色の背景に明るい白いテキストで表示されます。白は固定されており、常に同じように見えますが、「青」の外観は端末のカラーパレットによって定義されます。それが非常に軽い場合、白いテキストを見るのは難しいかもしれません。
これを修正する方法はいくつかあります。
p10k configure
入力して、より読みやすいプロンプトスタイルを選択します。POWERLEVEL9K_DIR_BACKGROUND
、 POWERLEVEL9K_DIR_SHORTENED_FOREGROUND
、 POWERLEVEL9K_DIR_ANCHOR_FOREGROUND
POWERLEVEL9K_DIR_ANCHOR_BOLD
呼ばれますPOWERLEVEL9K_DIR_FOREGROUND
~/.p10k.zsh
で見つけることができます。関連:vscode端子の誤った前景色。
デフォルトでは、VSCODE端末は、選択した前景を別の色に任意に置き換えることができます。この動作は、VSCODE設定でオフにすることができます。
端子ウィンドウを何度か前後にサイズ変更すると、この醜い写真が表示される場合があります。
TL; DR:この問題は、端末がサイズ変更時にZSHプロンプトを反映したときに発生します。 PowerLevel10Kに固有のものではありません。緩和を参照してください。
注:このセクションでは、問題はZSHのバグが原因であると言っていました。 ZSHを変更することで多くの状況で問題を回避できることは事実ですが、このように完全に解決することはできません。したがって、ZSHに非難を固定することは不公平です。
この問題は、現在のプロンプトの開始とカーソル(以下VD
)の間の垂直距離が端子ウィンドウのサイズ変更時に変化するときに明らかになります。
端子ウィンドウが水平に縮小されると、端子がもはや適合しない長い線を処理する2つの方法があります:リフローまたは切り捨て。
縮小する前の端末コンテンツ:
ターミナルは縮小するときにテキストを反映します:
ターミナルは縮小するときにテキストを切り捨てます:
反射戦略は、ターミナルコンテンツの高さを変更する可能性があります。そのようなコンテンツがたまたま現在のプロンプトの開始からカーソルの間にある場合、ZSHは間違ったラインでプロンプトを印刷します。切り捨て戦略は端末コンテンツの高さを変えることはないため、この問題を引き起こすことはありません。
スローモーションで問題がどのように発生するかを見てみましょう。 zsh -f
を起動し、次のコードを貼り付けることから始めます。
function pause() { read -s }
functions -M pause 0
reset
print -l {1..3}
setopt prompt_subst
PROMPT= $' ${$((pause()))+}left>${(pl.$((COLUMNS-12))..-.)}<right n > '
PROMPT
が拡張されると、端子の状態を観察できるようにpause
を呼び出します。これが初期の状態です:
ZSHは、現在のプロンプトの開始に対するカーソル位置を追跡します。この場合、カーソルが以下の1行であることがわかっています。端子窓を縮小すると、次のように見えます。
この時点で、端末はZSHにSIGWINCH
送信して、端末の寸法の変更について通知します。この信号は、端末の内容が反映された後に送信されることに注意してください。
ZSHがSIGWINCH
受け取ると、現在のプロンプトを消去して新たに印刷しようとします。現在のプロンプトは、カーソル(!)の1行(!)の1行であると考える位置に行きます。ただし、プロンプトを変更すると、カーソルの上に1行上にありません。上の2行です! ZSHは、新しいプロンプトの1行が低すぎることになります。
この場合、 VD
が増加したため、不要なジャンクコンテンツになりました。端子ウィンドウを広くすると、 VD
も減少する可能性があり、その結果、新しいプロンプトが意図したものよりも高く印刷され、プロセスで有用なコンテンツが消去される可能性があります。
ターミナルウィンドウの縮小によりVD
が増加した例がいくつかあります。
prompt_subst
ありません。カーソルはプロンプトラインの下にあることに注意してください( ESC-Enterをヒットしてそこに到達します)。prompt_subst
、正しいプロンプトなし。ここで、 VD
、コマンドラインが包まれているため、ターミナルの縮小時に増加するに違いありません。 このZSHパッチは、いくつかの端子で問題を修正します。パッチの背後にあるアイデアは、プロンプトとrc
(復元カーソル)を印刷する前に、 sc
(カーソルを保存)端子機能を使用して、プロンプトを更新する必要があるときに元の位置にカーソルを戻すことです。
パッチは、端子ウィンドウがサイズ変更されたときに、リフローがカーソルの位置をテキストと一緒に保存した端子でのみ機能します。パッチは、サイズ変更にテキストを反映しない端子(パッチ付きZSHと非表示のZSHの両方の動作)およびテキストを反射しますが、保存されたカーソル位置(パッチ付きおよび未収ZSHの再描画プロンプトの両方が同じ不正確な位置でプロンプトではない端子に観察可能な効果がありません。 )。言い換えれば、パッチは、他の端子に動作を変えないようにしながら、一部の端子でサイズ変更の問題を修正します。
ZSHにパッチを適用するための2つの代替アプローチがありますが、一見しても動作するように見えるかもしれませんが、実際にはありません。
sc
の代わりに、 u7
端子機能を使用して現在のカーソル位置を照会し、次にcup
に戻ります。これは、テキストが反映されたときに現在のプロンプトの開始の絶対的な位置が変更されるために機能しません。VD
再計算します。 ZSHが端末がテキストを反映しているのか、それを切り捨てているのかわからないため、これは機能しません。 ZSHが端末がテキストを反映していることを何らかの形で知っていれば、このアプローチは、ウィンドウがサイズ変更されているときにテキストと迅速な発射SIGWINCH
連続的に反射する端子ではまだ機能しません。このような環境では、実際の端末の寸法は、ZSHが次元があると思うものと同期しなくなります。上流のZSHに進出するパッチのETAはありません。議論を参照してください。
この問題にはいくつかの緩和オプションがあります。
POWERLEVEL9K_TERM_SHELL_INTEGRATION=true
in〜 ~/.p10k.zsh
を定義することにより、PowerLevel10Kでターミナルシェル統合を有効にします。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
.