Powerlevel10k é um tema para Zsh. Ele enfatiza velocidade, flexibilidade e experiência pronta para uso.
exec zsh
.p10k configure
se o assistente de configuração não iniciar automaticamente. Digite p10k configure
para acessar o assistente de configuração integrado diretamente do seu terminal.
Todos os estilos, exceto Pure, são funcionalmente equivalentes. Eles exibem as mesmas informações e diferem apenas na apresentação.
O assistente de configuração cria ~/.p10k.zsh
com base em suas preferências. A personalização adicional do prompt pode ser feita editando este arquivo. Possui muitos comentários para ajudá-lo a navegar pelas opções de configuração.
Dica : Instale a fonte recomendada antes de executar p10k configure
para desbloquear todos os estilos de prompt.
PERGUNTAS FREQUENTES:
Solução de problemas :
Quando você pressiona ENTER , o próximo prompt aparece instantaneamente. Com Powerlevel10k não há atraso imediato. Se você instalar o Cygwin no Raspberry Pi, cd
em um repositório Linux Git e ative segmentos de prompt suficientes para preencher quatro linhas de prompt em ambos os lados da tela... espere, isso é uma loucura e ninguém nunca faz isso. Provavelmente impossível também. A questão é que o prompt do Powerlevel10k é sempre rápido, não importa o que você faça!
Observe como o efeito de cada comando é refletido instantaneamente no próximo prompt.
Comando | Indicador de alerta | Significado |
---|---|---|
timew start hack linux | ⌚ hack linux | rastreamento de tempo ativado no timewarrior |
touch xy | ?2 | 2 arquivos não rastreados no repositório Git |
rm COPYING | !1 | 1 mudança não planejada no repositório Git |
echo 3.7.3 >.python-version | ? 3.7.3 | a versão atual do python em pyenv |
Outros temas Zsh capazes de exibir as mesmas informações produzem atraso de prompt ou imprimem prompt que não reflete o estado atual do sistema e depois o atualizam mais tarde. Com o Powerlevel10k você obtém informações rápidas e atualizadas.
FAQ : É realmente rápido?
Powerlevel10k entende todos os parâmetros de configuração do Powerlevel9k.
A migração do Powerlevel9k para o Powerlevel10k é um processo simples. Todos os parâmetros de configuração POWERLEVEL9K
ainda funcionarão. O prompt terá a mesma aparência de antes (quase), mas será muito mais rápido (certamente).
PERGUNTAS FREQUENTES :
Powerlevel10k pode produzir o mesmo prompt que Pure. Digite p10k configure
e selecione Estilo puro .
Você ainda pode usar os recursos do Powerlevel10k, como prompt transitório ou prompt instantâneo, ao usar o estilo Pure.
Para personalizar o prompt, edite ~/.p10k.zsh
. Powerlevel10k não reconhece parâmetros de configuração Pure, então você precisará usar POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
em vez de PURE_CMD_MAX_EXEC_TIME=3
, etc. Todos os parâmetros relevantes estão em ~/.p10k.zsh
. Este arquivo contém muitos comentários para ajudá-lo a navegar por ele.
FAQ: Qual é o melhor estilo de prompt no assistente de configuração?
Se o seu ~/.zshrc
carrega muitos plug-ins, ou talvez apenas alguns lentos (por exemplo, pyenv ou nvm), você deve ter notado que leva algum tempo para o Zsh iniciar.
Powerlevel10k pode remover o atraso de inicialização do Zsh , mesmo que não seja causado por um tema .
Esse recurso é chamado de Prompt Instantâneo . Você precisa habilitá-lo explicitamente por meio p10k configure
ou manualmente. Ele faz o que diz na lata - imprime o prompt instantaneamente na inicialização do Zsh, permitindo que você comece a digitar enquanto os plug-ins ainda estão carregando.
Outros temas aumentam o atraso de inicialização do Zsh – alguns muito, outros apenas um pouco. Powerlevel10k remove isso completamente.
Se você estiver curioso sobre como funciona o Instant Prompt , consulte esta seção no zsh-bench.
FAQ: Como configuro o prompt instantâneo?
O comportamento de alguns comandos depende do ambiente global. Por exemplo, kubectl run ...
executa uma imagem no cluster definido pelo contexto atual do kubernetes. Se você altera frequentemente o contexto entre "prod" e "testing", talvez queira exibir o contexto atual no prompt Zsh. Se você fizer o mesmo com as credenciais AWS, Azure e Google Cloud, o prompt ficará bastante lotado.
Insira o comando Mostrar no . Este recurso faz com que os segmentos de prompt apareçam somente quando forem relevantes para o comando que você está digitando no momento.
As configurações criadas por p10k configure
habilitam o comando show on para vários segmentos de prompt por padrão. Aqui está o parâmetro relevante para o contexto do 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 '
Para personalizar quando diferentes segmentos de prompt são mostrados, abra ~/.p10k.zsh
, pesquise SHOW_ON_COMMAND
e remova esses parâmetros para exibir os segmentos afetados incondicionalmente ou altere seus valores.
Quando o Prompt Transiente estiver habilitado por meio do p10k configure
, o Powerlevel10k reduzirá todos os prompts ao aceitar uma linha de comando.
O prompt transitório torna muito mais fácil copiar e colar séries de comandos da rolagem do terminal.
Dica : se você ativar o prompt temporário, aproveite o prompt de duas linhas. Você obterá o benefício de espaço extra para digitar comandos sem a desvantagem usual da densidade reduzida de rolagem. O prompt esparso (com uma linha vazia antes do prompt) também funciona muito bem em combinação com o prompt transitório.
O diretório de trabalho atual é talvez o segmento de prompt mais importante. O Powerlevel10k faz um grande esforço para destacar suas partes importantes e truncá-lo com a menor perda de informações quando o espaço horizontal fica escasso.
Quando o diretório completo não cabe, o segmento mais à esquerda é truncado para seu prefixo exclusivo mais curto. No screencast, ~/work
se torna ~/wo
. Não poderia ser truncado para ~/w
porque seria ambíguo (havia ~/wireguard
quando a sessão foi gravada). O próximo segmento - projects
- se transforma em p
porque não havia mais nada que começasse com p
em ~/work/
.
Os segmentos de diretório são mostrados em uma das três cores:
Dica : se você copiar e colar um diretório truncado e pressionar TAB , ele será concluído no original.
Solução de problemas : O diretório é difícil de ver no prompt ao usar o estilo Rainbow.
Powerlevel10k pode ser configurado para se parecer com qualquer outro tema Zsh existente.
Emulações Pure, Powerlevel9k e robbyrussell estão integradas. Para emular a aparência de outros temas, você precisará escrever um arquivo de configuração adequado. A melhor maneira de fazer isso é executar p10k configure
, selecionar o estilo mais próximo do seu objetivo e editar ~/.p10k.zsh
.
A gama completa de aparência do Powerlevel10k abrange desde o espartano:
Para ridículo extravagante:
O Powerlevel10k vem com dezenas de segmentos de prompt integrados de alta qualidade que podem exibir informações de diversas fontes. Quando você executa p10k configure
e escolhe qualquer estilo exceto Pure, muitos desses segmentos são habilitados por padrão, enquanto outros podem ser habilitados manualmente abrindo ~/.p10k.zsh
e descomentando-os. Você pode ativar quantos segmentos desejar. Isso não retardará o prompt ou a inicialização do Zsh.
Segmento | Significado |
---|---|
anaconda | ambiente virtual do conda |
asdf | versões de ferramentas do asdf |
aws | perfil aws |
aws_eb_env | ambiente de pé de feijão elástico aws |
azure | nome da conta do Azure |
background_jobs | presença de trabalhos em segundo plano |
battery | estado da bateria interna e nível de carga (sim, baterias literalmente incluídas) |
command_execution_time | duração (tempo de espera) do último comando |
context | usuário@nome do host |
cpu_arch | Arquitetura da CPU |
dir | diretório de trabalho atual |
direnv | status direnv |
disk_usage | uso de disco |
dotnet_version | versão dotnet |
fvm | ambiente de vibração do fvm |
gcloud | conta e projeto do google cloud cli |
goenv | vá ambiente de goenv |
google_app_cred | credenciais do aplicativo Google |
go_version | vá versão |
haskell_stack | versão haskell da pilha |
ip | Endereço IP e uso de largura de banda para uma interface de rede especificada |
java_version | versão java |
jenv | ambiente java de jenv |
kubecontext | contexto atual do Kubernetes |
laravel_version | versão do framework laravel php |
load | Carga da CPU |
luaenv | ambiente lua de luaenv |
midnight_commander | escudo do comandante da meia-noite |
nix_shell | indicador de shell nix |
nnn | nnn concha |
lf | Se casca |
chezmoi_shell | concha chezmoi |
nodeenv | Ambiente node.js de nodeenv |
nodenv | Ambiente node.js de nodenv |
node_version | versão node.js. |
nordvpn | status da conexão nordvpn |
nvm | Ambiente node.js da nvm |
os_icon | o logotipo do seu sistema operacional (apple para macOS, redemoinho para debian, etc.) |
package | name@version de package.json |
per_directory_history | Indicador local/global Oh My Zsh por histórico de diretório |
perlbrew | versão perl do perlbrew |
phpenv | ambiente php do phpenv |
php_version | versão php |
plenv | ambiente perl do plenv |
prompt_char | símbolo de alerta multifuncional; muda dependendo do modo vi: ❯ , ❮ , V , ▶ para modo de inserção, comando, visual e substituição respectivamente; fica vermelho em caso de erro |
proxy | proxy http/https/ftp para todo o sistema |
public_ip | endereço IP público |
pyenv | ambiente python de pyenv |
ram | RAM livre |
ranger | concha de guarda florestal |
yazi | concha yazi |
rbenv | ambiente Ruby do rbenv |
rust_version | versão ferrugem |
rvm | ambiente Ruby do rvm |
scalaenv | versão scala de scalaenv |
status | código de saída do último comando |
swap | troca usada |
taskwarrior | contagem de tarefas taskwarrior |
terraform | espaço de trabalho terraform |
terraform_version | versão terraform |
time | hora atual |
timewarrior | status de rastreamento do timewarrior |
todo | itens de tarefas |
toolbox | nome da caixa de ferramentas |
vcs | Status do repositório Git |
vim_shell | shell vim ( :sh ) |
virtualenv | ambiente python da venv |
vi_mode | modo vi (você não precisa disso se tiver ativado o prompt_char) |
vpn_ip | indicador de rede privada virtual |
wifi | Velocidade Wi-Fi |
xplr | shell xplr |
Se não houver um segmento de prompt que faça o que você precisa, implemente o seu próprio. Powerlevel10k fornece API pública para definir segmentos que são tão rápidos e flexíveis quanto os integrados.
No Linux, você pode obter a temperatura atual da CPU lendo /sys/class/thermal/thermal_zone0/temp
. O screencast mostra como definir um segmento de prompt para exibir esse valor. Depois que o segmento estiver definido, você poderá usá-lo como qualquer outro segmento. Todos os parâmetros de personalização padrão funcionarão imediatamente.
Digite p10k help segment
para referência.
Nota : Se você modificar os parâmetros POWERLEVEL9K_*
em um shell interativo já inicializado (em vez de editar ~/.p10k.zsh
), as alterações poderão não ter efeito imediato. Para aplicar as modificações, invoque p10k reload
. Definir POWERLEVEL9K_DISABLE_HOT_RELOAD=false
elimina a necessidade de p10k reload
, mas resulta em um prompt um pouco mais lento.
Dica : prefixe os nomes de seus próprios segmentos com my_
para evitar conflitos com versões futuras do Powerlevel10k.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Os usuários na China podem usar o espelho oficial em gitee.com para download mais rápido.
中国用户可以使用 gitee.com 上的官方镜像加速下载.
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Este é o tipo de instalação mais simples e funciona mesmo se você estiver usando um gerenciador de plugins. Apenas certifique-se de desabilitar o tema atual em seu gerenciador de plugins. Consulte solução de problemas para obter ajuda.
Clone o repositório:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
Os usuários na China podem usar o espelho oficial em gitee.com para download mais rápido.
中国用户可以使用 gitee.com 上的官方镜像加速下载.
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
Abra ~/.zshrc
, encontre a linha que define ZSH_THEME
e altere seu valor para "powerlevel10k/powerlevel10k"
.
Adicione zstyle :prezto:module:prompt theme powerlevel10k
a ~/.zpreztorc
.
Adicione zmodule romkatv/powerlevel10k --use degit
a ~/.zimrc
e execute zimfw install
.
Adicione antibody bundle romkatv/powerlevel10k
a ~/.zshrc
.
Adicione romkatv/powerlevel10k
a ~/.zsh_plugins.txt
.
Adicione antigen theme romkatv/powerlevel10k
a ~/.zshrc
. Certifique-se de antigen apply
em algum lugar depois dele.
Adicione zplug romkatv/powerlevel10k, as:theme, depth:1
a ~/.zshrc
.
Adicione zgen load romkatv/powerlevel10k powerlevel10k
a ~/.zshrc
.
Adicione zplugin ice depth=1; zplugin light romkatv/powerlevel10k
para ~/.zshrc
.
O uso de depth=1
gelo é opcional. Outros tipos de gelo não são recomendados nem oficialmente suportados pelo Powerlevel10k.
Adicione zinit ice depth=1; zinit light romkatv/powerlevel10k
para ~/.zshrc
.
O uso de depth=1
gelo é opcional. Outros tipos de gelo não são recomendados nem oficialmente suportados pelo Powerlevel10k.
Adicione zi ice depth=1; zi light romkatv/powerlevel10k
para ~/.zshrc
.
O uso de depth=1
gelo é opcional. Outros tipos de gelo não são recomendados nem oficialmente suportados pelo Powerlevel10k.
Adicione plug "romkatv/powerlevel10k"
a ~/.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 mencionado acima é o pacote oficial do Powerlevel10k.
apk add zsh zsh-theme-powerlevel10k
mkdir -p ~ /.local/share/zsh/plugins
ln -s /usr/share/zsh/plugins/powerlevel10k ~ /.local/share/zsh/plugins/
Siga as instruções nesta página.
Na primeira execução, o assistente de configuração do Powerlevel10k fará algumas perguntas e configurará seu prompt. Se não for acionado automaticamente, digite p10k configure
. O assistente de configuração cria ~/.p10k.zsh
com base em suas preferências. A personalização adicional do prompt pode ser feita editando este arquivo. Possui muitos comentários para ajudá-lo a navegar pelas opções de configuração.
PERGUNTAS FREQUENTES :
Solução de problemas :
Se você já usou o Powerlevel9k antes, não remova as opções de configuração . O Powerlevel10k irá buscá-los e fornecer a mesma interface de usuário de prompt com a qual você está acostumado. Consulte Compatibilidade com Powerlevel9k.
PERGUNTAS FREQUENTES :
Solução de problemas : Espaços extras ou ausentes no prompt em comparação com Powerlevel9k.
Powerlevel10k não requer fontes personalizadas, mas pode aproveitá-las se estiverem disponíveis. Funciona bem com Nerd Fonts, Source Code Pro, Font Awesome, Powerline e até mesmo com as fontes padrão do sistema. A escolha completa de opções de estilo está disponível apenas ao usar Fontes Nerd.
? Fonte recomendada : Fonte Meslo Nerd corrigida para Powerlevel10k. ?
Linda fonte monoespaçada projetada por Jim Lyles para Bitstream, personalizada pelo mesmo para Apple, ainda mais personalizada por André Berg e finalmente corrigida por mim mesmo com scripts personalizados originalmente desenvolvidos por Ryan L McIntyre da Nerd Fonts. Contém todos os glifos e símbolos que o Powerlevel10k pode precisar. Testado em batalha em dezenas de terminais diferentes em todos os principais sistemas operacionais.
FAQ : Como a fonte recomendada foi criada?
Se você estiver usando iTerm2 ou Termux, p10k configure
pode instalar a fonte recomendada para você. Basta responder Yes
quando questionado se deseja instalar o Meslo Nerd Font .
Se você estiver usando um terminal diferente, prossiga com a instalação manual da fonte. ?
MesloLGS NF
para todos os aplicativos do seu sistema.p10k configure
e responda Yes
quando perguntado se deseja instalar o Meslo Nerd Font . Alternativamente, abra iTerm2 → Preferências → Perfis → Texto e defina Fonte como MesloLGS NF
.MesloLGS NF
.fontFamily
em module.exports.config
para MesloLGS NF
.terminal.integrated.fontFamily
na caixa de pesquisa na parte superior da guia Configurações e defina o valor abaixo para MesloLGS NF
. Consulte esta captura de tela para ver como deve ser ou consulte este problema para obter informações adicionais.MesloLGS NF Regular
.MesloLGS NF Regular
.MesloLGS NF Regular
.MesloLGS NF
.MesloLGS NF
.MesloLGS NF
.MesloLGS NF
.p10k configure
e responda Yes
quando perguntado se deseja instalar o Meslo Nerd Font .config
, vá para Aparência , toque em Adicionar uma nova fonte , toque em Abrir Galeria , selecione MesloLGS NF.css , toque em importar e digite exit
na visualização inicial para recarregar a fonte.MesloLGS NF
.MesloLGS NF Regular
. Saia da caixa de diálogo Preferências clicando em Fechar .MesloLGS NF Regular
. Saia da caixa de diálogo Preferências clicando em Fechar .MesloLGS NF
. Se você tiver sessões , precisará alterar a fonte de cada uma delas em Configurações → clicar com o botão direito em uma sessão individual → Editar sessão → Configurações do terminal → Configurações de fonte .MesloLGS NF Regular
. Para alterar a fonte das conexões de host remoto, vá para Preferences → Terminal Options → Look and Feel e altere Font: em Terminal UI para MesloLGS NF Regular
.MesloLGS NF
.MesloLGS NF Regular
.MesloLGS NF
e clique em OK . Clique em OK para salvar o perfil. Selecione o novo perfil e clique em Definir como padrão .~/.config/alacritty/alacritty.toml
e adicione a seguinte seção a ele: [ font . normal ]
family = " MesloLGS NF "
~/.config/foot/foot.ini
e adicione a seguinte seção a ele: font =MesloLGS NF: size =12
~/.config/kitty/kitty.conf
e adicione a seguinte linha a ele: font_family MesloLGS NF
MesloLGS NF
. Requer versão puTTY >= 0,75.$HOME/.config/wezterm/wezterm.lua
e adicione o seguinte: local wezterm = require ' wezterm ' ;
return {
font = wezterm . font ( " MesloLGS NF " ),
}
~/.Xresources
e adicione a seguinte linha a ele: URxvt.font: xft:MesloLGS NF:size=11
xrdb ~/.Xresources
para recarregá-lo. A nova configuração é aplicada a todos os novos terminais.~/.Xresources
e adicione a seguinte linha a ele: xterm*faceName: MesloLGS NF
xrdb ~/.Xresources
para recarregá-lo. A nova configuração é aplicada a todos os novos terminais.~/.config/zed/settings.json
e defina terminal.font_family
como "MesloLGS NF"
. {
"terminal" : {
"font_family" : "MesloLGS NF"
} ,
// Other settings.
}
'MesloLGS NF'
(incluindo as aspas) e CSS personalizado (texto embutido) como o seguinte: @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
e adicione a seguinte seção a ele: [basic.interface.font]
value = " MesloLGS NF "
p10k configure
para gerar um novo ~/.p10k.zsh
. A configuração antiga pode funcionar incorretamente com a nova fonte.Você está usando um terminal diferente e sabe como definir a fonte dele? Compartilhe seu conhecimento enviando um PR para ampliar a lista!
Experimente o Powerlevel10k no Docker. Você pode fazer alterações no sistema de arquivos com segurança enquanto experimenta o tema. Depois de sair do Zsh, o contêiner é excluído.
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 '
Dica : instale a fonte recomendada antes de executar o comando Docker para obter acesso a todos os estilos de prompt.
Dica : execute p10k configure
enquanto estiver no Docker para tentar um estilo de prompt diferente.
Powerlevel10k é lançado sob a licença do MIT.
$HOME/.git
não é exibido no prompt?O comando para atualizar o Powerlevel10k depende de como ele foi instalado.
Instalação | Comando de atualização |
---|---|
Manual | git -C ~/powerlevel10k pull |
Oh meu zsh | git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull |
Prezto | zprezto-update |
Zim | zimfw update |
Antígeno | antigen update |
Antídoto | antidote update |
Plugue Z | zplug update |
Zgen | zgen update |
Plugin Z | zplugin update |
Zinit | zinit update |
Zé | zi update |
Zap | zap update |
Cerveja caseira | brew update && brew upgrade |
Arco Linux | yay -S --noconfirm zsh-theme-powerlevel10k-git |
Alpino Linux | apk update && apk upgrade |
IMPORTANTE : Reinicie o Zsh após atualizar o Powerlevel10k. Não use source ~/.zshrc
.
Remova todas as referências a "p10k" de ~/.zshrc
. Você pode ter este trecho no topo:
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
E isso na parte inferior:
[[ ! -f ~ /.p10k.zsh ]] || source ~ /.p10k.zsh
Eles são adicionados pelo assistente de configuração. Remova-os.
Remova todas as referências a "powerlevel10k" de ~/.zshrc
, ~/.zpreztorc
e ~/.zimrc
(alguns desses arquivos podem estar faltando - isso é normal). Essas referências foram adicionadas manualmente por você durante a instalação do Powerlevel10k. Consulte as instruções de instalação se precisar de um lembrete.
Verifique se todas as referências a "p10k" e "powerlevel10k" desapareceram de ~/.zshrc
, ~/.zpreztorc
e ~/.zimrc
.
grep -E ' p10k|powerlevel10k ' ~ /.zshrc ~ /.zpreztorc ~ /.zimrc 2> /dev/null
Se este comando produzir saída, ainda haverá referências a "p10k" ou "powerlevel10k". Você precisa removê-los.
Exclua o arquivo de configuração do Powerlevel10k. Este arquivo é criado pelo assistente de configuração e pode conter edições manuais feitas por você.
rm -f ~ /.p10k.zsh
Exclua os arquivos de origem do Powerlevel10k. Esses arquivos foram baixados quando você instalou o Powerlevel10k. O comando para excluí-los depende do método de instalação que você escolheu. Consulte as instruções de instalação se precisar de um lembrete.
Instalação | Comando de desinstalação |
---|---|
Manual | rm -rf ~/powerlevel10k |
Oh meu zsh | rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k |
Prezto | n / D |
Zim | zimfw uninstall |
Antígeno | antigen purge romkatv/powerlevel10k |
Antídoto | antidote purge romkatv/powerlevel10k |
Plugue Z | zplug clean |
Zgen | zgen reset |
Plugin Z | zplugin delete romkatv/powerlevel10k |
Zinit | zinit delete romkatv/powerlevel10k |
Zé | zi delete romkatv/powerlevel10k |
Zap | zsh -ic 'zap clean' |
Cerveja caseira | brew uninstall powerlevel10k |
Arco Linux | yay -R --noconfirm zsh-theme-powerlevel10k-git |
Alpino Linux | apk del zsh-theme-powerlevel10k |
Reinicie o Zsh. Não use source ~/.zshrc
.
Exclua os arquivos de cache do 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
pela saída do comando anterior: 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
da máquina conectada à Internet para aquela sem acesso à Internet.source ~/powerlevel10k/powerlevel10k.zsh-theme
a ~/.zshrc
na máquina sem acesso à Internet: echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
~/.zshrc
na máquina sem acesso à Internet definir ZSH_THEME
, remova essa linha. sed -i.bak ' /^ZSH_THEME=/d ' ~ /.zshrc
Para atualizar, remova ~/powerlevel10k
em ambas as máquinas e repita as etapas 1-3.
A melhor maneira de pedir ajuda e relatar bugs é abrir um problema.
Gitter é outra opção.
Se tudo mais falhar, envie um e-mail para [email protected].
Se necessário, criptografe sua comunicação com esta chave PGP.
Powerlevel10k define prompt e nada mais. Ele define opções relacionadas ao prompt e parâmetros PS1
e RPS1
.
Tudo nas áreas destacadas na captura de tela é produzido pelo Powerlevel10k. Powerlevel10k não tem controle sobre o conteúdo do terminal ou cores fora dessas áreas.
Powerlevel10k não afeta:
ls
.git
.PS1
e 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
e escolha seu estilo de prompt favorito.Relacionado:
Sim. Veja zsh-bench ou uma comparação direta com Powerlevel9k e Spaceship.
Consulte prompt instantâneo para saber mais sobre prompt instantâneo. Esta seção explica como você pode habilitá-lo e configurá-lo e lista advertências das quais você deve estar ciente.
O prompt instantâneo pode ser ativado por meio do p10k configure
ou adicionando manualmente o seguinte trecho de código na parte superior de ~/.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
É importante que você copie as linhas literalmente. Não substitua source
por outra coisa, não chame zcompile
, não redirecione a saída, etc.
Quando o prompt instantâneo está ativado, durante a inicialização do Zsh, a entrada padrão é redirecionada para /dev/null
e a saída padrão com erro padrão é redirecionada para um arquivo temporário. Depois que o Zsh for totalmente inicializado, os descritores de arquivo padrão serão restaurados e o conteúdo do arquivo temporário será impresso.
Ao usar o prompt instantâneo, você deve verificar cuidadosamente qualquer saída que apareça na inicialização do Zsh, pois pode indicar que a inicialização foi alterada, ou talvez até interrompida, pelo prompt instantâneo. O código de inicialização que pode exigir entrada do console, como solicitar uma senha de chaveiro ou uma confirmação [y/n] , deve ser movido acima do preâmbulo do prompt instantâneo em ~/.zshrc
. O código de inicialização que apenas é impresso no console, mas nunca o lê, funcionará corretamente com o prompt instantâneo, embora a saída que normalmente tem cores possa aparecer sem cor. Você pode deixar como está, suprimir a saída ou movê-la acima do preâmbulo do prompt instantâneo.
Aqui está um exemplo de ~/.zshrc
que quebra quando o prompt instantâneo está ativado:
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
# ...
Versão fixa:
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
# ...
Se POWERLEVEL9K_INSTANT_PROMPT
não estiver definido ou estiver definido como verbose
, o Powerlevel10k imprimirá um aviso quando detectar a saída do console durante a inicialização para chamar a atenção para possíveis problemas. Você pode silenciar esse aviso (sem suprimir a saída do console) com POWERLEVEL9K_INSTANT_PROMPT=quiet
. Isso é recomendado se algum código de inicialização em ~/.zshrc
for impresso no console e for inviável movê-lo acima do preâmbulo do prompt instantâneo ou suprimir sua saída. Você pode desativar completamente o prompt instantâneo com POWERLEVEL9K_INSTANT_PROMPT=off
. Faça isso se o prompt instantâneo interromper a inicialização do Zsh e você não souber como consertar.
O valor de POWERLEVEL9K_INSTANT_PROMPT
pode ser alterado executando p10k configure
e selecionando a opção apropriada na tela Instant Prompt . Alternativamente, você pode procurar POWERLEVEL9K_INSTANT_PROMPT
no ~/.p10k.zsh
existente e alterar seu valor lá.
Nota : O prompt instantâneo requer Zsh >= 5.4. Não há problema em habilitá-lo mesmo ao usar uma versão mais antiga do Zsh, mas não fará nada.
PERGUNTAS FREQUENTES :
Se você ativou o prompt instantâneo, deverá ter estas linhas no topo de ~/.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
Para inicializar o direnv você precisa adicionar uma linha acima desse bloco e uma linha abaixo dele.
(( ${+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 ) "
Relacionado : Como exporto GPG_TTY ao usar o prompt instantâneo?
Você pode exportar GPG_TTY
assim em qualquer lugar em ~/.zshrc
:
export GPG_TTY= $TTY
Isso funciona quer você esteja usando o prompt instantâneo ou não. Funciona mesmo se você não estiver usando o powerlevel10k. Como um bônus extra, é muito mais rápido que o export GPG_TTY=$(tty)
comumente usado.
Relacionado : Como inicializo o direnv ao usar o prompt instantâneo?
Ao usar o estilo Lean, Classic ou Rainbow, o status do Git pode ser assim:
feature:master wip ⇣42⇡42 ⇠42⇢42 *42 merge ~42 +42 !42 ?42
Símbolo | Significado | Fonte |
---|---|---|
feature | filial atual; substituído por #tag ou @commit se não estiver em um branch | git status --ignore-submodules=dirty |
master | filial de rastreamento remoto; mostrado apenas se for diferente da filial local | git rev-parse --abbrev-ref --symbolic-full-name @{upstream} |
wip | o resumo do último commit contém "wip" ou "WIP" | git show --pretty=%s --no-patch HEAD |
= | atualizado com o controle remoto (nem à frente nem atrás) | git rev-list --count HEAD...@{upstream} |
⇣42 | tantos commits por trás do controle remoto | git rev-list --right-only --count HEAD...@{upstream} |
⇡42 | tantos commits antes do controle remoto | git rev-list --left-only --count HEAD...@{upstream} |
⇠42 | tantos commits por trás do push remoto | git rev-list --right-only --count HEAD...@{push} |
⇢42 | esse número de commits antes do push remoto | git rev-list --left-only --count HEAD...@{push} |
*42 | tantos esconderijos | git stash list |
merge | estado do repositório | git status --ignore-submodules=dirty |
~42 | tantos conflitos de mesclagem | git status --ignore-submodules=dirty |
+42 | essas muitas mudanças encenadas | git status --ignore-submodules=dirty |
!42 | tantas mudanças não planejadas | git status --ignore-submodules=dirty |
?42 | tantos arquivos não rastreados | git status --ignore-submodules=dirty |
─ | o número de arquivos preparados, não testados ou não rastreados é desconhecido | echo $POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY ou git config --get bash.showDirtyState |
Relacionado : Como altero o formato do status do Git?
Para alterar o formato do status do Git, abra ~/.p10k.zsh
, pesquise my_git_formatter
e edite seu código-fonte.
Relacionado : O que significam os diferentes símbolos no status do Git?
$HOME/.git
não é exibido no prompt? Ao usar o estilo Lean, Classic ou Rainbow, ~/.p10k.zsh
contém o seguinte parâmetro:
# 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= ' ~ '
Para ver o status Git para $HOME/.git
em prompt, abre ~/.p10k.zsh
e remova POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN
.
TL; DR: Quando o status Git no prompt é acinzentado, significa que o PowerLevel10k está atualmente calculando o status Git atualizado em segundo plano. O prompt será atualizado automaticamente quando esse cálculo for concluído.
Quando seu diretório atual está dentro de um repositório Git, o PowerLevel10k calcula o status Git atualizado após cada comando. Se o repositório for grande ou a máquina for lenta, esse cálculo pode levar bastante tempo. Se for necessário mais de 10 milissegundos (configuráveis via POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS
), o PowerLevel10k exibe o último status Git conhecido em Gray e continuará a calcular o status Git atualizado em segundo plano. Quando o cálculo é concluído, o PowerLevel10k atualiza o prompt de novas informações, desta vez com o status Git colorido.
Ao usar o estilo arco -íris , o status Git é exibido como preto em cinza enquanto ainda está sendo calculado. Dependendo da paleta de cores do terminal, isso pode ser difícil de ler. Nesse caso, você pode querer alterar a cor de fundo para algo mais leve para mais contraste. Para fazer isso, abra ~/.p10k.zsh
, procure por POWERLEVEL9K_VCS_LOADING_BACKGROUND
, descompor -se se for comentado e altere o valor.
typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=244
Digite source ~/.p10k.zsh
para aplicar suas alterações na sessão ZSH atual.
RELACIONADO : Como faço para alterar as cores imediatas?
Ao usar o estilo enxuto, clássico ou arco -íris, o prompt mostra username@hostname
quando você está conectado como root ou via ssh. Há pouco valor em mostrar username
ou hostname
quando você está conectado à sua máquina local como um usuário normal. Portanto, a ausência de username@hostname
em seu prompt é uma indicação de que você está trabalhando localmente e que não é root. Você pode mudar isso, no entanto.
Aberto ~/.p10k.zsh
. Perto do topo, você pode ver os parâmetros mais importantes que definem quais segmentos são mostrados no seu prompt. Todos os segmentos de prompt geralmente úteis estão listados lá. Alguns deles são ativados, outros são comentados. Um deles é de interesse para você.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
...
context # user@hostname
...
)
Pesquise o context
para encontrar a seção na configuração que lista parâmetros específicos para este segmento de prompt. Você deve ver as seguintes linhas:
# 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=
Se você seguir a dica e remover (ou comentar) a última linha, sempre verá username@hostname
no prompt. Você pode alterar o formato para apenas username
ou alterar a cor, ajustando os valores dos parâmetros nas proximidades. Existem muitos comentários para ajudá -lo a navegar.
Você também pode mover context
para uma posição diferente em POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
ou mesmo para POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
.
Os segmentos de prompt podem ser configurados para serem mostrados apenas quando o comando atual que você digita invoca uma ferramenta relevante.
# 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 '
As configurações criadas pelo p10k configure
podem conter parâmetros desse tipo. Para personalizar quando diferentes segmentos de prompt são mostrados, abra ~/.p10k.zsh
, pesquise SHOW_ON_COMMAND
e remova esses parâmetros ou altere seus valores.
Você também pode definir uma função em ~/.zshrc
para alternar a exibição de um segmento rápido entre sempre e o comando . Isso é semelhante ao kubeon
/ kubeoff
do 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
}
Invoque esta função digitando kube-toggle
. Você também pode vinculá -lo a uma chave adicionando mais duas linhas a ~/.zshrc
:
zle -N kube-toggle
bindkey ' ^] ' kube-toggle # ctrl-] to toggle kubecontext in powerlevel10k prompt
Você pode alterar a paleta de cores usada pelo seu terminal ou definir cores através dos parâmetros de configuração do PowerLevel10k.
Como exatamente você altera a paleta de cores do terminal (também conhecida como esquema de cores ou tema) depende do tipo de terminal que você está usando. Olhe em volta nas configurações/preferências do terminal ou consulte a documentação.
Quando você altera a paleta de cores do terminal, ela geralmente afeta apenas as 16 primeiras cores, numeradas de 0 a 15. Para ver qualquer efeito no prompt PowerLevel10k, você precisa usar um estilo imediato que utilize essas cores de baixo número. Tipo p10k configure
e selecione Rainbow , Lean → 8 cores ou puro → Original . Outros estilos usam cores com números mais altos, então eles parecem iguais em qualquer paleta de cores terminais.
Abra ~/.p10k.zsh
, pesquise "cores", "em primeiro plano" e "fundo" e altere os valores dos parâmetros apropriados. Por exemplo, veja como você pode definir o primeiro plano do segmento de prompt time
como vermelho brilhante:
typeset -g POWERLEVEL9K_TIME_FOREGROUND=160
As cores são especificadas usando números de 0 a 255. As cores de 0 a 15 olham de maneira diferente em diferentes terminais. Muitos terminais também suportam a personalização dessas cores através de paletas de cores (também conhecidas como esquemas de cores ou temas). As cores de 16 a 255 sempre parecem iguais.
Digite source ~/.p10k.zsh
para aplicar suas alterações na sessão ZSH atual.
Para ver como as cores numeradas diferentes parecem no seu terminal, execute o seguinte comando:
for i in {0..255} ; do print -Pn " %K{ $i } %k%F{ $i } ${(l : 3 :: 0 : )i} %f " ${ ${(M)$((i % 6)) :# 3} : + $' n ' } ; done
Se o seu terminal suportar TrueColor, você poderá usar cores de 24 bits no formato #RRGGBB
além das cores numeradas.
typeset -g POWERLEVEL9K_TIME_FOREGROUND= ' #FF0000 '
Relacionado:
Por padrão, o Terminal VSCODE pode substituir arbitrariamente a cor de primeiro plano de sua escolha por uma cor diferente. Esse comportamento pode ser desligado nas configurações do VSCODE.
PowerLevel10k usa o gitstatus como o back -end atrás do prompt vcs
; Gitstatus gera gitstatusd
e zsh
. Veja Gitstatus para obter detalhes. O PowerLevel10k também pode gerar zsh
para executar a computação sem bloquear o prompt. Para evitar o risco de segurança, esses processos em segundo plano não são compartilhados por diferentes conchas interativas. Eles terminam automaticamente quando o processo zsh
pai termina ou executa exec(3)
.
Não, o PowerLevel10k é sempre rápido, com qualquer configuração que você jogue nele. Se você tiver uma latência rápida perceptível ao usar o PowerLevel10k, abra um problema.
Sim. Veja o zsh-bench.
O PowerLevel10k foi bifurcado do PowerLevel9K em março de 2019, após uma discussão de uma semana no PowerLevel9K#1170. O PowerLevel9K já era um projeto maduro com uma grande base de usuários e um ciclo de liberação medido em meses. O PowerLevel10k foi girado para iterar as melhorias de desempenho e novos recursos em ritmo muito mais alto.
PowerLevel9K e PowerLevel10k são projetos independentes. Ao usar um, você não deve instalar o outro. Os problemas devem ser apresentados contra o projeto que você realmente usa. Não há indivíduos que tenham direitos cometidos em ambos os repositórios. Todas as correções de bug e novos recursos comprometidos com o repositório PowerLevel9K são portados para o PowerLevel10k.
Com o tempo, praticamente todo o código no PowerLevel10k foi reescrito. Atualmente, não há sobreposição significativa entre as implementações do PowerLevel9K e PowerLevel10k.
O PowerLevel10k está comprometido em manter a compatibilidade com versões anteriores com todas as configurações indefinidamente. Esse compromisso abrange todos os parâmetros de configuração reconhecidos pelo PowerLevel9K (consulte a compatibilidade com PowerLevel9K) e parâmetros adicionais que apenas o PowerLevel10k entende. Os nomes de todos os parâmetros no PowerLevel10k começam com POWERLEVEL9K_
para obter consistência.
Quase. Existem algumas diferenças.
git
VCS está ativado no PowerLevel10k. Se você precisar de svn
e hg
, adicione -os ao POWERLEVEL9K_VCS_BACKENDS
. Esses back -ends ainda não foram otimizados no PowerLevel10k, portanto, ativá -los tornará o rápido que o rápido diminuirá .POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY=true
.POWERLEVEL9K_MODE
antes de adquirir o tema. Este parâmetro é ignorado pelo PowerLevel9K, mas homenageado pelo PowerLevel10k. Se você deseja que seu prompt pareça no PowerLevel10k o mesmo que no PowerLevel9k, remova POWERLEVEL9K_MODE
.ZLE_RPROMPT_INDENT
. Como resultado, o prompt correto no PowerLevel10k pode ter um espaço extra no final em comparação com o PowerLevel9K. Definir ZLE_RPROMPT_INDENT=0
se você não quiser esse espaço. Mais detalhes na solução de problemas.POWERLEVEL9K_LEGACY_ICON_SPACING=true
para obter o mesmo espaçamento que no PowerLevel9K. Mais detalhes na solução de problemas.Se você notar outras alterações na aparência imediata ao alternar do PowerLevel9K para PowerLevel10k, abra um problema.
Existem tantas opiniões sobre o que constitui o melhor aviso quanto as pessoas. Tudo se resume principalmente à preferência pessoal. Existem, no entanto, algumas implicações ocultas de diferentes opções.
O estilo puro é uma replicação exata do tema ZSH puro. Existe para facilitar a migração para os usuários desse tema. A menos que você seja um deles, escolha o estilo magro em vez de puro.
Se você deseja limitar as cores imediatas à paleta de cores terminais selecionadas (digamos, escuro solarizado ), use arco -íris , magro → 8 cores ou puro → original . Outros estilos usam cores fixas e, portanto, parecem iguais em qualquer paleta de cores terminais.
Todos os estilos, exceto Pure, têm a opção de usar o ASCII Charset. O prompt parecerá menos bonito, mas renderá corretamente com todas as fontes e em todos os locais.
Se você ativar o prompt transitório, aproveite o prompt de duas linhas. Você terá o benefício do espaço extra para digitar comandos sem a desvantagem usual da densidade reduzida de rolagem. Ter todos os comandos começando do mesmo deslocamento também é bom.
Da mesma forma, se você ativar o prompt transitório, prompt esparso (com uma linha vazia antes do prompt) é uma ótima opção.
Se você estiver usando o VI KeyMap, escolha Prompt com prompt_char
nele (mostrado como verde ❯
no assistente). Esse símbolo muda dependendo do modo VI: ❯
, ❮
, V
, ▶
para inserir, comando, visual e substituir o modo, respectivamente. Quando um comando falha, o símbolo fica vermelho. O estilo enxuto sempre tem prompt_char
nele. O arco-íris e os estilos clássicos o possuem apenas na configuração de duas linhas sem o quadro esquerdo.
Se você valoriza o espaço horizontal ou preferir a estética minimalista:
Nota : Você pode executar o Assistente de Configuração quantas vezes quiser. Tipo p10k configure
para experimentar um novo estilo rápido.
Use esta configuração.
Você pode baixá-lo, salve como ~/.p10k.zsh
e source ~/.p10k.zsh
de ~/.zshrc
ou origem p10k-robbyrussell.zsh
diretamente do seu repositório powerlevel10k
clonado.
Não. Quando você pressiona Enter e o comando que você digitou começa, seu status de erro ainda não é conhecido, por isso não pode ser mostrado no prompt. Quando o comando é concluído, o status do erro é conhecido, mas não é mais possível atualizar o prompt para esse comando. É por isso que o status de erro para cada comando é refletido no próximo prompt.
Para detalhes, consulte esta postagem em /r /zsh.
Zsh 5.3 ou mais recente devem funcionar. A inicialização rápida requer zsh> = 5.4.
Todas as capturas de tela e GIFs animados foram gravados no Terminal Gnome, com a fonte recomendada e a paleta de cores escuras do Tango com cor de fundo personalizada ( #171A1B
em vez de #2E3436
- duas vezes mais escuro).
O destaque da sintaxe, onde presente, foi fornecido pela Zsh-Syntax-Highlighting.
A fonte recomendada é o produto de muitos indivíduos. Sua origem é o BitStream Vera Sans Mono , que deu à luz Menlo , que por sua vez gerou Meslo . Finalmente, glifos extras foram adicionados a Meslo com scripts bifurcados a partir de fontes nerd. A fonte final é divulgada sob os termos da licença Apache.
A fonte Meslolgs NF pode ser recriada com o seguinte comando (requer git
e docker
):
git clone --depth=1 https://github.com/romkatv/nerd-fonts.git
cd nerd-fonts
./build ' Meslo/S/* '
Se tudo correr bem, quatro arquivos ttf
aparecerão em ./out
.
Atualmente, não é fácil nem recomendado para empacotar e distribuir o PowerLevel10k. Não há instruções que você possa seguir que permitiria atualizar facilmente seu pacote quando novas versões do PowerLevel10k forem lançadas. Isso pode mudar no futuro, mas não em breve.
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
source ~/.zshrc
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
Ao abrir um terminal ou iniciar o ZSH manualmente, você pode encontrar esta mensagem de erro:
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
typeset -p P9K_VERSION
para verificar se o PowerLevel10k foi carregado.typeset -p P9K_VERSION
for bem -sucedido e imprime algo como typeset P9K_VERSION=1.19.14
(a versão pode ser diferente), remova a seguinte linha de ~/.zshrc
: ZSH_THEME= " powerlevel10k/powerlevel10k "
typeset -p P9K_VERSION
falhar com o erro typeset: no such variable: P9K_VERSION
, execute o seguinte comando: git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
exec zsh
. Se parece um regular ?
, isso é normal. Isso significa que você tem arquivos não rastreados no repositório Git atual. Digite git status
para ver esses arquivos. Você pode alterar esse símbolo ou desativar completamente a exibição de arquivos não rastreados. Pesquise untracked files
em ~/.p10k.zsh
.
FAQ : O que significam os diferentes símbolos no status Git?
Você também pode obter um ponto de interrogação de aparência estranha em seu prompt se a fonte do seu terminal estiver faltando alguns glifos. Veja ícones, glifos ou símbolos da linha de energia não renderizam.
Reinicie seu terminal, instale a fonte recomendada e execute p10k configure
.
Existem três imperfeições na captura de tela. Da esquerda para a direita:
Os temas ZSH não têm controle de pixel sobre o conteúdo do terminal. Tudo o que você vê na tela é feito de personagens monoespaciais. Um segmento de prompt de linha de energia branca é feita de texto em fundo branco seguido pelo U+E0B0 (um triângulo de apontamento à direita).
Se o prompt PowerLevel10k tiver imperfeições em torno dos símbolos da linha de energia, você verá exatamente as mesmas imperfeições com todos os temas do PowerLine (Agnoster, PowerLevel9K, PowerLine, etc.)
Há várias coisas que você pode tentar lidar com essas imperfeições:
Uma solução mais radical é alternar para provar o estilo sem plano de fundo. Tipo p10k configure
e selecione Lean . Esse estilo tem uma aparência leve moderna. Como bônus, ele não sofre de tornar as imperfeições que afligem o prompt no estilo Powerline.
Tipo echo 'u276F'
. Se você receber um erro dizendo "Zsh: personagem não no intervalo", seu local não suporta UTF-8. Você precisa consertar isso. Se você está executando o ZSH sobre SSH, veja isso. Se você estiver executando o ZSH localmente, o Google "Defina o UTF-8 Locale no seu sistema operacional ".
Tipo echo 'u276F'
. Se você receber um erro dizendo "Zsh: personagem não no intervalo", consulte a seção anterior.
Se o comando echo
imprime ❯
Mas o cursor ainda estiver no local errado, instale a fonte recomendada e execute p10k configure
.
Se isso não ajudar, adicione unset ZLE_RPROMPT_INDENT
na parte inferior de ~/.zshrc
.
Ainda está tendo problemas? Execute o seguinte comando para diagnosticar o problema:
() {
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 |
+------------------------------+
Se a saída do comando estiver alinhada para todas as partes do seu prompt (esquerda e direita), isso indica um bug no tema ou na sua configuração. Use este comando para diagnosticar:
print -rl -- ${(eq+)PROMPT} ${(eq+)RPROMPT}
Procure por %{...%}
e barras de barragem na saída. Se houver algum, eles são os prováveis culpados. Abra um problema se você ficar preso.
+-----------------------------+
| romka@adam ✓ ~/powerlevel10k |
+-----------------------------+
Isso geralmente é causado por um bug do terminal ou uma configuração incorreta que o torna os caracteres de largura ambígua de largura ambíguos como largura dupla, em vez de largura única. Por exemplo, esse problema.
+------------------------------+
| romka@adam ✓~/powerlevel10k |
+------------------------------+
Observe que esse prompt é diferente do original, pois está faltando um espaço após a marca de seleção.
Isso pode ser causado por um bug de baixo nível no macOS. Veja esta questão.
Isso também pode acontecer se o prompt contiver glifos designados como "amplos" no padrão Unicode e seu terminal os exibe incorretamente como não em todo o mundo. Os terminais que sofrem dessa limitação incluem Konsole, Hyper e o terminal VSCode integrado. A solução é usar um terminal diferente ou remover todos os glifos amplos do prompt.
+--------------------------------+
| romka@adam ✓ ~/powerlevel10k |
+--------------------------------+
Isso pode ser causado por localidade equivocada. Veja esta questão.
Veja Cursor está no lugar errado.
Veja Cursor está no lugar errado.
Quando o PowerLevel10k inicia, ele executa automaticamente p10k configure
se não houver parâmetros POWERLEVEL9K_*
são definidos. Com base nas suas opções de estilo imediato, o Assistente de Configuração cria ~/.p10k.zsh
com um monte de parâmetros POWERLEVEL9K_*
nele e adiciona uma linha a ~/.zshrc
para obter esse arquivo. Na próxima vez que você iniciar o ZSH, o Assistente de Configuração não deve ser executado automaticamente. Se isso acontecer, isso significa que a avaliação de ~/.zshrc
termina prematuramente antes de atingir a linha que fontes ~/.p10k.zsh
. Isso geralmente acontece devido a erros de sintaxe em ~/.zshrc
. Esses erros ficam ocultos pela tela do assistente de configuração, para que você não os perceba. Ao sair do Assistente de Configuração, procure mensagens de erro. Você também pode usar POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true zsh
para iniciar o ZSH sem executar automaticamente o Assistente de Configuração. Depois de ver os erros, corrija ~/.zshrc
para se livrar deles.
Se a versão ZSH estiver abaixo de 5.7.1 ou a variável de ambiente COLORTERM
não for 24bit
nem truecolor
, o Assistente de Configuração não oferecerá estilo puro com esquema de cores snazzy. Correção : instale zsh> = 5.7.1 e use um terminal com suporte Truecolor. Verifique com print -P '%F{#ff0000}red%f'
.
Se o terminal puder exibir menos de 256 cores, o Assistente de Configuração pré -seleciona o estilo Lean com 8 cores. Todos os outros estilos requerem pelo menos 256 cores. Correção : use um terminal com suporte de cor 256 e verifique se a variável de ambiente TERM
está definida corretamente. Verifique com print $terminfo[colors]
.
Se não houver localidade UTF-8 no sistema, o Assistente de Configuração não oferecerá estilos rápidos que usam caracteres Unicode. Correção : Instale um local UTF-8. Verifique com locale -a
.
Outro caso em que o assistente de configuração pode não oferecer estilos de prompt Unicode é quando a opção de shell MULTIBYTE
está desativada. Correção : Ative a opção MULTIBYTE
, ou melhor, não a desative (esta opção está ativada no ZSH por padrão). Verifique com print -r -- ${options[MULTIBYTE]}
.
Quando MULTIBYTE
é ativado e um local UTF-8 está disponível, as primeiras perguntas feitas pelo Assistente de Configuração de avaliar recursos da fonte do terminal. Se suas respostas indicarem que alguns glifos não renderizam corretamente, o Assistente de Configuração não oferecerá estilos rápidos que os usam. Corrija : reinicie seu terminal e instale a fonte recomendada. Verifique a execução p10k configure
e verificando que todos os glifos renderizam corretamente.
Depois de baixar a fonte recomendada, você pode instalá -la como qualquer outra fonte. Google "Como instalar fontes no seu sistema operacional ".
tl; dr: add ZLE_RPROMPT_INDENT=0
e POWERLEVEL9K_LEGACY_ICON_SPACING=true
to ~/.zshrc
para obter o mesmo espaçamento rápido que no PowerLevel9k.
Ao usar o PowerLevel10k com uma configuração PowerLevel9K, você pode obter espaços adicionais no prompt aqui e ali. Estes vêm em dois sabores.
tl; dr: adicione ZLE_RPROMPT_INDENT=0
a ~/.zshrc
para se livrar desse espaço.
Da documentação do ZSH:
ZLE_RPROMPT_INDENT <S>
Se definido, usado para fornecer o recuo entre o lado direito do prompt direito no editor de linha, conforme dado por
RPS1
ouRPROMPT
e o lado direito da tela. Se não estiver definido, o valor1
é usado.Normalmente, isso será usado para definir o valor para
0
, para que o prompt pareça nivelado com o lado direito da tela.
PowerLevel10k respeita esse parâmetro. Se você definir ZLE_RPROMPT_INDENT=1
(ou deixá -lo não definido, o que é a mesma coisa que defini -lo como 1
), você terá um espaço vazio à direita do prompt certo. Se você definir ZLE_RPROMPT_INDENT=0
, seu prompt irá para a borda do terminal. É assim que funciona em todos os temas, exceto PowerLevel9K.
PowerLevel9K Edição: PowerLevel9K#1292. Ele foi corrigido no ramo de desenvolvimento do PowerLevel9K, mas a correção ainda não chegou ao master
.
Adicione ZLE_RPROMPT_INDENT=0
a ~/.zshrc
para obter o mesmo espaçamento na borda direita do prompt como no PowerLevel9k.
Nota: Várias versões do ZSH têm bugs que são acionados quando você define ZLE_RPROMPT_INDENT=0
. O PowerLevel10k pode contornar esses bugs ao usar o estilo de prompt PowerLine. Se você notar artefatos visuais na posição de cursor imediata ou errada, tente remover ZLE_RPROMPT_INDENT
de ~/.zshrc
.
tl; dr: adicione POWERLEVEL9K_LEGACY_ICON_SPACING=true
a ~/.zshrc
para obter o mesmo espaçamento em torno dos ícones que no PowerLevel9K.
O espaçamento em torno dos ícones no PowerLevel9K é inconsistente.
Essa inconsistência é uma fonte constante de aborrecimento, por isso foi fixada no PowerLevel10k. Você pode adicionar POWERLEVEL9K_LEGACY_ICON_SPACING=true
a ~/.zshrc
para obter o mesmo espaçamento em torno dos ícones que no PowerLevel9K.
NOTA: Não é uma boa ideia definir POWERLEVEL9K_LEGACY_ICON_SPACING
ao usar p10k configure
.
source ~/.zshrc
É quase sempre uma má idéia executar source ~/.zshrc
, esteja você usando o PowerLevel10k ou não. Este comando pode resultar em erros aleatórios, código de comportamento inadequado e desaceleração progressiva do ZSH.
Se você fez alterações no ~/.zshrc
ou nos arquivos provenientes, reinicie o ZSH para aplicá -los. A maneira mais confiável de fazer isso é digitar exit
e iniciar uma nova sessão do ZSH. Você também pode usar exec zsh
. Embora não seja exatamente equivalente a concluir o reinício do ZSH, esse comando é muito mais confiável que source ~/.zshrc
.
Veja coisas estranhas acontecem após digitar source ~/.zshrc
.
Se as instruções de instalação não funcionarem para você, tente desativar seu tema atual (para que você acabe sem tema) e instalando o PowerLevel10k manualmente.
~/.zshrc
e remova a linha que define ZSH_THEME
. Pode ser assim: ZSH_THEME="powerlevel9k/powerlevel9k"
.~/.zshrc
e remova o comando zplug
que se refere ao seu tema atual. Por exemplo, se você estiver usando o PowerLevel9K atualmente, procure zplug bhilburn/powerlevel9k, use:powerlevel9k.zsh-theme
.~/.zpreztorc
e coloque zstyle :prezto:module:prompt theme off
. Remova qualquer outro comando que defina theme
como zstyle :prezto:module:prompt theme powerlevel9k
.~/.zshrc
e remova a linha que define antigen theme
. Pode parecer assim: antigen theme powerlevel9k/powerlevel9k
.git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Este método de instalação não tornará nada mais lento ou sub-par.
No estilo arco -íris, o diretório de trabalho atual é mostrado com texto branco brilhante em fundo azul. O branco é fixo e sempre parece o mesmo, mas a aparência de "azul" é definida pela sua paleta de cores do terminal. Se for muito leve, pode ser difícil ver o texto em branco.
Existem várias maneiras de consertar isso.
p10k configure
e escolha um estilo rápido mais legível.POWERLEVEL9K_DIR_BACKGROUND
, POWERLEVEL9K_DIR_FOREGROUND
, POWERLEVEL9K_DIR_SHORTENED_FOREGROUND
, POWERLEVEL9K_DIR_ANCHOR_FOREGROUND
e POWERLEVEL9K_DIR_ANCHOR_BOLD
. Você pode encontrá -los em ~/.p10k.zsh
.Relacionado : Cor de primeiro plano incorreta no terminal VSCode.
Por padrão, o Terminal VSCODE pode substituir arbitrariamente a cor de primeiro plano de sua escolha por uma cor diferente. Esse comportamento pode ser desligado nas configurações do VSCODE.
Quando você redimensiona uma janela do terminal horizontalmente e para trás algumas vezes, pode ver essa imagem feia.
tl; dr: Esta questão surge quando um terminal reflea o prompt de Zsh após a redimensionamento. Não é específico para o PowerLevel10k. Veja mitigação.
Nota: Esta seção costumava dizer que o problema é causado por um bug no ZSH. Embora seja verdade que é possível evitar o problema em muitas circunstâncias modificando o ZSH, ele não pode ser completamente resolvido dessa maneira. Portanto, é injusto fixar a culpa em Zsh.
O problema se manifesta quando a distância vertical entre o início do prompt atual e o cursor (doravante VD
) muda quando a janela do terminal é redimensionada.
Quando uma janela do terminal fica encolhida horizontalmente, há duas maneiras de um terminal manusear linhas longas que não se encaixam mais: refluir ou truncar .
Conteúdo do terminal antes de diminuir:
Terminal refloa o texto ao encolher:
Terminal trunca o texto ao encolher:
A estratégia de reflexão pode alterar a altura do conteúdo do terminal. Se esse conteúdo estiver entre o início do prompt atual e o cursor, o ZSH imprimirá o prompt na linha errada. A estratégia de truncamento nunca muda a altura do conteúdo do terminal, por isso não aciona esse problema.
Vamos ver como o problema se desenrola em câmera lenta. Começaremos lançando zsh -f
e colando o seguinte código:
function pause() { read -s }
functions -M pause 0
reset
print -l {1..3}
setopt prompt_subst
PROMPT= $' ${$((pause()))+}left>${(pl.$((COLUMNS-12))..-.)}<right n > '
Quando PROMPT
é expandido, ele chama pause
para observar o estado do terminal. Aqui está o estado inicial:
O ZSH acompanha a posição do cursor em relação ao início do prompt atual. Nesse caso, sabe que o cursor é uma linha abaixo. Quando encolhemos a janela do terminal, fica assim:
Nesse ponto, o terminal envia SIGWINCH
para o ZSH para notificá -lo sobre alterações nas dimensões do terminal. Observe que este sinal é enviado após a reflexão do conteúdo do terminal.
Quando o ZSH recebe SIGWINCH
, ele tenta apagar o prompt atual e imprimi -lo novamente. Ele vai para a posição em que acha que o prompt atual é - uma linha acima do cursor (!) - apaga todo o conteúdo do terminal que se segue e a impressão reexpitou o prompt lá. No entanto, depois de redimensionar o prompt não está mais uma linha acima do cursor. São duas linhas acima! O ZSH acaba imprimindo um novo prompt de uma linha muito baixa.
Nesse caso, acabamos com um conteúdo indesejado de lixo porque VD
aumentou . Quando você aumenta a janela do terminal, VD
também pode diminuir , o que resultaria no novo prompt sendo impresso mais alto do que o pretendido, potencialmente apagando o conteúdo útil no processo.
Aqui estão mais alguns exemplos em que a janela do terminal diminuiu VD
.
prompt_subst
. Observe que o cursor está abaixo da linha de prompt (pressione o escê para chegar lá).prompt_subst
, sem prompt correto. Aqui, VD
deve aumentar após o encolhimento do terminal devido à linha de comando que envolve. Este patch ZSH corrige o problema em alguns terminais. A idéia por trás do patch é usar a capacidade do terminal sc
(salvar cursor) antes de imprimir o prompt e rc
(Restaurar Cursor) para mover o cursor de volta à posição original quando o prompt precisar ser atualizado.
O patch funciona apenas em terminais que o reflow salvou a posição do cursor juntamente com o texto quando a janela do terminal é redimensionada. O patch não tem efeito observável nos terminais que não refletem o texto em redimensionamento (os Zsh de remendos e não patches se comportam corretamente) e nos terminais que refletem o texto, mas não a posição salva do cursor (patched e não patched zsh redraw prompt na mesma posição incorreta ). Em outras palavras, o patch corrige o problema de redimensionamento em alguns terminais, mantendo o comportamento inalterado em outros.
Existem duas abordagens alternativas para corrigir o ZSH que podem parecer funcionar à primeira vista, mas na verdade não:
sc
, use a capacidade do terminal u7
para consultar a posição atual do cursor e, em seguida, cup
para voltar a ela. Isso não funciona porque a posição absoluta do início do prompt atual muda quando o texto é refletido.VD
com base em novas dimensões do terminal antes de tentar atualizar o prompt. Isso não funciona porque o ZSH não sabe se o terminal reflea o texto ou trunca. 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
.