Powerlevel10k adalah tema untuk Zsh. Ini menekankan kecepatan, fleksibilitas dan pengalaman out-of-the-box.
exec zsh
.p10k configure
jika wizard konfigurasi tidak dimulai secara otomatis. Ketik p10k configure
untuk mengakses wizard konfigurasi bawaan langsung dari terminal Anda.
Semua gaya kecuali Murni secara fungsional setara. Mereka menampilkan informasi yang sama dan hanya berbeda dalam penyajiannya.
Wizard konfigurasi membuat ~/.p10k.zsh
berdasarkan preferensi Anda. Kustomisasi cepat tambahan dapat dilakukan dengan mengedit file ini. Ini memiliki banyak komentar untuk membantu Anda menavigasi opsi konfigurasi.
Tip : Instal font yang disarankan sebelum menjalankan p10k configure
untuk membuka kunci semua gaya prompt.
Pertanyaan Umum:
Pemecahan masalah :
Saat Anda menekan ENTER , prompt berikutnya langsung muncul. Dengan Powerlevel10k tidak ada jeda yang cepat. Jika Anda menginstal Cygwin di Raspberry Pi, cd
ke repositori Linux Git dan aktifkan segmen prompt yang cukup untuk mengisi empat baris prompt di kedua sisi layar... tunggu, itu gila dan tidak ada yang pernah melakukan itu. Mungkin juga tidak mungkin. Intinya adalah, prompt Powerlevel10k selalu cepat, apa pun yang Anda lakukan!
Perhatikan bagaimana efek dari setiap perintah langsung tercermin pada prompt berikutnya.
Memerintah | Indikator Cepat | Arti |
---|---|---|
timew start hack linux | ⌚ hack linux | pelacakan waktu diaktifkan di timewarrior |
touch xy | ?2 | 2 file yang tidak terlacak di repo Git |
rm COPYING | !1 | 1 perubahan yang tidak dilakukan pada repo Git |
echo 3.7.3 >.python-version | ? 3.7.3 | versi python saat ini di pyenv |
Tema Zsh lainnya yang mampu menampilkan informasi yang sama akan menghasilkan prompt lag atau prompt pencetakan yang tidak mencerminkan keadaan sistem saat ini dan kemudian menyegarkannya nanti. Dengan Powerlevel10k Anda mendapatkan informasi cepat dan terkini.
FAQ : Apakah ini sangat cepat?
Powerlevel10k memahami semua parameter konfigurasi Powerlevel9k.
Migrasi dari Powerlevel9k ke Powerlevel10k adalah proses yang mudah. Semua parameter konfigurasi POWERLEVEL9K
Anda akan tetap berfungsi. Prompt akan terlihat sama seperti sebelumnya (hampir) tetapi akan jauh lebih cepat (tentu saja).
Pertanyaan Umum :
Powerlevel10k dapat menghasilkan prompt yang sama seperti Pure. Ketik p10k configure
dan pilih Gaya murni .
Anda masih dapat menggunakan fitur Powerlevel10k seperti transient prompt atau instant prompt saat menggunakan gaya Murni.
Untuk menyesuaikan prompt, edit ~/.p10k.zsh
. Powerlevel10k tidak mengenali parameter konfigurasi Murni, jadi Anda harus menggunakan POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
alih-alih PURE_CMD_MAX_EXEC_TIME=3
, dll. Semua parameter yang relevan ada di ~/.p10k.zsh
. File ini memiliki banyak komentar untuk membantu Anda menavigasinya.
FAQ: Apa gaya prompt terbaik di wizard konfigurasi?
Jika ~/.zshrc
Anda memuat banyak plugin, atau mungkin hanya beberapa plugin yang lambat (misalnya, pyenv atau nvm), Anda mungkin memperhatikan bahwa Zsh memerlukan waktu untuk memulai.
Powerlevel10k dapat menghilangkan kelambatan startup Zsh meskipun itu bukan disebabkan oleh tema .
Fitur ini disebut Prompt Instan . Anda perlu mengaktifkannya secara eksplisit melalui p10k configure
atau secara manual. Ia melakukan apa yang tertulis di kaleng -- mencetak prompt secara instan saat startup Zsh memungkinkan Anda untuk mulai mengetik saat plugin masih dimuat.
Tema lain meningkatkan kelambatan startup Zsh -- ada yang banyak, ada yang hanya sedikit. Powerlevel10k langsung menghapusnya .
Jika Anda penasaran tentang cara kerja Instant Prompt , lihat bagian ini di zsh-bench.
FAQ: Bagaimana cara mengkonfigurasi prompt instan?
Perilaku beberapa perintah bergantung pada lingkungan global. Misalnya, kubectl run ...
menjalankan image pada cluster yang ditentukan oleh konteks kubernetes saat ini. Jika Anda sering mengubah konteks antara "prod" dan "testing", Anda mungkin ingin menampilkan konteks saat ini di prompt Zsh. Jika Anda melakukan hal yang sama untuk kredensial AWS, Azure, dan Google Cloud, prompt akan menjadi sangat ramai.
Masukkan Tampilkan Sesuai Perintah . Fitur ini membuat segmen prompt hanya muncul jika relevan dengan perintah yang sedang Anda ketik.
Konfigurasi yang dibuat oleh p10k configure
mengaktifkan perintah tampilkan untuk beberapa segmen prompt secara default. Inilah parameter yang relevan untuk konteks 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 '
Untuk menyesuaikan kapan segmen perintah yang berbeda ditampilkan, buka ~/.p10k.zsh
, cari SHOW_ON_COMMAND
dan hapus parameter ini untuk menampilkan segmen yang terpengaruh tanpa syarat, atau ubah nilainya.
Ketika Prompt Sementara diaktifkan melalui p10k configure
, Powerlevel10k akan memangkas setiap prompt saat menerima baris perintah.
Prompt sementara membuatnya lebih mudah untuk menyalin-menempelkan serangkaian perintah dari scrollback terminal.
Tip : Jika Anda mengaktifkan prompt sementara, manfaatkan prompt dua baris. Anda akan mendapatkan keuntungan dari ruang ekstra untuk mengetik perintah tanpa kelemahan yang biasa terjadi yaitu berkurangnya kepadatan scrollback. Prompt jarang (dengan baris kosong sebelum prompt) juga berfungsi baik jika dikombinasikan dengan prompt sementara.
Direktori kerja saat ini mungkin merupakan segmen prompt yang paling penting. Powerlevel10k berusaha keras untuk menyorot bagian-bagian penting dan memotongnya dengan sedikit kehilangan informasi ketika ruang horizontal menjadi langka.
Jika direktori lengkap tidak sesuai, segmen paling kiri akan terpotong menjadi awalan unik terpendeknya. Di screencast, ~/work
menjadi ~/wo
. Itu tidak dapat dipotong menjadi ~/w
karena akan menjadi ambigu (ada ~/wireguard
ketika sesi direkam). Segmen berikutnya -- projects
-- berubah menjadi p
karena tidak ada hal lain yang dimulai dengan p
di ~/work/
.
Segmen direktori ditampilkan dalam salah satu dari tiga warna:
Tip : Jika Anda menyalin-menempelkan direktori yang terpotong dan menekan TAB , direktori tersebut akan selesai seperti aslinya.
Pemecahan masalah : Direktori sulit dilihat secara cepat saat menggunakan gaya Rainbow.
Powerlevel10k dapat dikonfigurasi agar terlihat seperti tema Zsh lainnya di luar sana.
Emulasi murni, Powerlevel9k, dan robbyrussell sudah ada di dalamnya. Untuk meniru tampilan tema lain, Anda perlu menulis file konfigurasi yang sesuai. Cara terbaik untuk melakukannya adalah dengan menjalankan p10k configure
, pilih gaya yang paling dekat dengan tujuan Anda dan kemudian edit ~/.p10k.zsh
.
Tampilan lengkap Powerlevel10k mulai dari sederhana:
Ke konyol boros:
Powerlevel10k hadir dengan lusinan segmen prompt berkualitas tinggi bawaan yang dapat menampilkan informasi dari berbagai sumber. Saat Anda menjalankan p10k configure
dan memilih gaya apa pun kecuali Murni, banyak dari segmen ini diaktifkan secara default sementara yang lain dapat diaktifkan secara manual dengan membuka ~/.p10k.zsh
dan menghapus komentarnya. Anda dapat mengaktifkan segmen sebanyak yang Anda suka. Itu tidak akan memperlambat prompt atau startup Zsh Anda.
Segmen | Arti |
---|---|
anaconda | lingkungan virtual dari conda |
asdf | versi alat dari asdf |
aws | profil aws |
aws_eb_env | aws lingkungan pohon kacang elastis |
azure | nama akun biru |
background_jobs | kehadiran pekerjaan latar belakang |
battery | status baterai internal dan tingkat pengisian daya (ya, sudah termasuk baterai) |
command_execution_time | durasi (waktu dinding) dari perintah terakhir |
context | pengguna@nama host |
cpu_arch | Arsitektur CPU |
dir | direktori kerja saat ini |
direnv | status direnv |
disk_usage | penggunaan disk |
dotnet_version | versi dotnet |
fvm | lingkungan bergetar dari fvm |
gcloud | akun dan proyek google cloud cli |
goenv | pergi lingkungan dari goenv |
google_app_cred | kredensial aplikasi Google |
go_version | pergi versi |
haskell_stack | versi haskell dari tumpukan |
ip | Alamat IP dan penggunaan bandwidth untuk antarmuka jaringan tertentu |
java_version | versi jawa |
jenv | lingkungan java dari jenv |
kubecontext | konteks kubernetes saat ini |
laravel_version | versi kerangka laravel php |
load | beban CPU |
luaenv | lingkungan lua dari luaenv |
midnight_commander | cangkang komandan tengah malam |
nix_shell | indikator cangkang nix |
nnn | tidak kulit |
lf | jika cangkang |
chezmoi_shell | cangkang chezmoi |
nodeenv | lingkungan node.js dari nodeenv |
nodenv | lingkungan node.js dari nodev |
node_version | versi node.js |
nordvpn | status koneksi nordvpn |
nvm | lingkungan node.js dari nvm |
os_icon | logo OS Anda (Apple untuk MacOS, Swirl untuk Debian, dll.) |
package | name@version dari package.json |
per_directory_history | Oh My Zsh indikator lokal/global per-riwayat-direktori |
perlbrew | versi perl dari perlbrew |
phpenv | lingkungan php dari phpenv |
php_version | versi php |
plenv | lingkungan Perl dari plenv |
prompt_char | simbol prompt multi-fungsi; berubah tergantung pada mode vi: ❯ , ❮ , V , ▶ masing-masing untuk mode penyisipan, perintah, visual dan penggantian; berubah menjadi merah karena kesalahan |
proxy | proksi http/https/ftp seluruh sistem |
public_ip | alamat IP publik |
pyenv | lingkungan python dari pyenv |
ram | RAM gratis |
ranger | cangkang penjaga hutan |
yazi | cangkang yazi |
rbenv | lingkungan Ruby dari rbenv |
rust_version | versi Rustc |
rvm | lingkungan Ruby dari rvm |
scalaenv | versi scala dari scalaenv |
status | kode keluar dari perintah terakhir |
swap | pertukaran yang digunakan |
taskwarrior | jumlah tugas prajurit tugas |
terraform | ruang kerja terraform |
terraform_version | versi terraform |
time | waktu saat ini |
timewarrior | status pelacakan prajurit waktu |
todo | item rencana |
toolbox | nama kotak peralatan |
vcs | Status repositori Git |
vim_shell | cangkang vim ( :sh ) |
virtualenv | lingkungan python dari venv |
vi_mode | mode vi (Anda tidak memerlukan ini jika Anda telah mengaktifkan prompt_char) |
vpn_ip | indikator jaringan pribadi virtual |
wifi | kecepatan Wi-Fi |
xplr | cangkang xplr |
Jika tidak ada segmen cepat yang melakukan apa yang Anda perlukan, terapkan segmen Anda sendiri. Powerlevel10k menyediakan API publik untuk menentukan segmen secepat dan sefleksibel segmen bawaan.
Di Linux Anda dapat mengambil suhu CPU saat ini dengan membaca /sys/class/thermal/thermal_zone0/temp
. Screencast menunjukkan cara menentukan segmen prompt untuk menampilkan nilai ini. Setelah segmen ditentukan, Anda dapat menggunakannya seperti segmen lainnya. Semua parameter penyesuaian standar akan langsung berfungsi.
Ketik p10k help segment
untuk referensi.
Catatan : Jika Anda mengubah parameter POWERLEVEL9K_*
dalam shell interaktif yang sudah diinisialisasi (bukan mengedit ~/.p10k.zsh
), perubahan tersebut mungkin tidak langsung efektif. Untuk menerapkan modifikasi, aktifkan p10k reload
. Pengaturan POWERLEVEL9K_DISABLE_HOT_RELOAD=false
menghilangkan kebutuhan untuk p10k reload
tetapi menghasilkan prompt yang sedikit lebih lambat.
Tip : Awali nama segmen Anda sendiri dengan my_
untuk menghindari bentrokan dengan versi Powerlevel10k yang akan datang.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Pengguna di Tiongkok dapat menggunakan mirror resmi di gitee.com untuk mengunduh lebih cepat.
中国用户可以使用 gitee.com 上的官方镜像加速下载.
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Ini adalah jenis instalasi paling sederhana dan berfungsi bahkan jika Anda menggunakan pengelola plugin. Pastikan untuk menonaktifkan tema saat ini di pengelola plugin Anda. Lihat pemecahan masalah untuk mendapatkan bantuan.
Kloning repositori:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
Pengguna di Tiongkok dapat menggunakan mirror resmi di gitee.com untuk mengunduh lebih cepat.
中国用户可以使用 gitee.com 上的官方镜像加速下载.
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
Buka ~/.zshrc
, temukan baris yang menyetel ZSH_THEME
, dan ubah nilainya menjadi "powerlevel10k/powerlevel10k"
.
Tambahkan zstyle :prezto:module:prompt theme powerlevel10k
ke ~/.zpreztorc
.
Tambahkan zmodule romkatv/powerlevel10k --use degit
ke ~/.zimrc
dan jalankan zimfw install
.
Tambahkan antibody bundle romkatv/powerlevel10k
ke ~/.zshrc
.
Tambahkan romkatv/powerlevel10k
ke ~/.zsh_plugins.txt
.
Tambahkan antigen theme romkatv/powerlevel10k
ke ~/.zshrc
. Pastikan Anda memiliki antigen apply
di suatu tempat setelahnya.
Tambahkan zplug romkatv/powerlevel10k, as:theme, depth:1
ke ~/.zshrc
.
Tambahkan zgen load romkatv/powerlevel10k powerlevel10k
ke ~/.zshrc
.
Tambahkan zplugin ice depth=1; zplugin light romkatv/powerlevel10k
ke ~/.zshrc
.
Penggunaan depth=1
es adalah opsional. Jenis es lainnya tidak direkomendasikan atau didukung secara resmi oleh Powerlevel10k.
Tambahkan zinit ice depth=1; zinit light romkatv/powerlevel10k
ke ~/.zshrc
.
Penggunaan depth=1
es adalah opsional. Jenis es lainnya tidak direkomendasikan atau didukung secara resmi oleh Powerlevel10k.
Tambahkan zi ice depth=1; zi light romkatv/powerlevel10k
ke ~/.zshrc
.
Penggunaan depth=1
es adalah opsional. Jenis es lainnya tidak direkomendasikan atau didukung secara resmi oleh Powerlevel10k.
Tambahkan plug "romkatv/powerlevel10k"
ke ~/.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 yang direferensikan di atas adalah paket resmi Powerlevel10k.
apk add zsh zsh-theme-powerlevel10k
mkdir -p ~ /.local/share/zsh/plugins
ln -s /usr/share/zsh/plugins/powerlevel10k ~ /.local/share/zsh/plugins/
Ikuti instruksi di halaman ini.
Saat pertama kali dijalankan, wizard konfigurasi Powerlevel10k akan menanyakan beberapa pertanyaan dan mengonfigurasi prompt Anda. Jika tidak terpicu secara otomatis, ketik p10k configure
. Wizard konfigurasi membuat ~/.p10k.zsh
berdasarkan preferensi Anda. Kustomisasi cepat tambahan dapat dilakukan dengan mengedit file ini. Ini memiliki banyak komentar untuk membantu Anda menavigasi opsi konfigurasi.
Pertanyaan Umum :
Pemecahan masalah :
Jika Anda pernah menggunakan Powerlevel9k sebelumnya, jangan hapus opsi konfigurasi . Powerlevel10k akan mengambilnya dan memberi Anda UI prompt yang sama seperti yang biasa Anda gunakan. Lihat kompatibilitas Powerlevel9k.
Pertanyaan Umum :
Pemecahan masalah : Spasi ekstra atau hilang pada prompt dibandingkan dengan Powerlevel9k.
Powerlevel10k tidak memerlukan font khusus tetapi dapat memanfaatkannya jika tersedia. Ia bekerja dengan baik dengan Nerd Fonts, Source Code Pro, Font Awesome, Powerline, dan bahkan font sistem default. Pilihan gaya lengkap hanya tersedia saat menggunakan Nerd Fonts.
? Font yang direkomendasikan : Meslo Nerd Font ditambal untuk Powerlevel10k. ?
Font monospace cantik yang dirancang oleh Jim Lyles untuk Bitstream, dikustomisasi dengan cara yang sama untuk Apple, dikustomisasi lebih lanjut oleh André Berg, dan akhirnya ditambal oleh Anda dengan skrip khusus yang awalnya dikembangkan oleh Ryan L McIntyre dari Nerd Fonts. Berisi semua mesin terbang dan simbol yang mungkin diperlukan Powerlevel10k. Telah diuji pertempuran di lusinan terminal berbeda di semua sistem operasi utama.
FAQ : Bagaimana font yang direkomendasikan dibuat?
Jika Anda menggunakan iTerm2 atau Termux, p10k configure
dapat menginstal font yang direkomendasikan untuk Anda. Cukup jawab Yes
ketika ditanya apakah akan menginstal Meslo Nerd Font .
Jika Anda menggunakan terminal lain, lanjutkan dengan instalasi font manual. ?
MesloLGS NF
tersedia untuk semua aplikasi di sistem Anda.p10k configure
dan jawab Yes
ketika ditanya apakah akan menginstal Meslo Nerd Font . Alternatifnya, buka iTerm2 → Preferensi → Profil → Teks dan atur Font ke MesloLGS NF
.MesloLGS NF
.fontFamily
di bawah module.exports.config
menjadi MesloLGS NF
.terminal.integrated.fontFamily
di kotak pencarian di bagian atas tab Pengaturan dan atur nilai di bawah ke MesloLGS NF
. Lihat tangkapan layar ini untuk melihat tampilannya atau lihat masalah ini untuk informasi tambahan.MesloLGS NF Regular
.MesloLGS NF Regular
.MesloLGS NF Regular
.MesloLGS NF
.MesloLGS NF
.MesloLGS NF
.MesloLGS NF
.p10k configure
dan jawab Yes
ketika ditanya apakah akan menginstal Meslo Nerd Font .config
, buka Appearance , ketuk Tambahkan font baru , ketuk Buka Galeri , pilih MesloLGS NF.css , ketuk impor dan ketik exit
di tampilan beranda untuk memuat ulang font.MesloLGS NF
.MesloLGS NF Regular
. Keluar dari dialog Preferensi dengan mengklik Tutup .MesloLGS NF Regular
. Keluar dari dialog Preferensi dengan mengklik Tutup .MesloLGS NF
. Jika Anda memiliki sesi , Anda perlu mengubah font di masing-masing sesi melalui Pengaturan → klik kanan pada sesi individual → Edit Sesi → Pengaturan Terminal → Pengaturan font .MesloLGS NF Regular
. Untuk mengubah font untuk koneksi host jarak jauh, buka Preferensi → Opsi Terminal → Tampilan dan Nuansa dan ubah Font: di bawah Terminal UI menjadi MesloLGS NF Regular
.MesloLGS NF
.MesloLGS NF Regular
.MesloLGS NF
dan klik OK . Klik OK untuk menyimpan profil. Pilih profil baru dan klik Tetapkan sebagai Default .~/.config/alacritty/alacritty.toml
dan tambahkan bagian berikut ke dalamnya: [ font . normal ]
family = " MesloLGS NF "
~/.config/foot/foot.ini
dan tambahkan bagian berikut ke dalamnya: font =MesloLGS NF: size =12
~/.config/kitty/kitty.conf
dan tambahkan baris berikut ke dalamnya: font_family MesloLGS NF
MesloLGS NF
. Memerlukan versi putty >= 0,75.$HOME/.config/wezterm/wezterm.lua
dan tambahkan yang berikut ini: local wezterm = require ' wezterm ' ;
return {
font = wezterm . font ( " MesloLGS NF " ),
}
~/.Xresources
dan tambahkan baris berikut ke dalamnya: URxvt.font: xft:MesloLGS NF:size=11
xrdb ~/.Xresources
untuk memuatnya kembali. Konfigurasi baru diterapkan ke semua terminal baru.~/.Xresources
dan tambahkan baris berikut ke dalamnya: xterm*faceName: MesloLGS NF
xrdb ~/.Xresources
untuk memuatnya kembali. Konfigurasi baru diterapkan ke semua terminal baru.~/.config/zed/settings.json
dan atur terminal.font_family
ke "MesloLGS NF"
. {
"terminal" : {
"font_family" : "MesloLGS NF"
} ,
// Other settings.
}
'MesloLGS NF'
(termasuk tanda kutip) dan CSS Khusus (teks sebaris) sebagai berikut: @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
dan tambahkan bagian berikut ke dalamnya: [basic.interface.font]
value = " MesloLGS NF "
p10k configure
untuk menghasilkan ~/.p10k.zsh
baru. Konfigurasi lama mungkin tidak berfungsi dengan benar dengan font baru.Menggunakan terminal lain dan tahu cara mengatur fontnya? Bagikan pengetahuan Anda dengan mengirimkan PR untuk memperluas daftar!
Coba Powerlevel10k di Docker. Anda dapat dengan aman membuat perubahan apa pun pada sistem file saat mencoba temanya. Setelah Anda keluar dari Zsh, penampung akan dihapus.
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 '
Tip : Instal font yang direkomendasikan sebelum menjalankan perintah Docker untuk mendapatkan akses ke semua gaya prompt.
Tip : Jalankan p10k configure
saat berada di Docker untuk mencoba gaya prompt yang berbeda.
Powerlevel10k dirilis di bawah lisensi MIT.
$HOME/.git
tidak ditampilkan di prompt?Perintah untuk memperbarui Powerlevel10k bergantung pada cara penginstalannya.
Instalasi | Perbarui perintah |
---|---|
petunjuk | git -C ~/powerlevel10k pull |
Ya ampun | git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull |
Harga | zprezto-update |
Zim | zimfw update |
Antigen | antigen update |
Penangkal | antidote update |
Zplug | zplug update |
Zgen | zgen update |
Plugin Z | zplugin update |
Zinit | zinit update |
Zi | zi update |
Pertengkaran | zap update |
minuman rumahan | brew update && brew upgrade |
Lengkungan Linux | yay -S --noconfirm zsh-theme-powerlevel10k-git |
Linux Alpen | apk update && apk upgrade |
PENTING : Mulai ulang Zsh setelah memperbarui Powerlevel10k. Jangan gunakan source ~/.zshrc
.
Hapus semua referensi ke "p10k" dari ~/.zshrc
. Anda mungkin memiliki cuplikan ini di atas:
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
Dan ini di bagian bawah:
[[ ! -f ~ /.p10k.zsh ]] || source ~ /.p10k.zsh
Ini ditambahkan oleh wizard konfigurasi. Hapus mereka.
Hapus semua referensi ke "powerlevel10k" dari ~/.zshrc
, ~/.zpreztorc
dan ~/.zimrc
(beberapa file ini mungkin hilang -- ini normal). Referensi ini telah Anda tambahkan secara manual saat menginstal Powerlevel10k. Lihat petunjuk instalasi jika Anda memerlukan pengingat.
Verifikasi bahwa semua referensi ke "p10k" dan "powerlevel10k" hilang dari ~/.zshrc
, ~/.zpreztorc
dan ~/.zimrc
.
grep -E ' p10k|powerlevel10k ' ~ /.zshrc ~ /.zpreztorc ~ /.zimrc 2> /dev/null
Jika perintah ini menghasilkan keluaran, masih ada referensi ke "p10k" atau "powerlevel10k". Anda harus menghapusnya.
Hapus file konfigurasi Powerlevel10k. File ini dibuat oleh wizard konfigurasi dan mungkin berisi pengeditan manual sendiri.
rm -f ~ /.p10k.zsh
Hapus file sumber Powerlevel10k. File-file ini telah diunduh ketika Anda menginstal Powerlevel10k. Perintah untuk menghapusnya bergantung pada metode instalasi yang Anda pilih. Lihat petunjuk instalasi jika Anda memerlukan pengingat.
Instalasi | Copot pemasangan perintah |
---|---|
petunjuk | rm -rf ~/powerlevel10k |
Ya ampun | rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k |
Harga | tidak ada |
Zim | zimfw uninstall |
Antigen | antigen purge romkatv/powerlevel10k |
Penangkal | antidote purge romkatv/powerlevel10k |
Zplug | zplug clean |
Zgen | zgen reset |
Plugin Z | zplugin delete romkatv/powerlevel10k |
Zinit | zinit delete romkatv/powerlevel10k |
Zi | zi delete romkatv/powerlevel10k |
Pertengkaran | zsh -ic 'zap clean' |
minuman rumahan | brew uninstall powerlevel10k |
Lengkungan Linux | yay -R --noconfirm zsh-theme-powerlevel10k-git |
Linux Alpen | apk del zsh-theme-powerlevel10k |
Mulai ulang Zsh. Jangan gunakan source ~/.zshrc
.
Hapus file cache 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
dengan output dari perintah sebelumnya: 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
dari mesin yang terhubung ke Internet ke mesin tanpa akses Internet.source ~/powerlevel10k/powerlevel10k.zsh-theme
ke ~/.zshrc
di mesin tanpa akses Internet: echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
~/.zshrc
pada mesin tanpa akses Internet menyetel ZSH_THEME
, hapus baris itu. sed -i.bak ' /^ZSH_THEME=/d ' ~ /.zshrc
Untuk memperbarui, hapus ~/powerlevel10k
di kedua mesin dan ulangi langkah 1-3.
Cara terbaik untuk meminta bantuan dan melaporkan bug adalah dengan membuka masalah.
Gitter adalah pilihan lain.
Jika semuanya gagal, kirim email ke [email protected].
Jika perlu, enkripsi komunikasi Anda dengan kunci PGP ini.
Powerlevel10k mendefinisikan prompt dan tidak ada yang lain. Ini menetapkan opsi terkait prompt, dan parameter PS1
dan RPS1
.
Segala sesuatu dalam area yang disorot pada tangkapan layar dihasilkan oleh Powerlevel10k. Powerlevel10k tidak memiliki kendali atas konten atau warna terminal di luar area ini.
Powerlevel10k tidak mempengaruhi:
ls
.git
.PS1
dan 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
dan pilih gaya prompt favorit Anda.Terkait:
Ya. Lihat zsh-bench atau perbandingan langsung dengan Powerlevel9k dan Spaceship.
Lihat perintah instan untuk mempelajari tentang perintah instan. Bagian ini menjelaskan bagaimana Anda dapat mengaktifkan dan mengonfigurasinya serta mencantumkan peringatan yang harus Anda waspadai.
Prompt instan dapat diaktifkan melalui p10k configure
atau dengan menambahkan cuplikan kode berikut secara manual di bagian atas ~/.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
Penting bagi Anda untuk menyalin baris tersebut kata demi kata. Jangan ganti source
dengan yang lain, jangan panggil zcompile
, jangan alihkan output, dll.
Ketika prompt instan diaktifkan, selama inisialisasi Zsh, input standar dialihkan ke /dev/null
dan output standar dengan kesalahan standar dialihkan ke file sementara. Setelah Zsh diinisialisasi sepenuhnya, deskriptor file standar dipulihkan dan konten file sementara dicetak.
Saat menggunakan prompt instan, Anda harus hati-hati memeriksa output apa pun yang muncul pada startup Zsh karena ini mungkin menunjukkan bahwa inisialisasi telah diubah, atau bahkan mungkin rusak, dengan prompt instan. Kode inisialisasi yang mungkin memerlukan input konsol, seperti meminta kata sandi keyring atau konfirmasi [y/n] , harus dipindahkan di atas pembukaan prompt instan di ~/.zshrc
. Kode inisialisasi yang hanya dicetak ke konsol tetapi tidak pernah dibaca akan berfungsi dengan benar dengan prompt instan, meskipun keluaran yang biasanya berwarna mungkin tampak tidak berwarna. Anda dapat membiarkannya, menyembunyikan outputnya, atau memindahkannya ke atas pembukaan prompt instan.
Berikut ini contoh ~/.zshrc
yang rusak saat prompt instan diaktifkan:
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
# ...
Versi tetap:
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
# ...
Jika POWERLEVEL9K_INSTANT_PROMPT
tidak disetel atau disetel ke verbose
, Powerlevel10k akan mencetak peringatan saat mendeteksi keluaran konsol selama inisialisasi untuk memberi perhatian pada potensi masalah. Anda dapat membungkam peringatan ini (tanpa menyembunyikan keluaran konsol) dengan POWERLEVEL9K_INSTANT_PROMPT=quiet
. Hal ini direkomendasikan jika beberapa kode inisialisasi di ~/.zshrc
dicetak ke konsol dan tidak mungkin untuk memindahkannya ke atas pembukaan prompt instan atau untuk menyembunyikan outputnya. Anda dapat sepenuhnya menonaktifkan prompt instan dengan POWERLEVEL9K_INSTANT_PROMPT=off
. Lakukan ini jika prompt instan merusak inisialisasi Zsh dan Anda tidak tahu cara memperbaikinya.
Nilai POWERLEVEL9K_INSTANT_PROMPT
dapat diubah dengan menjalankan p10k configure
dan memilih opsi yang sesuai pada layar Prompt Instan . Alternatifnya, Anda dapat mencari POWERLEVEL9K_INSTANT_PROMPT
di ~/.p10k.zsh
yang ada dan mengubah nilainya di sana.
Catatan : Prompt instan memerlukan Zsh >= 5.4. Tidak apa-apa untuk mengaktifkannya bahkan ketika menggunakan Zsh versi lama tetapi tidak akan melakukan apa pun.
Pertanyaan Umum :
Jika Anda mengaktifkan prompt instan, Anda akan melihat baris berikut di bagian atas ~/.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
Untuk menginisialisasi direnv Anda perlu menambahkan satu baris di atas blok itu dan satu baris di bawahnya.
(( ${+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 ) "
Terkait : Bagaimana cara mengekspor GPG_TTY saat menggunakan prompt instan?
Anda dapat mengekspor GPG_TTY
seperti ini di mana saja di ~/.zshrc
:
export GPG_TTY= $TTY
Ini berfungsi baik Anda menggunakan prompt instan atau tidak. Ia berfungsi bahkan jika Anda tidak menggunakan powerlevel10k. Sebagai bonus tambahan, ini jauh lebih cepat daripada export GPG_TTY=$(tty)
yang umum digunakan.
Terkait : Bagaimana cara menginisialisasi direnv saat menggunakan prompt instan?
Saat menggunakan gaya Lean, Klasik, atau Pelangi, status Git mungkin terlihat seperti ini:
feature:master wip ⇣42⇡42 ⇠42⇢42 *42 merge ~42 +42 !42 ?42
Simbol | Arti | Sumber |
---|---|---|
feature | cabang saat ini; diganti dengan #tag atau @commit jika tidak di cabang | git status --ignore-submodules=dirty |
master | cabang pelacakan jarak jauh; hanya ditampilkan jika berbeda dari cabang lokal | git rev-parse --abbrev-ref --symbolic-full-name @{upstream} |
wip | ringkasan komit terbaru berisi "wip" atau "WIP" | git show --pretty=%s --no-patch HEAD |
= | terkini dengan remote (tidak di depan atau di belakang) | git rev-list --count HEAD...@{upstream} |
⇣42 | ini banyak yang dilakukan di belakang remote | git rev-list --right-only --count HEAD...@{upstream} |
⇡42 | ini banyak yang dilakukan sebelum remote | git rev-list --left-only --count HEAD...@{upstream} |
⇠42 | ini banyak yang dilakukan di belakang push remote | git rev-list --right-only --count HEAD...@{push} |
⇢42 | ini banyak yang dilakukan sebelum push remote | git rev-list --left-only --count HEAD...@{push} |
*42 | simpanan sebanyak ini | git stash list |
merge | keadaan repositori | git status --ignore-submodules=dirty |
~42 | ini banyak menggabungkan konflik | git status --ignore-submodules=dirty |
+42 | ini banyak perubahan bertahap | git status --ignore-submodules=dirty |
!42 | ini banyak perubahan yang tidak dilakukan secara bertahap | git status --ignore-submodules=dirty |
?42 | ini banyak file yang tidak terlacak | git status --ignore-submodules=dirty |
─ | jumlah file yang dipentaskan, tidak dipentaskan atau tidak dilacak tidak diketahui | echo $POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY atau git config --get bash.showDirtyState |
Terkait : Bagaimana cara mengubah format status Git?
Untuk mengubah format status Git, buka ~/.p10k.zsh
, cari my_git_formatter
dan edit kode sumbernya.
Terkait : Apa arti simbol berbeda dalam status Git?
$HOME/.git
tidak ditampilkan di prompt? Saat menggunakan gaya ramping, klasik atau pelangi, ~/.p10k.zsh
berisi parameter berikut:
# 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= ' ~ '
Untuk melihat status git untuk $HOME/.git
di prompt, buka ~/.p10k.zsh
dan hapus POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN
.
TL; DR: Ketika status git dalam prompt dikeluarkan, itu berarti PowerLevel10K saat ini sedang menghitung status git terkini di latar belakang. Prompt akan disegarkan secara otomatis ketika perhitungan ini selesai.
Ketika direktori Anda saat ini berada dalam repositori git, PowerLevel10K menghitung status Git terkini setelah setiap perintah. Jika repositori besar, atau mesinnya lambat, perhitungan ini bisa memakan waktu cukup banyak. Jika membutuhkan waktu lebih dari 10 milidetik (dapat dikonfigurasi melalui POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS
), PowerLevel10K menampilkan status git terakhir yang diketahui dengan warna abu-abu dan terus menghitung status GIT terkini di latar belakang. Ketika perhitungan selesai, PowerLevel10K menyegarkan dengan informasi baru, kali ini dengan status Git berwarna.
Saat menggunakan gaya pelangi , status git ditampilkan sebagai hitam pada abu -abu saat masih dihitung. Bergantung pada palet warna terminal, ini mungkin sulit dibaca. Dalam hal ini Anda mungkin ingin mengubah warna latar belakang menjadi sesuatu yang lebih ringan untuk lebih kontras. Untuk melakukan itu, buka ~/.p10k.zsh
, cari POWERLEVEL9K_VCS_LOADING_BACKGROUND
, uncommentnya jika dikomentari, dan ubah nilainya.
typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=244
Ketik source ~/.p10k.zsh
untuk menerapkan perubahan Anda pada sesi zsh saat ini.
Terkait : Bagaimana cara mengubah warna yang cepat?
Saat menggunakan gaya ramping, klasik atau pelangi, prompt menunjukkan username@hostname
saat Anda masuk sebagai root atau melalui ssh. Ada sedikit nilai dalam menampilkan username
atau hostname
saat Anda masuk ke mesin lokal Anda sebagai pengguna normal. Jadi tidak adanya username@hostname
di prompt Anda adalah indikasi bahwa Anda bekerja secara lokal dan Anda tidak root. Anda bisa mengubahnya.
Buka ~/.p10k.zsh
. Dekat dengan bagian atas Anda dapat melihat parameter terpenting yang menentukan segmen mana yang ditunjukkan pada prompt Anda. Semua segmen prompt yang umumnya berguna tercantum di sana. Beberapa dari mereka diaktifkan, yang lain dikomentari. Salah satunya menarik bagi Anda.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
...
context # user@hostname
...
)
Cari context
untuk menemukan bagian dalam konfigurasi yang mencantumkan parameter khusus untuk segmen prompt ini. Anda harus melihat baris berikut:
# 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=
Jika Anda mengikuti tip dan menghapus (atau mengomentari) baris terakhir, Anda akan selalu melihat username@hostname
di prompt. Anda dapat mengubah format menjadi username
, atau mengubah warna, dengan menyesuaikan nilai parameter di dekatnya. Ada banyak komentar untuk membantu Anda menavigasi.
Anda juga dapat memindahkan context
ke posisi yang berbeda di POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
atau bahkan ke POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
.
Segmen prompt dapat dikonfigurasi untuk ditampilkan hanya ketika perintah saat ini Anda mengetik menggunakan alat yang relevan.
# 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 '
Konfigurasi yang dibuat oleh p10k configure
dapat berisi parameter jenis ini. Untuk menyesuaikan ketika segmen prompt yang berbeda ditampilkan, buka ~/.p10k.zsh
, cari SHOW_ON_COMMAND
dan menghapus parameter ini atau mengubah nilainya.
Anda juga dapat mendefinisikan fungsi di ~/.zshrc
untuk beralih tampilan segmen prompt antara selalu dan pada perintah . Ini mirip dengan kubeon
/ kubeoff
dari 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
}
Memohon fungsi ini dengan mengetik kube-toggle
. Anda juga dapat mengikatnya ke kunci dengan menambahkan dua baris lagi ke ~/.zshrc
:
zle -N kube-toggle
bindkey ' ^] ' kube-toggle # ctrl-] to toggle kubecontext in powerlevel10k prompt
Anda dapat mengubah palet warna yang digunakan oleh terminal Anda atau mengatur warna melalui parameter konfigurasi PowerLevel10K.
Bagaimana tepatnya Anda mengubah palet warna terminal (alias skema warna, atau tema) tergantung pada jenis terminal yang Anda gunakan. Lihatlah ke sekeliling di pengaturan/preferensi Terminal atau berkonsultasi dengan dokumentasi.
Saat Anda mengubah palet warna terminal, biasanya hanya mempengaruhi 16 warna pertama, bernomor dari 0 menjadi 15. Untuk melihat efek apa pun pada prompt PowerLevel10K, Anda perlu menggunakan gaya prompt yang menggunakan warna bernomor rendah ini. Ketik p10k configure
dan pilih pelangi , lean → 8 warna atau murni → asli . Gaya lain menggunakan warna bernomor lebih tinggi, sehingga terlihat sama di palet warna terminal apa pun.
Buka ~/.p10k.zsh
, cari "warna", "latar depan" dan "latar belakang" dan ubah nilai parameter yang sesuai. Misalnya, inilah cara Anda dapat mengatur foreground of time
prompt segmen menjadi merah cerah:
typeset -g POWERLEVEL9K_TIME_FOREGROUND=160
Warna ditentukan menggunakan angka dari 0 hingga 255. Warna dari 0 hingga 15 terlihat berbeda di terminal yang berbeda. Banyak terminal juga mendukung penyesuaian warna -warna ini melalui palet warna (skema warna alias, atau tema). Warna dari 16 hingga 255 selalu terlihat sama.
Ketik source ~/.p10k.zsh
untuk menerapkan perubahan Anda pada sesi zsh saat ini.
Untuk melihat bagaimana warna bernomor yang berbeda di terminal Anda, jalankan perintah berikut:
for i in {0..255} ; do print -Pn " %K{ $i } %k%F{ $i } ${(l : 3 :: 0 : )i} %f " ${ ${(M)$((i % 6)) :# 3} : + $' n ' } ; done
Jika terminal Anda mendukung TrueColor, Anda dapat menggunakan warna 24-bit dalam format #RRGGBB
di samping warna bernomor.
typeset -g POWERLEVEL9K_TIME_FOREGROUND= ' #FF0000 '
Terkait:
Secara default, terminal vscode dapat secara sewenang -wenang mengganti warna latar depan pilihan Anda dengan warna yang berbeda. Perilaku ini dapat dimatikan dalam pengaturan vScode.
Powerlevel10K menggunakan Gitstatus sebagai backend di belakang vcs
Prompt; Gitstatus menelurkan gitstatusd
dan zsh
. Lihat Gitstatus untuk detailnya. PowerLevel10K juga dapat menelurkan zsh
untuk melakukan perhitungan tanpa memblokir prompt. Untuk menghindari bahaya keamanan, proses latar belakang ini tidak dibagikan oleh cangkang interaktif yang berbeda. Mereka berakhir secara otomatis ketika proses Parent zsh
mengakhiri atau menjalankan exec(3)
.
Tidak, PowerLevel10K selalu cepat, dengan konfigurasi apa pun yang Anda lemparkan. Jika Anda memiliki latensi cepat yang terlihat saat menggunakan PowerLevel10K, silakan buka masalah.
Ya. Lihat Zsh-Bench.
PowerLevel10K bercabang dari PowerLevel9K pada Maret 2019 setelah diskusi selama seminggu di PowerLevel9K#1170. PowerLevel9K sudah menjadi proyek dewasa dengan basis pengguna yang besar dan siklus rilis yang diukur dalam beberapa bulan. PowerLevel10K diputar untuk berulang pada peningkatan kinerja dan fitur -fitur baru dengan kecepatan yang jauh lebih tinggi.
PowerLevel9K dan PowerLevel10K adalah proyek independen. Saat menggunakan satu, Anda tidak boleh menginstal yang lain. Masalah harus diajukan terhadap proyek yang sebenarnya Anda gunakan. Tidak ada individu yang memiliki hak komit di kedua repositori. Semua perbaikan bug dan fitur -fitur baru yang berkomitmen untuk repositori PowerLevel9K dapat diangkut ke PowerLevel10K.
Seiring waktu, hampir semua kode di PowerLevel10K telah ditulis ulang. Saat ini tidak ada tumpang tindih yang berarti antara implementasi PowerLevel9K dan PowerLevel10K.
PowerLevel10K berkomitmen untuk mempertahankan kompatibilitas ke belakang dengan semua konfigurasi tanpa batas. Komitmen ini mencakup semua parameter konfigurasi yang dikenali oleh PowerLevel9K (lihat Kompatibilitas PowerLevel9K) dan parameter tambahan yang hanya dipahami PowerLevel10K. Nama semua parameter di powerlevel10k dimulai dengan POWERLEVEL9K_
untuk konsistensi.
Hampir. Ada beberapa perbedaan.
git
vcs backend yang diaktifkan di powerlevel10k. Jika Anda membutuhkan svn
dan hg
, tambahkan mereka ke POWERLEVEL9K_VCS_BACKENDS
. Backends ini belum dioptimalkan di PowerLevel10K, sehingga memungkinkan mereka akan membuat cepat sangat lambat .POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY=true
.POWERLEVEL9K_MODE
sebelum mencari tema. Parameter ini diabaikan oleh PowerLevel9K tetapi dihormati oleh PowerLevel10K. Jika Anda ingin prompt Anda untuk melihat di PowerLevel10k sama seperti di PowerLevel9K, hapus POWERLEVEL9K_MODE
.ZLE_RPROMPT_INDENT
. Akibatnya, prompt kanan di PowerLevel10K dapat memiliki ruang ekstra pada akhirnya dibandingkan dengan PowerLevel9K. Atur ZLE_RPROMPT_INDENT=0
jika Anda tidak menginginkan ruang itu. Rincian lebih lanjut dalam pemecahan masalah.POWERLEVEL9K_LEGACY_ICON_SPACING=true
untuk mendapatkan jarak yang sama seperti di powerlevel9k. Rincian lebih lanjut dalam pemecahan masalah.Jika Anda melihat ada perubahan lain dalam penampilan cepat saat beralih dari PowerLevel9K ke PowerLevel10K, silakan buka masalah.
Ada banyak pendapat tentang apa yang merupakan prompt terbaik seperti halnya orang. Sebagian besar berujung pada preferensi pribadi. Namun, ada beberapa implikasi tersembunyi dari berbagai pilihan.
Gaya murni adalah replikasi yang tepat dari tema zsh murni. Itu ada untuk memudahkan migrasi bagi pengguna tema ini. Kecuali jika Anda salah satunya, pilih gaya lean daripada murni.
Jika Anda ingin membatasi warna cepat ke palet warna terminal yang dipilih (katakanlah, gelap larut ), gunakan pelangi , lean → 8 warna atau murni → asli . Gaya lain menggunakan warna tetap dan dengan demikian terlihat sama di palet warna terminal apa pun.
Semua gaya kecuali murni memiliki opsi untuk menggunakan charset ASCII . Prompt akan terlihat kurang cantik tetapi akan diterjemahkan dengan benar dengan semua font dan di semua lokal.
Jika Anda mengaktifkan prompt sementara, manfaatkan prompt dua baris. Anda akan mendapatkan manfaat dari ruang ekstra untuk mengetik perintah tanpa kelemahan yang biasa dikurangi kepadatan scrollback. Memiliki semua perintah mulai dari offset yang sama juga bagus.
Demikian pula, jika Anda mengaktifkan prompt sementara, prompt jarang (dengan garis kosong sebelum prompt) adalah pilihan yang tepat.
Jika Anda menggunakan vi keymap, pilih prompt dengan prompt_char
di dalamnya (ditampilkan sebagai hijau ❯
di wizard). Simbol ini berubah tergantung pada mode VI: ❯
, ❮
, V
, ▶
Untuk sisipan, perintah, visual dan mode ganti masing -masing. Ketika sebuah perintah gagal, simbol berubah merah. Gaya Lean selalu memiliki prompt_char
di dalamnya. Gaya pelangi dan klasik hanya memilikinya dalam konfigurasi dua baris tanpa bingkai kiri.
Jika Anda menghargai ruang horizontal atau lebih suka estetika minimalis:
Catatan : Anda dapat menjalankan konfigurasi wizard sebanyak yang Anda suka. Ketik p10k configure
untuk mencoba gaya prompt baru.
Gunakan konfigurasi ini.
Anda dapat mengunduhnya, menyimpan sebagai ~/.p10k.zsh
dan source ~/.p10k.zsh
dari ~/.zshrc
, atau sumber p10k-robbyrussell.zsh
langsung dari repositori powerlevel10k
yang dikloning Anda.
Tidak. Saat Anda menekan enter dan perintah yang Anda ketik mulai berjalan, status kesalahannya belum diketahui, sehingga tidak dapat ditampilkan di prompt. Ketika perintah selesai, status kesalahan diketahui tetapi tidak mungkin lagi memperbarui prompt untuk perintah itu . Inilah sebabnya mengapa status kesalahan untuk setiap perintah tercermin pada prompt berikutnya .
Untuk detailnya, lihat posting ini di /r /zsh.
Zsh 5.3 atau yang lebih baru harus berfungsi. Startup cepat membutuhkan zsh> = 5.4.
Semua tangkapan layar dan GIF animasi direkam di terminal gnome dengan font dan palet warna gelap tango dengan warna latar belakang khusus ( #171A1B
alih -alih #2E3436
- dua kali lebih gelap).
Sorot sintaks, di mana sekarang, disediakan oleh Zsh-Syntax-Highlighting.
Font yang direkomendasikan adalah produk dari banyak individu. Asalnya adalah bitstream vera sans mono , yang telah melahirkan Menlo , yang pada gilirannya telah melahirkan Meslo . Akhirnya, mesin terbang ekstra telah ditambahkan ke Meslo dengan skrip yang bercabang dari nerd font. Font akhir dirilis di bawah ketentuan lisensi Apache.
Meslolgs NF Font dapat diciptakan kembali dengan perintah berikut (membutuhkan git
dan docker
):
git clone --depth=1 https://github.com/romkatv/nerd-fonts.git
cd nerd-fonts
./build ' Meslo/S/* '
Jika semuanya berjalan dengan baik, empat file ttf
akan muncul di ./out
.
Saat ini tidak mudah atau disarankan untuk mengemas dan mendistribusikan PowerLevel10K. Tidak ada instruksi yang dapat Anda ikuti yang akan memungkinkan Anda untuk dengan mudah memperbarui paket saat versi baru PowerLevel10K dirilis. Ini mungkin berubah di masa depan tetapi tidak segera.
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
source ~/.zshrc
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
Saat membuka terminal, atau memulai zsh secara manual, Anda dapat menemukan pesan kesalahan ini:
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
typeset -p P9K_VERSION
untuk memeriksa apakah powerlevel10k telah dimuat.typeset -p P9K_VERSION
berhasil dan mencetak sesuatu seperti typeset P9K_VERSION=1.19.14
(versi bisa berbeda), hapus baris berikut dari ~/.zshrc
: ZSH_THEME= " powerlevel10k/powerlevel10k "
typeset -p P9K_VERSION
gagal dengan typeset: no such variable: P9K_VERSION
, jalankan perintah berikut: git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
exec zsh
. Jika terlihat seperti biasa ?
, itu normal. Ini berarti Anda memiliki file yang tidak dilacak di repositori Git saat ini. Ketik git status
untuk melihat file -file ini. Anda dapat mengubah simbol ini atau menonaktifkan tampilan file yang tidak dilacak sama sekali. Cari untracked files
di ~/.p10k.zsh
.
FAQ : Apa arti simbol yang berbeda dalam status git?
Anda juga bisa mendapatkan tanda tanya yang tampak aneh di prompt Anda jika font terminal Anda kehilangan beberapa mesin terbang. Lihat ikon, mesin terbang atau simbol powerline tidak dirender.
Mulai ulang terminal Anda, instal font yang disarankan dan jalankan p10k configure
.
Ada tiga ketidaksempurnaan pada tangkapan layar. Dari kiri ke kanan:
Tema zsh tidak memiliki kontrol rendah-ke-pixel atas konten terminal. Semua yang Anda lihat di layar terbuat dari karakter monospace. Segmen Prompt Powerline Putih terbuat dari teks pada latar belakang putih diikuti oleh U+E0B0 (segitiga yang menunjuk kanan).
Jika powerlevel10K prompt memiliki ketidaksempurnaan di sekitar simbol powerline, Anda akan melihat ketidaksempurnaan yang persis sama dengan semua tema powerline (Agnoster, powerlevel9k, powerline, dll.)
Ada beberapa hal yang dapat Anda coba berurusan dengan ketidaksempurnaan ini:
Solusi yang lebih radikal adalah beralih ke gaya yang cepat tanpa latar belakang. Ketik p10k configure
dan Pilih Lean . Gaya ini memiliki tampilan ringan modern. Sebagai bonus, itu tidak menderita karena ketidaksempurnaan yang menimpa prompt gaya powerline.
Ketik echo 'u276F'
. Jika Anda mendapatkan kesalahan yang mengatakan "zsh: karakter tidak dalam jangkauan", lokal Anda tidak mendukung UTF-8. Anda perlu memperbaikinya. Jika Anda menjalankan Zsh di atas SSH, lihat ini. Jika Anda menjalankan ZSH secara lokal, Google "Tetapkan Lokal UTF-8 di OS Anda ".
Ketik echo 'u276F'
. Jika Anda mendapatkan kesalahan yang mengatakan "zsh: karakter tidak dalam jangkauan", lihat bagian sebelumnya.
Jika perintah echo
mencetak ❯
tetapi kursor masih di tempat yang salah, instal font yang disarankan dan jalankan p10k configure
.
Jika ini tidak membantu, tambahkan unset ZLE_RPROMPT_INDENT
di bagian bawah ~/.zshrc
.
Masih mengalami masalah? Jalankan perintah berikut untuk mendiagnosis masalah:
() {
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 |
+------------------------------+
Jika output dari perintah disejajarkan untuk setiap bagian prompt Anda (kiri dan kanan), ini menunjukkan bug dalam tema atau konfigurasi Anda. Gunakan perintah ini untuk mendiagnosisnya:
print -rl -- ${(eq+)PROMPT} ${(eq+)RPROMPT}
Cari %{...%}
dan backslash melarikan diri dalam output. Jika ada, mereka kemungkinan besar. Buka masalah jika Anda macet.
+-----------------------------+
| romka@adam ✓ ~/powerlevel10k |
+-----------------------------+
Ini biasanya disebabkan oleh bug terminal atau salah konfigurasi yang membuatnya mencetak karakter lebar ambigu sebagai lebar ganda alih-alih lebar tunggal. Misalnya, masalah ini.
+------------------------------+
| romka@adam ✓~/powerlevel10k |
+------------------------------+
Perhatikan bahwa prompt ini berbeda dari aslinya karena kehilangan ruang setelah tanda centang.
Ini dapat disebabkan oleh bug tingkat rendah di macOS. Lihat masalah ini.
Ini juga dapat terjadi jika prompt berisi mesin terbang yang ditunjuk sebagai "lebar" dalam standar unicode dan terminal Anda secara tidak benar menampilkannya sebagai non-lebar. Terminal yang menderita keterbatasan ini termasuk Konsole, Hyper dan Terminal VScode Terpadu. Solusinya adalah dengan menggunakan terminal yang berbeda atau menghilangkan semua mesin terbang lebar dari prompt.
+--------------------------------+
| romka@adam ✓ ~/powerlevel10k |
+--------------------------------+
Ini dapat disebabkan oleh lokal yang salah konfigurasi. Lihat masalah ini.
Lihat kursor ada di tempat yang salah.
Lihat kursor ada di tempat yang salah.
Ketika PowerLevel10K dimulai, secara otomatis menjalankan p10k configure
jika tidak ada parameter POWERLEVEL9K_*
yang didefinisikan. Berdasarkan pilihan gaya cepat Anda, wizard konfigurasi membuat ~/.p10k.zsh
dengan sekelompok parameter POWERLEVEL9K_*
di dalamnya dan menambahkan baris ke ~/.zshrc
untuk sumber file ini. Lain kali Anda memulai ZSH, wizard konfigurasi tidak boleh berjalan secara otomatis. Jika ya, ini berarti evaluasi ~/.zshrc
berakhir sebelum waktunya sebelum mencapai garis yang sumber ~/.p10k.zsh
. Ini paling sering terjadi karena kesalahan sintaks di ~/.zshrc
. Kesalahan ini disembunyikan oleh layar Wizard Konfigurasi, jadi Anda tidak menyadarinya. Saat Anda keluar dari wizard konfigurasi, cari pesan kesalahan. Anda juga dapat menggunakan POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true zsh
untuk memulai zsh tanpa secara otomatis menjalankan wizard konfigurasi. Setelah Anda dapat melihat kesalahannya, perbaiki ~/.zshrc
untuk menyingkirkannya.
Jika versi ZSH di bawah 5.7.1 atau variabel lingkungan COLORTERM
bukan 24bit
atau truecolor
, konfigurasi Wizard tidak akan menawarkan gaya murni dengan skema warna yang manis. Perbaiki : Instal Zsh> = 5.7.1 dan gunakan terminal dengan dukungan TrueColor. Verifikasi dengan print -P '%F{#ff0000}red%f'
.
Jika terminal dapat menampilkan kurang dari 256 warna, konfigurasi wizard preselects gaya lean dengan 8 warna. Semua gaya lain membutuhkan setidaknya 256 warna. Fix : Gunakan terminal dengan 256 dukungan warna dan pastikan variabel lingkungan TERM
diatur dengan benar. Verifikasi dengan print $terminfo[colors]
.
Jika tidak ada lokal UTF-8 pada sistem, konfigurasi Wizard tidak akan menawarkan gaya cepat yang menggunakan karakter Unicode. Perbaiki : Pasang lokal UTF-8. Verifikasi dengan locale -a
.
Kasus lain di mana wizard konfigurasi mungkin tidak menawarkan gaya prompt unicode adalah ketika opsi shell MULTIBYTE
dinonaktifkan. Fix : Aktifkan opsi MULTIBYTE
, atau lebih tepatnya tidak menonaktifkannya (opsi ini diaktifkan di zsh secara default). Verifikasi dengan print -r -- ${options[MULTIBYTE]}
.
Ketika MULTIBYTE
diaktifkan dan lokal UTF-8 tersedia, beberapa pertanyaan pertama yang diajukan oleh Wizard Configuration menilai kemampuan terminal font. Jika jawaban Anda menunjukkan bahwa beberapa mesin terbang tidak render dengan benar, konfigurasi Wizard tidak akan menawarkan gaya cepat yang menggunakannya. Perbaiki : Mulai ulang terminal Anda dan pasang font yang disarankan. Verifikasi dengan menjalankan p10k configure
dan memeriksa bahwa semua mesin terbang diterjemahkan dengan benar.
Setelah Anda mengunduh font yang disarankan, Anda dapat menginstalnya seperti font lainnya. Google "Cara Menginstal Font di OS Anda ".
tl; dr: tambahkan ZLE_RPROMPT_INDENT=0
dan POWERLEVEL9K_LEGACY_ICON_SPACING=true
to ~/.zshrc
untuk mendapatkan jarak prompt yang sama seperti di powerlevel9k.
Saat menggunakan PowerLevel10K dengan konfigurasi PowerLevel9K, Anda mungkin mendapatkan ruang tambahan di prompt di sana -sini. Ini datang dalam dua rasa.
tl; dr: tambahkan ZLE_RPROMPT_INDENT=0
ke ~/.zshrc
untuk menyingkirkan ruang itu.
Dari dokumentasi ZSH:
ZLE_RPROMPT_INDENT <S>
Jika diatur, digunakan untuk memberikan lekukan antara sisi kanan prompt kanan di editor garis seperti yang diberikan oleh
RPS1
atauRPROMPT
dan sisi kanan layar. Jika tidak diatur, nilai1
digunakan.Biasanya ini akan digunakan untuk mengatur nilai ke
0
sehingga prompt muncul flush dengan sisi kanan layar.
Powerlevel10k menghormati parameter ini. Jika Anda mengatur ZLE_RPROMPT_INDENT=1
(atau membiarkannya tidak disetel, yang sama dengan mengaturnya menjadi 1
), Anda akan mendapatkan ruang kosong di sebelah kanan prompt kanan. Jika Anda mengatur ZLE_RPROMPT_INDENT=0
, prompt Anda akan pergi ke tepi terminal. Beginilah cara kerjanya dalam setiap tema kecuali PowerLevel9K.
Masalah PowerLevel9K: PowerLevel9K#1292. Ini telah diperbaiki di cabang pengembangan PowerLevel9K tetapi perbaikan belum membuatnya untuk master
.
Tambahkan ZLE_RPROMPT_INDENT=0
ke ~/.zshrc
untuk mendapatkan jarak yang sama di tepi kanan prompt seperti di powerlevel9k.
Catatan: Beberapa versi ZSH memiliki bug yang dipicu saat Anda mengatur ZLE_RPROMPT_INDENT=0
. Powerlevel10K dapat bekerja di sekitar bug ini saat menggunakan gaya prompt powerline. Jika Anda melihat artefak visual dalam posisi kursor prompt, atau yang salah, coba hapus ZLE_RPROMPT_INDENT
dari ~/.zshrc
.
tl; dr: tambahkan POWERLEVEL9K_LEGACY_ICON_SPACING=true
ke ~/.zshrc
untuk mendapatkan jarak yang sama di sekitar ikon seperti di powerlevel9k.
Jarak di sekitar ikon di PowerLevel9K tidak konsisten.
Ketidakkonsistenan ini adalah sumber gangguan yang konstan, jadi itu diperbaiki di PowerLevel10K. Anda dapat menambahkan POWERLEVEL9K_LEGACY_ICON_SPACING=true
ke ~/.zshrc
untuk mendapatkan jarak yang sama di sekitar ikon seperti di powerlevel9k.
Catatan: Bukan ide yang baik untuk mendefinisikan POWERLEVEL9K_LEGACY_ICON_SPACING
saat menggunakan p10k configure
.
source ~/.zshrc
Hampir selalu merupakan ide yang buruk untuk menjalankan source ~/.zshrc
, apakah Anda menggunakan powerlevel10k atau tidak. Perintah ini dapat mengakibatkan kesalahan acak, kode yang berperilaku buruk dan perlambatan zsh progresif.
Jika Anda telah membuat perubahan pada ~/.zshrc
atau ke file yang bersumber dari itu, restart zsh untuk menerapkannya. Cara paling dapat diandalkan untuk melakukan ini adalah dengan mengetik exit
dan kemudian memulai sesi ZSH baru. Anda juga dapat menggunakan exec zsh
. Meskipun tidak setara untuk menyelesaikan restart zsh, perintah ini jauh lebih dapat diandalkan daripada source ~/.zshrc
.
Lihat hal -hal aneh terjadi setelah mengetik source ~/.zshrc
.
Jika instruksi instalasi tidak berfungsi untuk Anda, cobalah menonaktifkan tema Anda saat ini (sehingga Anda berakhir tanpa tema) dan kemudian menginstal PowerLevel10K secara manual.
~/.zshrc
dan lepaskan garis yang mengatur ZSH_THEME
. Mungkin terlihat seperti ini: ZSH_THEME="powerlevel9k/powerlevel9k"
.~/.zshrc
dan hapus perintah zplug
yang mengacu pada tema Anda saat ini. Misalnya, jika Anda saat ini menggunakan PowerLevel9K, cari zplug bhilburn/powerlevel9k, use:powerlevel9k.zsh-theme
.~/.zpreztorc
dan letakkan zstyle :prezto:module:prompt theme off
di dalamnya. Hapus perintah lain yang mengatur theme
seperti zstyle :prezto:module:prompt theme powerlevel9k
.~/.zshrc
dan lepaskan garis yang menetapkan antigen theme
. Mungkin terlihat seperti ini: antigen theme powerlevel9k/powerlevel9k
.git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Metode pemasangan ini tidak akan membuat sesuatu yang lebih lambat atau sub-par.
Dalam gaya pelangi direktori kerja saat ini ditampilkan dengan teks putih cerah pada latar belakang biru. Putih diperbaiki dan selalu terlihat sama tetapi penampilan "biru" ditentukan oleh palet warna terminal Anda. Jika sangat ringan, mungkin sulit untuk melihat teks putih di atasnya.
Ada beberapa cara untuk memperbaikinya.
p10k configure
dan pilih gaya prompt yang lebih mudah dibaca.POWERLEVEL9K_DIR_BACKGROUND
, POWERLEVEL9K_DIR_FOREGROUND
, POWERLEVEL9K_DIR_SHORTENED_FOREGROUND
, POWERLEVEL9K_DIR_ANCHOR_FOREGROUND
dan POWERLEVEL9K_DIR_ANCHOR_BOLD
. Anda dapat menemukannya di ~/.p10k.zsh
.Terkait : Warna latar depan yang salah di terminal vscode.
Secara default, terminal vscode dapat secara sewenang -wenang mengganti warna latar depan pilihan Anda dengan warna yang berbeda. Perilaku ini dapat dimatikan dalam pengaturan vScode.
Ketika Anda mengubah ukuran jendela terminal secara horizontal bolak -balik beberapa kali, Anda mungkin melihat gambar jelek ini.
TL; DR: Masalah ini muncul ketika terminal mencerminkan prompt zsh setelah mengubah ukuran. Ini tidak spesifik untuk PowerLevel10K. Lihat mitigasi.
Catatan: Bagian ini dulu mengatakan bahwa masalahnya disebabkan oleh bug di zsh. Meskipun benar bahwa dimungkinkan untuk menghindari masalah dalam banyak keadaan dengan memodifikasi zsh, itu tidak dapat sepenuhnya diselesaikan dengan cara ini. Jadi tidak adil untuk menyalahkan Zsh.
Masalah ini dimanifestasikan ketika jarak vertikal antara awal prompt saat ini dan kursor (selanjutnya VD
) berubah ketika jendela terminal diubah ukurannya.
Ketika jendela terminal menyusut secara horizontal, ada dua cara bagi terminal untuk menangani garis panjang yang tidak lagi pas: reflow atau truncate .
Konten Terminal Sebelum menyusut:
Terminal mencerminkan teks saat menyusut:
Terminal memotong teks saat menyusut:
Strategi reflowing dapat mengubah ketinggian konten terminal. Jika konten tersebut terjadi di antara awal prompt saat ini dan kursor, ZSH akan mencetak prompt pada baris yang salah. Strategi pemotongan tidak pernah mengubah ketinggian konten terminal, sehingga tidak memicu masalah ini.
Mari kita lihat bagaimana masalah ini dimainkan dalam gerakan lambat. Kami akan mulai dengan meluncurkan zsh -f
dan menempelkan kode berikut:
function pause() { read -s }
functions -M pause 0
reset
print -l {1..3}
setopt prompt_subst
PROMPT= $' ${$((pause()))+}left>${(pl.$((COLUMNS-12))..-.)}<right n > '
Saat PROMPT
diperluas, itu memanggil pause
untuk membiarkan kita mengamati keadaan terminal. Inilah keadaan awalnya:
Zsh melacak posisi kursor relatif terhadap awal prompt saat ini. Dalam hal ini ia tahu bahwa kursor adalah satu baris di bawah ini. Saat kami menyusut jendela terminal, sepertinya ini:
Pada titik ini terminal mengirimkan SIGWINCH
ke Zsh untuk memberi tahu tentang perubahan dalam dimensi terminal. Perhatikan bahwa sinyal ini dikirim setelah konten terminal telah dicerminkan.
Ketika Zsh menerima SIGWINCH
, ia berusaha untuk menghapus prompt saat ini dan mencetaknya lagi. Ini pergi ke posisi di mana ia berpikir prompt saat ini adalah - satu baris di atas kursor (!) - Menghapus semua konten terminal yang mengikuti dan mencetak permintaan yang ditata ulang di sana. Namun, setelah pengubah Ulang Prompt tidak lagi satu baris di atas kursor. Dua baris di atas! Zsh akhirnya mencetak prompt baru satu baris terlalu rendah.
Dalam hal ini kami berakhir dengan konten sampah yang tidak diinginkan karena VD
telah meningkat . Saat Anda membuat jendela terminal lebih lebar, VD
juga dapat berkurang , yang akan menghasilkan prompt baru yang dicetak lebih tinggi dari yang dimaksudkan, berpotensi menghapus konten yang berguna dalam proses.
Berikut adalah beberapa contoh lagi di mana jendela terminal menyusut meningkatkan VD
.
prompt_subst
. Perhatikan bahwa kursor berada di bawah garis prompt (hit ESC-enter untuk mendapatkannya di sana).prompt_subst
, tidak ada prompt kanan. Di sini VD
pasti akan meningkat pada saat menyusutnya terminal karena baris perintah yang membungkus. Patch ZSH ini memperbaiki masalah pada beberapa terminal. Gagasan di balik tambalan adalah menggunakan kemampuan terminal sc
(Save Cursor) sebelum mencetak prompt dan rc
(kembalikan kursor) untuk memindahkan kursor kembali ke posisi asli ketika prompt perlu disegarkan.
Patch hanya berfungsi pada terminal yang mencerminkan posisi kursor yang disimpan bersama dengan teks ketika jendela terminal diubah ukurannya. Patch tidak memiliki efek yang dapat diamati pada terminal yang tidak mencerminkan teks pada ukuran (baik yang ditambal maupun yang tidak ditandingi ZSH berperilaku dengan benar) dan pada terminal yang merefleksikan teks tetapi bukan posisi kursor yang disimpan (baik yang ditambal maupun yang tidak ditandingi pendaftaran ulang zsh pada posisi yang tidak benar yang sama ). Dengan kata lain, tambalan memperbaiki masalah pengubah ukuran pada beberapa terminal sambil menjaga perilaku tidak berubah pada orang lain.
Ada dua pendekatan alternatif untuk menambal zsh yang mungkin bekerja pada pandangan pertama tetapi pada kenyataannya tidak:
sc
, gunakan kemampuan terminal u7
untuk menanyakan posisi kursor saat ini dan kemudian cup
untuk kembali ke sana. Ini tidak berhasil karena posisi absolut dari awal perubahan prompt saat ini ketika teks akan dicerminkan.VD
berdasarkan dimensi terminal baru sebelum mencoba menyegarkan prompt. Ini tidak berhasil karena Zsh tidak tahu apakah terminal mencerminkan teks atau memotongnya. 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
.