Powerlevel10k — тема для Zsh. Он подчеркивает скорость, гибкость и нестандартный опыт.
exec zsh
.p10k configure
, если мастер настройки не запускается автоматически. Введите p10k configure
для доступа к встроенному мастеру настройки прямо с вашего терминала.
Все стили, кроме Pure, функционально эквивалентны. Они отображают одну и ту же информацию и отличаются только представлением.
Мастер настройки создаст ~/.p10k.zsh
на основе ваших предпочтений. Дополнительную настройку подсказки можно выполнить, отредактировав этот файл. Он содержит множество комментариев, которые помогут вам перемещаться по параметрам конфигурации.
Совет : Установите рекомендуемый шрифт перед запуском p10k configure
, чтобы разблокировать все стили подсказок.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ:
Поиск неисправностей :
Когда вы нажмете ENTER , мгновенно появится следующее приглашение. С Powerlevel10k нет задержки. Если вы устанавливаете Cygwin на Raspberry Pi, cd
в репозиторий Linux Git и активируйте достаточно сегментов подсказок, чтобы заполнить четыре строки подсказок по обе стороны экрана... подождите, это просто безумие, и никто никогда этого не делает. Наверное, тоже невозможно. Дело в том, что подсказка Powerlevel10k всегда быстрая, что бы вы ни делали!
Обратите внимание, как эффект каждой команды мгновенно отражается в следующем приглашении.
Команда | Индикатор подсказки | Значение |
---|---|---|
timew start hack linux | ⌚ hack linux | отслеживание времени включено в timewarrior |
touch xy | ?2 | 2 неотслеживаемых файла в репозитории Git. |
rm COPYING | !1 | 1 неустановленное изменение в репозитории Git. |
echo 3.7.3 >.python-version | ? 3.7.3 | текущая версия Python в pyenv |
Другие темы Zsh, способные отображать ту же информацию, либо создают задержку подсказки, либо печатают подсказку, которая не отражает текущее состояние системы, а затем обновляют ее позже. С Powerlevel10k вы быстро получаете оперативную и актуальную информацию.
Часто задаваемые вопросы : Это действительно быстро?
Powerlevel10k понимает все параметры конфигурации Powerlevel9k.
Миграция с Powerlevel9k на Powerlevel10k — простой процесс. Все параметры конфигурации POWERLEVEL9K
по-прежнему будут работать. Подсказка будет выглядеть так же, как и раньше (почти), но будет намного быстрее (конечно).
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ :
Powerlevel10k может выдавать тот же запрос, что и Pure. Введите p10k configure
и выберите «Чистый стиль».
Вы по-прежнему можете использовать функции Powerlevel10k, такие как временные или мгновенные подсказки, в стиле Pure.
Чтобы настроить подсказку, отредактируйте ~/.p10k.zsh
. Powerlevel10k не распознает параметры конфигурации Pure, поэтому вам придется использовать POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
вместо PURE_CMD_MAX_EXEC_TIME=3
и т. д. Все соответствующие параметры находятся в ~/.p10k.zsh
. Этот файл содержит множество комментариев, которые помогут вам в нем ориентироваться.
Часто задаваемые вопросы: Какой стиль подсказок в мастере настройки лучше всего подходит?
Если ваш ~/.zshrc
загружает много плагинов или, возможно, только несколько медленных (например, pyenv или nvm), вы, возможно, заметили, что запуск Zsh занимает некоторое время.
Powerlevel10k может устранить задержку запуска Zsh , даже если она не вызвана темой .
Эта функция называется «Мгновенная подсказка» . Вам необходимо явно включить его через p10k configure
или вручную. Он делает то, что заявлено на упаковке — мгновенно печатает подсказку при запуске Zsh, позволяя вам начать печатать, пока плагины еще загружаются.
Другие темы увеличивают задержку запуска Zsh — некоторые значительно, другие немного. Powerlevel10k полностью удаляет его.
Если вам интересно, как работает Instant Prompt , см. этот раздел в zsh-bench.
Часто задаваемые вопросы: Как настроить мгновенную подсказку?
Поведение некоторых команд зависит от глобальной среды. Например, kubectl run ...
запускает образ в кластере, определенном текущим контекстом Kubernetes. Если вы часто меняете контекст между «prod» и «testing», возможно, вам захочется отобразить текущий контекст в командной строке Zsh. Если вы сделаете то же самое для учетных данных AWS, Azure и Google Cloud, приглашение будет довольно переполненным.
Введите «Показать по команде» . Эта функция позволяет отображать сегменты подсказок только в том случае, если они относятся к команде, которую вы в данный момент вводите.
Конфигурации, созданные p10k configure
по умолчанию включают показ по команде для нескольких сегментов подсказок. Вот соответствующий параметр для контекста 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 будет сокращать каждый запрос при принятии командной строки.
Временное приглашение значительно упрощает копирование и вставку серии команд из прокрутки терминала.
Совет : если вы включили временную подсказку, воспользуйтесь двухстрочной подсказкой. Вы получите дополнительное пространство для ввода команд без обычного недостатка уменьшенной плотности обратной прокрутки. Разреженное приглашение (с пустой строкой перед приглашением) также отлично работает в сочетании с временным приглашением.
Текущий рабочий каталог, пожалуй, самый важный сегмент подсказки. Powerlevel10k делает все возможное, чтобы выделить важные части и сократить их с наименьшей потерей информации, когда горизонтального пространства становится недостаточно.
Если полный каталог не помещается, самый левый сегмент усекается до самого короткого уникального префикса. В скринкасте ~/work
становится ~/wo
. Его нельзя было усечь до ~/w
потому что это было бы неоднозначно (при записи сеанса существовал ~/wireguard
). Следующий сегмент — projects
— превращается в p
, поскольку в ~/work/
больше ничего не начиналось с p
.
Сегменты каталога отображаются одним из трех цветов:
Совет : если вы скопируете и вставите усеченный каталог и нажмете TAB , он будет восстановлен до оригинала.
Устранение неполадок : каталог трудно увидеть в командной строке при использовании стиля Rainbow.
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 эластичная среда beanstalk |
azure | имя учетной записи Azure |
background_jobs | наличие фоновых заданий |
battery | состояние внутренней батареи и уровень заряда (да, батареи буквально включены) |
command_execution_time | продолжительность (время стены) последней команды |
context | пользователь@имя хоста |
cpu_arch | Архитектура процессора |
dir | текущий рабочий каталог |
direnv | статус direnv |
disk_usage | использование диска |
dotnet_version | версия для дотнета |
fvm | флаттер-среда из FVM |
gcloud | учетная запись и проект Google Cloud Cli |
goenv | среда go из goenv |
google_app_cred | учетные данные приложения Google |
go_version | Го-версия |
haskell_stack | версия Haskell из стека |
ip | IP-адрес и использование полосы пропускания для указанного сетевого интерфейса |
java_version | Java-версия |
jenv | среда Java из Jenv |
kubecontext | текущий контекст Kubernetes |
laravel_version | версия PHP-фреймворка Laravel |
load | загрузка процессора |
luaenv | среда lua из luaenv |
midnight_commander | Полуночный командирский снаряд |
nix_shell | индикатор оболочки nix |
nnn | оболочка ннн |
lf | оболочка lf |
chezmoi_shell | чезмойская оболочка |
nodeenv | Среда node.js от nodeenv |
nodenv | среда node.js от nodenv |
node_version | версия node.js |
nordvpn | статус соединения nordvpn |
nvm | среда node.js от nvm |
os_icon | логотип вашей ОС (apple для macOS, swirl для Debian и т. д.) |
package | name@version из package.json |
per_directory_history | Oh My Zsh локальный/глобальный индикатор истории каждого каталога |
perlbrew | Perl-версия от Perlbrew |
phpenv | среда PHP из phpenv |
php_version | PHP-версия |
plenv | среда Perl из Plenv |
prompt_char | многофункциональный символ подсказки; изменяется в зависимости от режима vi: ❯ , ❮ , V , ▶ для режима вставки, команды, визуального режима и замены соответственно; горит красным при ошибке |
proxy | общесистемный http/https/ftp-прокси |
public_ip | общедоступный IP-адрес |
pyenv | среда Python из pyenv |
ram | свободная оперативная память |
ranger | оболочка рейнджера |
yazi | оболочка язи |
rbenv | Ruby-среда из rbenv |
rust_version | версия Rusc |
rvm | Ruby-среда из RVM |
scalaenv | версия Scala от scalaenv |
status | код выхода последней команды |
swap | использованный обмен |
taskwarrior | счетчик задач TaskWarrior |
terraform | терраформировать рабочее пространство |
terraform_version | терраформированная версия |
time | текущее время |
timewarrior | статус отслеживания timewarrior |
todo | задачи |
toolbox | имя набора инструментов |
vcs | Статус репозитория Git |
vim_shell | оболочка vim ( :sh ) |
virtualenv | среда Python от venv |
vi_mode | режим vi (вам это не нужно, если вы включили Prompt_char) |
vpn_ip | индикатор виртуальной частной сети |
wifi | Скорость Wi-Fi |
xplr | оболочка xplr |
Если нет сегмента подсказки, выполняющего то, что вам нужно, реализуйте свой собственный. Powerlevel10k предоставляет общедоступный API для определения сегментов, которые работают так же быстро и гибко, как и встроенные.
В Linux вы можете получить текущую температуру процессора, прочитав /sys/class/thermal/thermal_zone0/temp
. В скринкасте показано, как определить сегмент подсказки для отображения этого значения. После определения сегмента вы можете использовать его как любой другой сегмент. Все стандартные параметры настройки будут работать для него «из коробки».
Введите p10k help segment
для справки.
Примечание . Если вы измените параметры POWERLEVEL9K_*
в уже инициализированной интерактивной оболочке (в отличие от редактирования ~/.p10k.zsh
), изменения могут не вступить в силу немедленно. Чтобы применить изменения, вызовите p10k reload
. Установка POWERLEVEL9K_DISABLE_HOT_RELOAD=false
устраняет необходимость p10k reload
, но приводит к незначительному замедлению подсказки.
Совет . Добавляйте к именам своих сегментов префикс my_
, чтобы избежать конфликтов с будущими версиями Powerlevel10k.
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 подберет их и предоставит вам тот же пользовательский интерфейс, к которому вы привыкли. См. Совместимость с Powerlevel9k.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ :
Устранение неполадок : дополнительные или отсутствующие пробелы в командной строке по сравнению с Powerlevel9k.
Powerlevel10k не требует специальных шрифтов, но может использовать их, если они доступны. Он хорошо работает с Nerd Fonts, Source Code Pro, Font Awesome, Powerline и даже со стандартными системными шрифтами. Полный выбор вариантов стиля доступен только при использовании Nerd Fonts.
? Рекомендуемый шрифт : шрифт Meslo Nerd, исправленный для Powerlevel10k. ?
Великолепный моноширинный шрифт, разработанный Джимом Лайлсом для Bitstream, настроенный им же для Apple, дополнительно настроенный Андре Бергом и, наконец, исправленный вашим покорным слугой с помощью настроенных сценариев, первоначально разработанных Райаном Л. Макинтайром из Nerd Fonts. Содержит все глифы и символы, которые могут понадобиться Powerlevel10k. Проверено в боях на десятках различных терминалов во всех основных операционных системах.
Часто задаваемые вопросы : Как был создан рекомендуемый шрифт?
Если вы используете iTerm2 или Termux, p10k configure
может установить для вас рекомендуемый шрифт. Просто ответьте Yes
, когда вас спросят, устанавливать ли шрифт Meslo Nerd .
Если вы используете другой терминал, продолжите установку шрифта вручную. ?
MesloLGS NF
доступным для всех приложений в вашей системе.p10k configure
и ответьте Yes
на вопрос, устанавливать ли шрифт Meslo Nerd . Альтернативно откройте iTerm2 → Настройки → Профили → Текст и установите для шрифта значение MesloLGS NF
.MesloLGS NF
.fontFamily
в module.exports.config
на 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
на вопрос, устанавливать ли шрифт Meslo Nerd .config
, перейдите в раздел «Внешний вид» , нажмите « Добавить новый шрифт» , нажмите «Открыть галерею» , выберите MesloLGS NF.css , нажмите «Импорт» и введите exit
на главном экране, чтобы перезагрузить шрифт.MesloLGS NF
.MesloLGS NF Regular
. Выйдите из диалогового окна «Настройки», нажав «Закрыть» .MesloLGS NF Regular
. Выйдите из диалогового окна «Настройки», нажав «Закрыть» .MesloLGS NF
. Если у вас есть сеансы , вам необходимо изменить шрифт в каждом из них через «Настройки» → щелкните правой кнопкой мыши по отдельному сеансу → «Редактировать сеанс» → «Настройки терминала» → «Настройки шрифта» .MesloLGS NF Regular
. Чтобы изменить шрифт для подключений к удаленному хосту, перейдите в «Настройки» → «Параметры терминала» → «Внешний вид» и измените «Шрифт: в пользовательском интерфейсе терминала» на MesloLGS NF Regular
.MesloLGS NF
.MesloLGS NF Regular
.MesloLGS NF
и нажмите «ОК» . Нажмите ОК , чтобы сохранить профиль. Выберите новый профиль и нажмите «Установить по умолчанию» .~/.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, чтобы расширить список!
Попробуйте Powerlevel10k в Docker. Вы можете безопасно вносить любые изменения в файловую систему во время тестирования темы. Как только вы выйдете из 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, чтобы получить доступ ко всем стилям приглашений.
Совет . Запустите p10k configure
в Docker, чтобы попробовать другой стиль приглашения.
Powerlevel10k выпускается под лицензией MIT.
$HOME/.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 |
Zplug | zplug update |
Зген | zgen update |
Zплагин | zplugin update |
Зинит | zinit update |
Зи | zi update |
Зап | zap update |
Домашнее пиво | brew update && brew upgrade |
Арч Линукс | yay -S --noconfirm zsh-theme-powerlevel10k-git |
Альпийский Линукс | apk update && apk upgrade |
ВАЖНО : Перезапустите Zsh после обновления Powerlevel10k. Не используйте source ~/.zshrc
.
Удалите все ссылки на «p10k» из ~/.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
А это внизу:
[[ ! -f ~ /.p10k.zsh ]] || source ~ /.p10k.zsh
Они добавляются мастером настройки. Удалите их.
Удалите все ссылки на «powerlevel10k» из ~/.zshrc
, ~/.zpreztorc
и ~/.zimrc
(некоторые из этих файлов могут отсутствовать — это нормально). Эти ссылки были добавлены вами вручную при установке 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 |
Zplug | zplug clean |
Зген | zgen reset |
Zплагин | zplugin delete romkatv/powerlevel10k |
Зинит | zinit delete romkatv/powerlevel10k |
Зи | zi delete romkatv/powerlevel10k |
Зап | zsh -ic 'zap clean' |
Домашнее пиво | brew uninstall powerlevel10k |
Арч Линукс | yay -R --noconfirm zsh-theme-powerlevel10k-git |
Альпийский Линукс | apk del zsh-theme-powerlevel10k |
Перезапустите Зш. Не используйте 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
с компьютера, подключенного к Интернету, на компьютер без доступа к Интернету.source ~/powerlevel10k/powerlevel10k.zsh-theme
в ~/.zshrc
на машине без доступа в Интернет: 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 не контролирует содержимое терминала или цвета за пределами этих областей.
Уровень мощности 10k не влияет на:
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
и выбрав соответствующую опцию на экране мгновенной подсказки . Альтернативно вы можете найти POWERLEVEL9K_INSTANT_PROMPT
в существующем файле ~/.p10k.zsh
и изменить его значение там.
Примечание . Для мгновенного запроса требуется 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, вам нужно добавить одну строку над этим блоком и одну строку под ним.
(( ${+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 при использовании мгновенной подсказки?
Вы можете экспортировать GPG_TTY
в любое место ~/.zshrc
:
export GPG_TTY= $TTY
Это работает независимо от того, используете ли вы мгновенную подсказку или нет. Это работает, даже если вы не используете powerlevel10k. В качестве дополнительного бонуса это намного быстрее, чем обычно используемый export GPG_TTY=$(tty)
.
Связанный вопрос : Как инициализировать direnv при использовании мгновенной подсказки?
При использовании стиля Lean, Classic или Rainbow статус 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
не отображается в приглашении? При использовании Lean, Classic или Rainbow Style, ~/.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= ' ~ '
Чтобы увидеть статус GIT для $HOME/.git
в приглашении, откройте ~/.p10k.zsh
и удалите POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN
.
TL; DR: Когда статус GIT в подсказке выявлен, это означает, что PowerLevel10K в настоящее время вычисляет современный статус GIT в фоновом режиме. Подсказка будет автоматически обновляться, когда это вычисление будет завершено.
Когда ваш текущий каталог находится в репозитории GIT, PowerLevel10K вычисляет современный статус GIT после каждой команды. Если репозиторий большой, или машина медленная, это вычисление может занять много времени. Если он занимает более 10 миллисекунд (настраивается через POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS
), PowerLevel10K отображает последний известный статус GIT в сером и продолжает вычислять современный статус GIT в фоновом режиме. Когда вычисление завершается, Powerlevel110K обновляется с новой информацией, на этот раз с цветным статусом GIT.
При использовании радужного стиля статус GIT отображается как черный на сером, пока он все еще вычисляется. В зависимости от терминальной цветовой палитры, это может быть трудно прочитать. В этом случае вы можете захотеть изменить цвет фона на что -то более легкое для более контрастирования. Чтобы сделать это, Open ~/.p10k.zsh
Поиск POWERLEVEL9K_VCS_LOADING_BACKGROUND
, расстроен, если он прокомментирован, и измените значение.
typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=244
Введите source ~/.p10k.zsh
, чтобы применить свои изменения к текущему сеансу ZSH.
Связанный : как мне изменить приглашенные цвета?
При использовании Lean, Classic или Rainbow Style, подсказка показывает username@hostname
, когда вы вошли в систему как корень или через SSH. При выходе на свою локальную машину в качестве обычного пользователя мало значений, показывая username
или hostname
. Таким образом, отсутствие username@hostname
в вашей подсказке является признаком того, что вы работаете локально и что вы не корни. Вы можете изменить это, однако.
Open ~/.p10k.zsh
. Близко к вершине вы можете увидеть наиболее важные параметры, которые определяют, какие сегменты показаны в вашей подсказке. Все в целом полезные оперативные сегменты перечислены там. Некоторые из них включены, другие комментируются. Один из них представляет вам интерес.
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
, чтобы переключить отображение сегмента приглашения между всегда и по команде . Это похоже на kubeon
/ kubeoff
от 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
}
Вызовите эту функцию, набрав kube-toggle
. Вы также можете связать его с ключом, добавив еще две строки в ~/.zshrc
:
zle -N kube-toggle
bindkey ' ^] ' kube-toggle # ctrl-] to toggle kubecontext in powerlevel10k prompt
Вы можете либо изменить цветовую палитру, используемую вашим терминалом, либо установить цвета с помощью параметров конфигурации Powerlevel10K.
Как именно вы меняете цветовую палитру терминала (то есть цветовая схема или тема), зависит от типа терминала, который вы используете. Посмотрите в настройках/настройках терминала или проконсультируйтесь с документацией.
Когда вы меняете цветовую палитру терминала, она обычно влияет на только первые 16 цветов, пронумерованных от 0 до 15. Введите p10k configure
и выберите Rainbow , Lean → 8 Colors или Pure → Original . Другие стили используют более высокие цвета, поэтому они выглядят одинаково в любой терминальной цветовой палитре.
Open ~/.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, вы можете использовать 24-разрядные цвета в формате #RRGGBB
в дополнение к пронумерованным цветам.
typeset -g POWERLEVEL9K_TIME_FOREGROUND= ' #FF0000 '
Связанный:
По умолчанию терминал VSCODE может произвольно заменить цвет переднего плана по вашему выбору другим цветом. Такое поведение можно отключить в настройках VSCODE.
PowerLevel10k использует GitStatus в качестве бэкэнда, стоящей за подсказкой vcs
; Gitstatus порождает gitstatusd
и zsh
. Смотрите Gitstatus для деталей. PowerLevel10K также может породить zsh
для выполнения вычислений без заблокирования. Чтобы избежать опасности безопасности, эти фоновые процессы не разделяются различными интерактивными оболочками. Они автоматически заканчиваются, когда родительский процесс zsh
завершается или запускает exec(3)
.
Нет, Powerlevel10k всегда быстрая, с любой конфигурацией, которую вы бросаете в нее. Если у вас есть заметная задержка при использовании Powerlevel10K, откройте проблему.
Да. Смотрите Zsh-bench.
Powerlevel10k был раздроблен из Powerlevel9K в марте 2019 года после недельной дискуссии в PowerLevel9K#1170. Powerlevel9k уже был зрелым проектом с большой пользовательской базой и циклом выпуска, измеренным за месяцы. PowerLevel10K был развернут для использования по улучшению производительности и новым функциям в гораздо более высоком темпе.
Powerlevel9k и Powerlevel10k являются независимыми проектами. При использовании одного вы не должны устанавливать другой. Проблемы должны быть поданы против проекта, который вы фактически используете. Нет лиц, которые имеют права в обеих репозиториях. Все исправления ошибок и новые функции, предпринятые для репозитория Powerlevel9K, переносит в PowerLevel10K.
Со временем практически весь код в Powerlevelc10K был переписан. В настоящее время нет значимого совпадения между реализациями PowerLevel9K и PowerLevel10K.
PowerLevel10K стремится поддерживать обратную совместимость со всеми конфигурациями на неопределенный срок. Это обязательство охватывает все параметры конфигурации, распознаваемые PowerLevel9K (см. Совместимость PowerLevel9K) и дополнительные параметры, которые понимает только PowerLevel10K. Названия всех параметров в Powerlevel10K начинаются с POWERLEVEL9K_
для согласованности.
Почти. Есть несколько различий.
git
VCS включен в PowerLevel10K. Если вам нужны svn
и hg
, добавьте их в POWERLEVEL9K_VCS_BACKENDS
. Эти бэкэнды еще не оптимизированы в PowerLevel10K, поэтому их разрешение сделает быстрое быстрое .POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY=true
.POWERLEVEL9K_MODE
перед тем, как найти тему. Этот параметр игнорируется PowerLevel9K, но удостоен чести PowerLevel10K. Если вы хотите, чтобы ваша подсказка выглядела в PowerLevel10K так же, как в PowerLevel9K, удалите POWERLEVEL9K_MODE
.ZLE_RPROMPT_INDENT
. В результате правая подсказка в Powerlevel10K может иметь дополнительное место в конце по сравнению с PowerLevel9K. Установите ZLE_RPROMPT_INDENT=0
если вы не хотите этого места. Более подробная информация в устранении неполадок.POWERLEVEL9K_LEGACY_ICON_SPACING=true
чтобы получить то же расстояние, что и в Powerlevel9K. Более подробная информация в устранении неполадок.Если вы заметите какие -либо другие изменения в внешнем виде при переключении с Powerlevel9K на PowerLevel10K, пожалуйста, откройте проблему.
Существует столько мнений о том, что представляет собой лучшее, как и люди. В основном это сводится к личным предпочтениям. Однако есть несколько скрытых последствий различных вариантов.
Чистый стиль является точной репликацией чистой темы ZSH. Он существует, чтобы облегчить миграцию для пользователей этой темы. Если вы не один из них, выберите Lean Style Over Pure.
Если вы хотите ограничить предварительные цвета в выбранной цветовой палитре терминала (скажем, соляризованной темной ), используйте Rainbow , Lean → 8 Colors или Pure → Original . Другие стили используют фиксированные цвета и, таким образом, выглядят одинаково в любой терминальной цветовой палитре.
Все стили, кроме Pure, имеют возможность использовать ASCII Charset. Подсказка будет выглядеть менее красивой, но будет правильно отображаться со всеми шрифтами и во всех местах.
Если вы включите переходную подсказку, воспользуйтесь преимуществами двухстрочной подсказки. Вы получите преимущество дополнительного места для набора команд без обычного недостатка сниженной плотности прокрутки. Начать все команды с одного и того же смещения также хорошо.
Точно так же, если вы включите переходную подсказку, Sparse Risp (с пустой линией перед подсказкой) является отличным выбором.
Если вы используете Vi Keymap, выберите «Запрос» с prompt_char
в нем (показан как зеленый ❯
в мастере). Этот символ меняется в зависимости от режима VI: ❯
, ❮
, V
, ▶
Для вставки, команды, визуального и замены режима соответственно. Когда команда не удается, символ становится красным. Lean Style всегда имеет prompt_char
в нем. Радуга и классические стили имеют его только в двухстрочной конфигурации без левой кадры.
Если вы цените горизонтальное пространство или предпочитаете минималистскую эстетику:
Примечание . Вы можете запускать мастер конфигурации столько раз, сколько захотите. Тип p10k configure
чтобы попробовать новый стиль быстрого приглашения.
Используйте эту конфигурацию.
Вы можете загрузить его, сохранить как ~/.p10k.zsh
и source ~/.p10k.zsh
от ~/.zshrc
, либо источник p10k-robbyrussell.zsh
непосредственно из вашего клонированного хранилища powerlevel10k
.
Нет. Когда вы нажимаете Enter , и команда, которую вы набрали, начинает работать, статус ошибки еще не известен, поэтому ее нельзя показать в приглашении. Когда команда завершается, статус ошибки становится известно, но уже невозможно обновить приглашение для этой команды. Вот почему статус ошибки для каждой команды отражается в следующей подсказке.
Для получения подробной информации см. Этот пост в /r /zsh.
ZSH 5.3 или новее должен работать. Быстрый запуск требует ZSH> = 5,4.
Все скриншоты и анимированные GIF -файлы были записаны в терминале GNOME с рекомендуемым шрифтом и темной цветовой палитрой Tango с пользовательским цветом фона ( #171A1B
вместо #2E3436
- в два раза выше).
Синтаксическое выделение, где присутствовало, было предоставлено ZSH-синтаксис-загадкой.
Рекомендуемый шрифт является продуктом многих людей. Его происхождение - Bitstream Vera Sans Mono , которая родила Menlo , которая, в свою очередь, породила Месло . Наконец, дополнительные глифы были добавлены в Месло со сценариями, разбитыми от шрифтов. Последний шрифт выпускается в соответствии с Условиями лицензии Apache.
Meslolgs NF Font может быть воссоздан с помощью следующей команды (требуется git
и docker
):
git clone --depth=1 https://github.com/romkatv/nerd-fonts.git
cd nerd-fonts
./build ' Meslo/S/* '
Если все пойдет хорошо, четыре файла 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
, чтобы проверить, был ли PowerLevel10k загружен.typeset -p P9K_VERSION
добивается успеха и печатает что -то вроде typeset P9K_VERSION=1.19.14
(версия может быть другой), удалите следующую строку из ~/.zshrc
: 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
. Если это выглядит как обычный ?
, это нормально. Это означает, что у вас есть не отрыванные файлы в текущем репозитории GIT. Введите git status
чтобы увидеть эти файлы. Вы можете изменить этот символ или вообще отключить отображение незащищенных файлов. Поиск untracked files
в ~/.p10k.zsh
.
FAQ : Что означают разные символы в статусе GIT?
Вы также можете получить странно выглядящий вопрос, если в шрифте вашего терминала отсутствует шрифт вашего терминала. См. Иконки, глифы или символы Powerline не визуаливы.
Перезапустите свой терминал, установите рекомендуемый шрифт и запустите p10k configure
.
На скриншоте есть три несовершенства. Слева направо:
Темы ZSH не имеют контроля над пикселем над контентом терминала. Все, что вы видите на экране, сделано из персонажей Monospace. Сегмент подсказок белой линии питания изготовлен из текста на белом фоне, за которым следует U+E0B0 (правый треугольник).
Если подсказка Powerlevel10K имеет недостатки вокруг символов Powerline, вы увидите точно одинаковые недостатки со всеми темами Powerline (Agnoster, Powerlevel9k, Powerline и т. Д.)
Есть несколько вещей, которые вы можете попытаться справиться с этими недостатками:
Более радикальным решением является переключение на приглашение стиля без фона. Введите p10k configure
и выберите Lean . Этот стиль имеет современный легкий вид. В качестве бонуса, он не страдает от недостатка недостатков, которые обязывают подсказку в стиле Powerline.
Тип echo 'u276F'
. Если вы получите ошибку, в которой говорится «ZSH: персонаж не в диапазоне», ваш локаль не поддерживает UTF-8. Вам нужно это исправить. Если вы запускаете ZSH через SSH, посмотрите это. Если вы запускаете ZSH локально, Google «Установите локал UTF-8 в вашей ОС ».
Тип echo 'u276F'
. Если вы получите ошибку с надписью «ZSH: персонаж не в диапазоне», см. Предыдущий раздел.
Если команда echo
напечатает ❯
, но курсор все еще не в том месте, установите рекомендуемый шрифт и запустите p10k configure
.
Если это не помогает, добавьте unset ZLE_RPROMPT_INDENT
внизу ~/.zshrc
.
Все еще есть проблемы? Запустите следующую команду, чтобы диагностировать проблему:
() {
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}
Ищите %{...%}
а Backslash сбегает в результате вывода. Если есть таковые, они являются вероятными виновниками. Откройте проблему, если вы застряли.
+-----------------------------+
| romka@adam ✓ ~/powerlevel10k |
+-----------------------------+
Обычно это вызвано терминальной ошибкой или неправильной конфигурацией, которая заставляет его печатать символы неоднозначной ширины как двойную ширину вместо одной ширины. Например, эта проблема.
+------------------------------+
| romka@adam ✓~/powerlevel10k |
+------------------------------+
Обратите внимание, что эта подсказка отличается от оригинала, так как в нем отсутствует место после галочки.
Это может быть вызвано низкой ошибкой в macOS. Смотрите эту проблему.
Это также может произойти, если подсказка содержит глифы, обозначенные как «широкие» в стандарте Unicode, а ваш терминал неправильно отображает их как не широкие. Терминалы, страдающие от этого ограничения, включают Конле, Hyper и интегрированный терминал VSCODE. Решение состоит в том, чтобы использовать другой терминал или удалить все широкие глифы из приглашения.
+--------------------------------+
| romka@adam ✓ ~/powerlevel10k |
+--------------------------------+
Это может быть вызвано неправильной локацией. Смотрите эту проблему.
Смотрите курсор не в том месте.
Смотрите курсор не в том месте.
Когда запускается Powerlevel10K, он автоматически запускает p10k configure
, если параметры POWERLEVEL9K_*
не определены. Основываясь на вашем выборе стиля быстрого стиля, мастер конфигурации создает ~/.p10k.zsh
с кучей параметров POWERLEVEL9K_*
в нем и добавляет строку в ~/.zshrc
для поиска этого файла. В следующий раз, когда вы запустите ZSH, мастер конфигурации не должен работать автоматически. Если это так, это означает, что оценка ~/.zshrc
преждевременно завершается, прежде чем она достигнет линии, которая источна ~/.p10k.zsh
. Это чаще всего случается из -за синтаксических ошибок в ~/.zshrc
. Эти ошибки скрываются на экране мастера конфигурации, поэтому вы их не замечаете. Когда вы выходите из мастера конфигурации, ищите сообщения об ошибках. Вы также можете использовать POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true zsh
для запуска ZSH без автоматического запуска мастера конфигурации. Как только вы сможете увидеть ошибки, исправьте ~/.zshrc
, чтобы избавиться от них.
Если версия ZSH ниже 5.7.1 или переменная COLORTERM
среды не является ни 24bit
, ни truecolor
, мастер конфигурации не будет предлагать чистый стиль с шикарной цветовой схемой. Исправление : установите ZSH> = 5.7.1 и используйте терминал с поддержкой TrueColor. Проверьте с помощью print -P '%F{#ff0000}red%f'
.
Если терминал может отображать менее 256 цветов, мастер конфигурации предварительно выбран в стиле Lean с 8 цветами. Все остальные стили требуют не менее 256 цветов. Исправлено : используйте терминал с 256 опорой цветной поддержки и убедитесь, что переменная TERM
среды установлена правильно. Проверьте с помощью print $terminfo[colors]
.
Если в системе нет Locale UTF-8, мастер конфигурации не будет предлагать стили быстрого приглашения, которые используют символы Unicode. Исправление : установите локал UTF-8. Проверьте с помощью locale -a
.
Еще один случай, в котором мастер конфигурации может не предлагать стили подсказки Unicode, заключается в том, что опция оболочки MULTIBYTE
отключена. Исправлено : включите опцию MULTIBYTE
, или, скорее, не отключите ее (эта опция включена в ZSH по умолчанию). Проверьте с помощью print -r -- ${options[MULTIBYTE]}
.
Когда MULTIBYTE
включен и доступен локаль UTF-8, первые несколько вопросов, заданных мастером конфигурации, возможностей оценки терминала шрифта. Если ваши ответы указывают на то, что некоторые глифы неправильно рендерируют, мастер конфигурации не предложит их стили, которые их используют. Исправление : перезапустите терминал и установите рекомендуемый шрифт. Проверьте, запустив p10k configure
и проверив, что все глифы рендеринг правильно.
После загрузки рекомендуемого шрифта вы можете установить его так же, как и любой другой шрифт. Google "Как установить шрифты на вашу ОС ".
tl; dr: добавить ZLE_RPROMPT_INDENT=0
и POWERLEVEL9K_LEGACY_ICON_SPACING=true
to ~/.zshrc
, чтобы получить те же интервалы подсказок, что и в Powerlevel9K.
При использовании Powerlevel10K с конфигурацией PowerLevel9K вы можете получить дополнительные места в приглашении здесь и там. Они бывают двух вкусов.
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. Если вы заметите визуальные артефакты в приглашении или в неправильной позиции курсора, попробуйте удалить ZLE_RPROMPT_INDENT
из ~/.zshrc
.
tl; dr: добавить POWERLEVEL9K_LEGACY_ICON_SPACING=true
to ~/.zshrc
, чтобы получить такое же расстояние вокруг значков, что и в Powerlevel9K.
Расстояние вокруг значков в PowerLevel9K непоследователен.
Это несоответствие является постоянным источником раздражения, поэтому оно было зафиксировано в Powerlevelc10K. Вы можете добавить POWERLEVEL9K_LEGACY_ICON_SPACING=true
TO ~/.zshrc
, чтобы получить такое же расстояние вокруг значков, что и в PowerLevel9K.
Примечание. Не очень хорошая идея, чтобы определить POWERLEVEL9K_LEGACY_ICON_SPACING
при использовании p10k configure
.
source ~/.zshrc
Почти всегда плохая идея запускать source ~/.zshrc
, независимо от того, используете ли вы Powerlevel10k или нет. Эта команда может привести к случайным ошибкам, неправильному коду и прогрессивному замедлению 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
. Удалите любую другую команду, которая устанавливает такую theme
, как zstyle :prezto:module:prompt theme powerlevel9k
.~/.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_FOREGROUND
, POWERLEVEL9K_DIR_SHORTENED_FOREGROUND
, POWERLEVEL9K_DIR_ANCHOR_FOREGROUND
и POWERLEVEL9K_DIR_ANCHOR_BOLD
. Вы можете найти их в ~/.p10k.zsh
.Связанный : неправильный цвет переднего плана в терминале VSCODE.
По умолчанию терминал VSCODE может произвольно заменить цвет переднего плана по вашему выбору другим цветом. Такое поведение можно отключить в настройках VSCODE.
Когда вы изменяете размер окна терминала горизонтально взад -вперед несколько раз, вы можете увидеть эту уродливую картину.
TL; DR: этот вопрос возникает, когда терминал наносит приглашение ZSH при изменении размера. Это не специфично для Powerlevel10K. Смотрите смягчение.
Примечание. В этом разделе использовался, что проблема вызвана ошибкой в ZSH. Хотя это правда, что во многих обстоятельствах можно избежать проблемы, изменяя ZSH, это не может быть полностью решено таким образом. Таким образом, несправедливо завязать вину на ZSH.
Проблема проявляется, когда вертикальное расстояние между началом текущей подсказки и курсором (впредь VD
) изменяется при изменении окна терминала.
Когда окно терминала сжимается по горизонтали, у терминала есть два способа обработки длинных линий, которые больше не подходят: отрабатывают или усекнут .
Контент терминала перед сжиманием:
Терминальные перегорают текст при сжимании:
Терминал усекает текст при сжимании:
Стратегия отражения может изменить высоту терминального содержания. Если такой контент оказался между началом текущей подсказки и курсором, 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 отслеживает позицию курсора относительно начала текущей подсказки. В этом случае он знает, что курсор находится в одной строке ниже. Когда мы сокращаем окно терминала, это выглядит так:
В этот момент терминал отправляет SIGWINCH
в ZSH, чтобы уведомить его об изменениях в измерениях терминала. Обратите внимание, что этот сигнал отправляется после того, как содержание терминала будет отражено.
Когда ZSH получает SIGWINCH
, он пытается стереть текущую подсказку и распечатать его заново. Он идет в позицию, в которой, по его мнению, текущая подсказка - одна строка над курсором (!) - стирает весь контент терминала, который следует, и печатает повторную подсказку. Однако после изменения размера приглашение больше не является одной линией над курсором. Это две строки выше! ZSH в конечном итоге печатает новую подсказку, слишком низкую.
В этом случае мы получили нежелательный мусорный контент, потому что VD
увеличился . Когда вы делаете более шире окна терминала, VD
также может уменьшаться , что приведет к тому, что новая подсказка будет напечатана выше, чем предполагалось, потенциально стирает полезный контент в процессе.
Вот еще несколько примеров, когда сокращение окна терминала увеличивало VD
.
prompt_subst
. Обратите внимание, что курсор находится под линией подсказки (ударите ESC-Enter, чтобы получить его там).prompt_subst
, нет правильного приглашения. Здесь VD
обязательно увеличится при сокращении терминала из -за обертывания командной строки. Этот патч ZSH решает проблему на некоторых терминалах. Идея, стоящая за патчем, состоит в том, чтобы использовать возможность терминала sc
(Save Cursor) перед печати и rc
(Cersore Cursor) для перемещения курсора обратно в исходное положение, когда необходимо обновить подсказку.
Патч работает только на терминалах, которые сэтапно сохранили позицию курсора вместе с текстом, когда окно терминала изменяется. Патч не оказывает наблюдаемого влияния на терминалы, которые не обрабатывают текст при изменении размера (как исправленные, так и непревзойденные ZSH ведут себя правильно), так и на терминалы, которые обрабатывают текст, но не сохраненная позиция курсора (как исправленная, так и непревзойденная ZSH RedRaw ). Другими словами, патч исправляет проблему изменения размера на некоторых терминалах, сохраняя при этом поведение неизменным для других.
Есть два альтернативных подхода к исправлению ZSH, которые могут показаться на первый взгляд, но на самом деле нет:
sc
используйте возможность терминала u7
, чтобы запросить текущую позицию курсора, а затем cup
к нему. Это не работает, потому что абсолютная позиция начала текущей подсказки изменяется, когда текст получает оттенок.VD
на основе новых измерений терминала. This doesn't work because Zsh doesn't know whether terminal reflows text or truncates it. If Zsh could somehow know that the terminal reflows text, this approach still wouldn't work on terminals that continuously reflow text and rapid-fire SIGWINCH
when the window is being resized. In such environment real terminal dimensions go out of sync with what Zsh thinks the dimensions are.There is no ETA for the patch making its way into upstream Zsh. See discussion.
There are a few mitigation options for this issue.
POWERLEVEL9K_TERM_SHELL_INTEGRATION=true
in ~/.p10k.zsh
.POWERLEVEL9K_SHOW_RULER=false
.POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '
.POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX=''
, POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX=''
and POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX=''
.POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
. Right prompt on the last prompt line will cause resizing issues only when the cursor is below it. This isn't very common, so you might want to keep some elements in POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
provided that none of them are succeeded by newline
.When using Konsole with a non-monospace font, icons may be cut off on the right side. Here "non-monospace" refers to any font with glyphs wider than a single column, or wider than two columns for glyphs designated as "wide" in the Unicode standard.
The last line on the screenshot shows a cut off Arch Linux logo.
There are several mitigation options for this issue.
os_icon
prompt segment gets cut off, open ~/.p10k.zsh
, search for POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION
and change it as follows: typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION= ' ${P9K_CONTENT} ' # extra space at the end
~/.p10k.zsh
: typeset -g POWERLEVEL9K_LINUX_ARCH_ICON= ' Arch ' # plain "Arch" in place of a logo
os_icon
prompt segment gets cut off, open ~/.p10k.zsh
and remove os_icon
from POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
and POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
.Note : Non-monospace fonts are not officially supported by Konsole.
Some fonts have this incorrect dotted icon in bold typeface. There are two ways to fix this issue.
~/.p10k.zsh
, search for POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION
and remove %B
from its value. typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION= ' ${P9K_CONTENT} ' # not bold
Powerlevel10k uses gitstatusd to inspect the state of git repositories. The project relies on the libgit2 library, which has some gaps in its implementation. Under some conditions, this may result in discrepancies between the real state of a git repository (reflected by git status
) and what gets shown in the Powerlevel10k prompt.
Most notably, libgit2 does not support skipHash
. If you see incorrect git status in prompt, run git config -l
and check whether skipHash
is enabled. If it is, consider disabling it. Keep in mind that skipHash
may be implicitly enabled when activating certain git features, such as manyFiles
.