Powerlevel10k es un tema para Zsh. Hace hincapié en la velocidad, la flexibilidad y la experiencia innovadora.
exec zsh
.p10k configure
si el asistente de configuración no se inicia automáticamente. Escriba p10k configure
para acceder al asistente de configuración incorporado directamente desde su terminal.
Todos los estilos excepto Pure son funcionalmente equivalentes. Muestran la misma información y difieren sólo en la presentación.
El asistente de configuración crea ~/.p10k.zsh
según sus preferencias. Se puede realizar una personalización adicional del mensaje editando este archivo. Tiene muchos comentarios para ayudarle a navegar por las opciones de configuración.
Consejo : instale la fuente recomendada antes de ejecutar p10k configure
para desbloquear todos los estilos de mensajes.
Preguntas frecuentes:
Solución de problemas :
Cuando presiona ENTER , el siguiente mensaje aparece instantáneamente. Con Powerlevel10k no hay retrasos. Si instala Cygwin en Raspberry Pi, cd
a un repositorio Git de Linux y activa suficientes segmentos de mensajes para llenar cuatro líneas de mensajes en ambos lados de la pantalla... espere, eso es una locura y nadie hace eso. Probablemente también sea imposible. El punto es que el aviso de Powerlevel10k siempre es rápido, ¡sin importar lo que hagas!
Observe cómo el efecto de cada comando se refleja instantáneamente en el siguiente mensaje.
Dominio | Indicador de aviso | Significado |
---|---|---|
timew start hack linux | ⌚ hack linux | seguimiento del tiempo habilitado en timewarrior |
touch xy | ?2 | 2 archivos sin seguimiento en el repositorio de Git |
rm COPYING | !1 | 1 cambio no realizado en el repositorio de Git |
echo 3.7.3 >.python-version | ? 3.7.3 | la versión actual de Python en pyenv |
Otros temas de Zsh capaces de mostrar la misma información producen un retraso en el mensaje o imprimen un mensaje que no refleja el estado actual del sistema y luego lo actualizan más tarde. Con Powerlevel10k obtienes información rápida, rápida y actualizada.
Preguntas frecuentes : ¿Es realmente rápido?
Powerlevel10k comprende todos los parámetros de configuración de Powerlevel9k.
La migración de Powerlevel9k a Powerlevel10k es un proceso sencillo. Todos los parámetros de configuración POWERLEVEL9K
seguirán funcionando. El aviso tendrá el mismo aspecto que antes (casi) pero será mucho más rápido (sin duda).
Preguntas frecuentes :
Powerlevel10k puede producir el mismo mensaje que Pure. Escriba p10k configure
y seleccione Estilo puro .
Aún puedes usar las funciones Powerlevel10k, como el aviso transitorio o el aviso instantáneo, cuando uses el estilo Pure.
Para personalizar el mensaje, edite ~/.p10k.zsh
. Powerlevel10k no reconoce los parámetros de configuración Pure, por lo que deberá usar POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
en lugar de PURE_CMD_MAX_EXEC_TIME=3
, etc. Todos los parámetros relevantes están en ~/.p10k.zsh
. Este archivo tiene muchos comentarios para ayudarle a navegar a través de él.
Preguntas frecuentes: ¿Cuál es el mejor estilo de mensaje en el asistente de configuración?
Si su ~/.zshrc
carga muchos complementos, o quizás solo algunos lentos (por ejemplo, pyenv o nvm), es posible que haya notado que Zsh tarda algún tiempo en iniciarse.
Powerlevel10k puede eliminar el retraso de inicio de Zsh incluso si no es causado por un tema .
Esta función se llama Aviso instantáneo . Debe habilitarlo explícitamente a través de p10k configure
o manualmente. Hace lo que dice en la lata: imprime el mensaje instantáneamente al iniciar Zsh, lo que le permite comenzar a escribir mientras los complementos aún se están cargando.
Otros temas aumentan el retraso en el inicio de Zsh, algunos mucho, otros sólo un poco. Powerlevel10k lo elimina por completo.
Si tiene curiosidad acerca de cómo funciona Instant Prompt , consulte esta sección en zsh-bench.
Preguntas frecuentes: ¿Cómo configuro el aviso instantáneo?
El comportamiento de algunos comandos depende del entorno global. Por ejemplo, kubectl run ...
ejecuta una imagen en el clúster definido por el contexto actual de Kubernetes. Si cambia con frecuencia el contexto entre "prod" y "testing", es posible que desee mostrar el contexto actual en el indicador Zsh. Si hace lo mismo con las credenciales de AWS, Azure y Google Cloud, el mensaje se llenará bastante.
Ingrese Mostrar al comando . Esta característica hace que los segmentos de mensajes aparezcan solo cuando son relevantes para el comando que está escribiendo actualmente.
Las configuraciones creadas por p10k configure
habilitan la visualización al comando para varios segmentos de mensajes de forma predeterminada. Aquí está el parámetro relevante para el contexto de 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 cuándo se muestran diferentes segmentos de mensajes, abra ~/.p10k.zsh
, busque SHOW_ON_COMMAND
y elimine estos parámetros para mostrar los segmentos afectados incondicionalmente o cambie sus valores.
Cuando el mensaje transitorio está habilitado a través de p10k configure
, Powerlevel10k recortará cada mensaje al aceptar una línea de comando.
El aviso transitorio hace que sea mucho más fácil copiar y pegar series de comandos desde el desplazamiento hacia atrás del terminal.
Consejo : si habilita el aviso transitorio, aproveche el aviso de dos líneas. Obtendrá el beneficio de espacio adicional para escribir comandos sin el inconveniente habitual de una densidad de desplazamiento reducida. El mensaje disperso (con una línea vacía antes del mensaje) también funciona muy bien en combinación con el mensaje transitorio.
El directorio de trabajo actual es quizás el segmento de aviso más importante. Powerlevel10k hace todo lo posible para resaltar sus partes importantes y truncarlas con la menor pérdida de información cuando el espacio horizontal escasea.
Cuando el directorio completo no cabe, el segmento más a la izquierda se trunca a su prefijo único más corto. En el screencast, ~/work
se convierte en ~/wo
. No se puede truncar a ~/w
porque sería ambiguo (había ~/wireguard
cuando se grabó la sesión). El siguiente segmento ( projects
) se convierte en p
ya que no había nada más que comenzara con p
en ~/work/
.
Los segmentos del directorio se muestran en uno de tres colores:
Consejo : si copia y pega un directorio truncado y presiona TAB , se completará con el original.
Solución de problemas : Es difícil ver el directorio en el mensaje cuando se utiliza el estilo Rainbow.
Powerlevel10k se puede configurar para que se parezca a cualquier otro tema de Zsh que exista.
Las emulaciones Pure, Powerlevel9k y robbyrussell están integradas. Para emular la apariencia de otros temas, necesitarás escribir un archivo de configuración adecuado. La mejor manera de hacerlo es ejecutar p10k configure
, seleccionar el estilo que esté más cerca de su objetivo y luego editar ~/.p10k.zsh
.
La gama completa de apariencia Powerlevel10k abarca desde espartano:
A ridículo extravagante:
Powerlevel10k viene con docenas de segmentos de avisos integrados de alta calidad que pueden mostrar información de una variedad de fuentes. Cuando ejecuta p10k configure
y elige cualquier estilo excepto Pure, muchos de estos segmentos se habilitan de forma predeterminada, mientras que otros se pueden habilitar manualmente abriendo ~/.p10k.zsh
y descomentándolos. Puedes habilitar tantos segmentos como quieras. No ralentizará el aviso ni el inicio de Zsh.
Segmento | Significado |
---|---|
anaconda | entorno virtual de conda |
asdf | versiones de herramientas de asdf |
aws | perfil de aws |
aws_eb_env | entorno de tallo de frijol elástico aws |
azure | nombre de cuenta azul |
background_jobs | presencia de trabajos de fondo |
battery | Estado de la batería interna y nivel de carga (sí, baterías literalmente incluidas) |
command_execution_time | duración (tiempo de pared) del último comando |
context | usuario@nombre de host |
cpu_arch | arquitectura de CPU |
dir | directorio de trabajo actual |
direnv | estado directo |
disk_usage | uso del disco |
dotnet_version | versión dotnet |
fvm | entorno de aleteo desde fvm |
gcloud | Cuenta y proyecto de Google Cloud CLI |
goenv | ir al entorno desde goenv |
google_app_cred | credenciales de la aplicación de google |
go_version | ir versión |
haskell_stack | versión haskell de la pila |
ip | Dirección IP y uso de ancho de banda para una interfaz de red específica |
java_version | versión java |
jenv | entorno java de jenv |
kubecontext | contexto actual de kubernetes |
laravel_version | versión del marco php laravel |
load | carga de CPU |
luaenv | entorno lua de luaenv |
midnight_commander | caparazón del comandante de medianoche |
nix_shell | indicador de shell nix |
nnn | nnn concha |
lf | si concha |
chezmoi_shell | concha chezmoi |
nodeenv | entorno node.js de nodeenv |
nodenv | entorno node.js de nodenv |
node_version | versión node.js |
nordvpn | estado de conexión nordvpn |
nvm | entorno node.js de nvm |
os_icon | el logotipo de su sistema operativo (apple para macOS, swirl para Debian, etc.) |
package | name@version del paquete.json |
per_directory_history | Oh My Zsh indicador local/global por historial de directorio |
perlbrew | versión perl de perlbrew |
phpenv | entorno php desde phpenv |
php_version | versión php |
plenv | entorno perl desde plenv |
prompt_char | símbolo de aviso multifuncional; cambia dependiendo del modo vi: ❯ , ❮ , V , ▶ para el modo insertar, comando, visual y reemplazar respectivamente; se pone rojo por error |
proxy | proxy http/https/ftp en todo el sistema |
public_ip | dirección IP pública |
pyenv | entorno Python desde pyenv |
ram | RAM libre |
ranger | caparazón de guardabosques |
yazi | concha yazi |
rbenv | entorno rubí de rbenv |
rust_version | versión rústica |
rvm | entorno rubí de rvm |
scalaenv | versión scala de scalaenv |
status | código de salida del último comando |
swap | intercambio usado |
taskwarrior | recuento de tareas de taskwarrior |
terraform | espacio de trabajo terraformar |
terraform_version | versión terraformar |
time | hora actual |
timewarrior | estado de seguimiento del guerrero del tiempo |
todo | tareas pendientes |
toolbox | nombre de la caja de herramientas |
vcs | Estado del repositorio de Git |
vim_shell | shell vim ( :sh ) |
virtualenv | entorno Python desde venv |
vi_mode | modo vi (no lo necesita si ha habilitado Prompt_char) |
vpn_ip | indicador de red privada virtual |
wifi | velocidad wifi |
xplr | cáscara xplr |
Si no hay un segmento rápido que haga lo que necesita, implemente el suyo propio. Powerlevel10k proporciona una API pública para definir segmentos que son tan rápidos y flexibles como los integrados.
En Linux, puede obtener la temperatura actual de la CPU leyendo /sys/class/thermal/thermal_zone0/temp
. El screencast muestra cómo definir un segmento de aviso para mostrar este valor. Una vez definido el segmento, puede utilizarlo como cualquier otro segmento. Todos los parámetros de personalización estándar funcionarán desde el primer momento.
Escriba p10k help segment
como referencia.
Nota : Si modifica los parámetros POWERLEVEL9K_*
en un shell interactivo ya inicializado (en lugar de editar ~/.p10k.zsh
), es posible que los cambios no entren en vigor de inmediato. Para aplicar las modificaciones, invoque p10k reload
. Configurar POWERLEVEL9K_DISABLE_HOT_RELOAD=false
elimina la necesidad de p10k reload
pero da como resultado un mensaje ligeramente más lento.
Consejo : prefije los nombres de sus propios segmentos con my_
para evitar conflictos con versiones futuras de Powerlevel10k.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Los usuarios de China pueden utilizar el espejo oficial en gitee.com para una descarga más rápida.
中国用户可以使用 gitee.com 上的官方镜像加速下载.
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
Este es el tipo de instalación más simple y funciona incluso si estás utilizando un administrador de complementos. Solo asegúrate de deshabilitar el tema actual en tu administrador de complementos. Consulte solución de problemas para obtener ayuda.
Clonar el repositorio:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
Los usuarios de China pueden utilizar el espejo oficial en gitee.com para una descarga más rápida.
中国用户可以使用 gitee.com 上的官方镜像加速下载.
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
Abra ~/.zshrc
, busque la línea que establece ZSH_THEME
y cambie su valor a "powerlevel10k/powerlevel10k"
.
Agregue zstyle :prezto:module:prompt theme powerlevel10k
a ~/.zpreztorc
.
Agregue zmodule romkatv/powerlevel10k --use degit
a ~/.zimrc
y ejecute zimfw install
.
Agregue antibody bundle romkatv/powerlevel10k
a ~/.zshrc
.
Agregue romkatv/powerlevel10k
a ~/.zsh_plugins.txt
.
Agregue antigen theme romkatv/powerlevel10k
a ~/.zshrc
. Asegúrese de antigen apply
en algún lugar posterior.
Agregue zplug romkatv/powerlevel10k, as:theme, depth:1
a ~/.zshrc
.
Agregue zgen load romkatv/powerlevel10k powerlevel10k
a ~/.zshrc
.
Agregue zplugin ice depth=1; zplugin light romkatv/powerlevel10k
a ~/.zshrc
.
El uso de hielo depth=1
es opcional. Powerlevel10k no recomienda ni admite oficialmente otros tipos de hielo.
Agregue zinit ice depth=1; zinit light romkatv/powerlevel10k
a ~/.zshrc
.
El uso de hielo depth=1
es opcional. Powerlevel10k no recomienda ni admite oficialmente otros tipos de hielo.
Agregue zi ice depth=1; zi light romkatv/powerlevel10k
a ~/.zshrc
.
El uso de hielo depth=1
es opcional. Powerlevel10k no recomienda ni admite oficialmente otros tipos de hielo.
Agregue 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 al que se hace referencia anteriormente es el paquete oficial 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 las instrucciones de esta página.
En la primera ejecución, el asistente de configuración de Powerlevel10k le hará algunas preguntas y configurará su mensaje. Si no se activa automáticamente, escriba p10k configure
. El asistente de configuración crea ~/.p10k.zsh
según sus preferencias. Se puede realizar una personalización adicional del mensaje editando este archivo. Tiene muchos comentarios para ayudarle a navegar por las opciones de configuración.
Preguntas frecuentes :
Solución de problemas :
Si ha estado usando Powerlevel9k antes, no elimine las opciones de configuración . Powerlevel10k los recogerá y le proporcionará la misma interfaz de usuario a la que está acostumbrado. Consulte compatibilidad con Powerlevel9k.
Preguntas frecuentes :
Solución de problemas : espacios adicionales o faltantes en el mensaje en comparación con Powerlevel9k.
Powerlevel10k no requiere fuentes personalizadas, pero puede aprovecharlas si están disponibles. Funciona bien con Nerd Fonts, Source Code Pro, Font Awesome, Powerline e incluso las fuentes predeterminadas del sistema. La elección completa de opciones de estilo está disponible solo cuando se utilizan Nerd Fonts.
? Fuente recomendada : Meslo Nerd Font parcheada para Powerlevel10k. ?
Magnífica fuente monoespaciada diseñada por Jim Lyles para Bitstream, personalizada por el mismo para Apple, personalizada aún más por André Berg y finalmente parcheada por un servidor con scripts personalizados desarrollados originalmente por Ryan L McIntyre de Nerd Fonts. Contiene todos los glifos y símbolos que Powerlevel10k pueda necesitar. Probado en batalla en docenas de terminales diferentes en todos los principales sistemas operativos.
Preguntas frecuentes : ¿Cómo se creó la fuente recomendada?
Si está utilizando iTerm2 o Termux, p10k configure
puede instalar la fuente recomendada por usted. Simplemente responda Yes
cuando se le pregunte si desea instalar Meslo Nerd Font .
Si está utilizando una terminal diferente, continúe con la instalación manual de fuentes. ?
MesloLGS NF
esté disponible para todas las aplicaciones de su sistema.p10k configure
y responda Yes
cuando se le pregunte si desea instalar Meslo Nerd Font . Alternativamente, abra iTerm2 → Preferencias → Perfiles → Texto y configure Fuente en MesloLGS NF
.MesloLGS NF
.fontFamily
en module.exports.config
a MesloLGS NF
.terminal.integrated.fontFamily
en el cuadro de búsqueda en la parte superior de la pestaña Configuración y establezca el valor a continuación en MesloLGS NF
. Consulte esta captura de pantalla para ver cómo debería verse o consulte este problema para obtener información adicional.MesloLGS NF Regular
.MesloLGS NF Regular
.MesloLGS NF Regular
.MesloLGS NF
.MesloLGS NF
.MesloLGS NF
.MesloLGS NF
.p10k configure
y responda Yes
cuando se le pregunte si desea instalar Meslo Nerd Font .config
, vaya a Apariencia , toque Agregar una nueva fuente , toque Abrir galería , seleccione MesloLGS NF.css , toque importar y escriba exit
en la vista de inicio para recargar la fuente.MesloLGS NF
.MesloLGS NF Regular
. Salga del cuadro de diálogo Preferencias haciendo clic en Cerrar .MesloLGS NF Regular
. Salga del cuadro de diálogo Preferencias haciendo clic en Cerrar .MesloLGS NF
. Si tiene sesiones , debe cambiar la fuente en cada una de ellas a través de Configuración → hacer clic derecho en una sesión individual → Editar sesión → Configuración del terminal → Configuración de fuente .MesloLGS NF Regular
. Para cambiar la fuente para las conexiones del host remoto, vaya a Preferencias → Opciones de terminal → Apariencia y cambie Fuente: en Terminal UI a MesloLGS NF Regular
.MesloLGS NF
.MesloLGS NF Regular
.MesloLGS NF
y haga clic en Aceptar . Haga clic en Aceptar para guardar el perfil. Seleccione el nuevo perfil y haga clic en Establecer como predeterminado .~/.config/alacritty/alacritty.toml
y agrega la siguiente sección: [ font . normal ]
family = " MesloLGS NF "
~/.config/foot/foot.ini
y agregue la siguiente sección: font =MesloLGS NF: size =12
~/.config/kitty/kitty.conf
y agrega la siguiente línea: font_family MesloLGS NF
MesloLGS NF
. Requiere la versión PuTTY >= 0,75.$HOME/.config/wezterm/wezterm.lua
y agregue lo siguiente: local wezterm = require ' wezterm ' ;
return {
font = wezterm . font ( " MesloLGS NF " ),
}
~/.Xresources
y agregue la siguiente línea: URxvt.font: xft:MesloLGS NF:size=11
xrdb ~/.Xresources
para recargarla. La nueva configuración se aplica a todos los terminales nuevos.~/.Xresources
y agrega la siguiente línea: xterm*faceName: MesloLGS NF
xrdb ~/.Xresources
para recargarla. La nueva configuración se aplica a todos los terminales nuevos.~/.config/zed/settings.json
y configure terminal.font_family
en "MesloLGS NF"
. {
"terminal" : {
"font_family" : "MesloLGS NF"
} ,
// Other settings.
}
'MesloLGS NF'
(incluidas las comillas) y CSS personalizado (texto en línea) en lo siguiente: @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
y agrega la siguiente sección: [basic.interface.font]
value = " MesloLGS NF "
p10k configure
para generar un nuevo ~/.p10k.zsh
. Es posible que la configuración anterior funcione incorrectamente con la nueva fuente.¿Estás usando un terminal diferente y sabes cómo configurar la fuente? ¡Comparta sus conocimientos enviando un PR para ampliar la lista!
Pruebe Powerlevel10k en Docker. Puede realizar cambios en el sistema de archivos de forma segura mientras prueba el tema. Una vez que sale de Zsh, el contenedor se elimina.
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 '
Consejo : instale la fuente recomendada antes de ejecutar el comando Docker para obtener acceso a todos los estilos de solicitud.
Consejo : ejecute p10k configure
mientras está en Docker para probar un estilo de mensaje diferente.
Powerlevel10k se lanza bajo la licencia MIT.
$HOME/.git
en el mensaje?El comando para actualizar Powerlevel10k depende de cómo se instaló.
Instalación | Comando de actualización |
---|---|
Manual | git -C ~/powerlevel10k pull |
Oh mi 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 |
Zplug | zplug update |
Zgen | zgen update |
Zplugin | zplugin update |
zinita | zinit update |
zi | zi update |
Borrar | zap update |
cerveza casera | brew update && brew upgrade |
Arco Linux | yay -S --noconfirm zsh-theme-powerlevel10k-git |
Linux alpino | apk update && apk upgrade |
IMPORTANTE : reinicie Zsh después de actualizar Powerlevel10k. No utilice source ~/.zshrc
.
Elimine todas las referencias a "p10k" de ~/.zshrc
. Es posible que tengas este fragmento en la parte superior:
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
Y esto abajo:
[[ ! -f ~ /.p10k.zsh ]] || source ~ /.p10k.zsh
Estos los agrega el asistente de configuración. Retírelos.
Elimine todas las referencias a "powerlevel10k" de ~/.zshrc
, ~/.zpreztorc
y ~/.zimrc
(es posible que falten algunos de estos archivos; esto es normal). Estas referencias las agregó usted mismo manualmente al instalar Powerlevel10k. Consulte las instrucciones de instalación si necesita un recordatorio.
Verifique que todas las referencias a "p10k" y "powerlevel10k" hayan desaparecido de ~/.zshrc
, ~/.zpreztorc
y ~/.zimrc
.
grep -E ' p10k|powerlevel10k ' ~ /.zshrc ~ /.zpreztorc ~ /.zimrc 2> /dev/null
Si este comando produce resultados, todavía hay referencias a "p10k" o "powerlevel10k". Necesitas eliminarlos.
Elimine el archivo de configuración de Powerlevel10k. Este archivo lo crea el asistente de configuración y puede contener ediciones manuales realizadas por usted mismo.
rm -f ~ /.p10k.zsh
Elimine los archivos fuente de Powerlevel10k. Estos archivos se descargaron cuando instaló Powerlevel10k. El comando para eliminarlos depende del método de instalación que haya elegido. Consulte las instrucciones de instalación si necesita un recordatorio.
Instalación | Comando de desinstalación |
---|---|
Manual | rm -rf ~/powerlevel10k |
Oh mi Zsh | rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k |
Prezto | n / A |
zim | zimfw uninstall |
Antígeno | antigen purge romkatv/powerlevel10k |
Antídoto | antidote purge romkatv/powerlevel10k |
Zplug | zplug clean |
Zgen | zgen reset |
Zplugin | zplugin delete romkatv/powerlevel10k |
zinita | zinit delete romkatv/powerlevel10k |
zi | zi delete romkatv/powerlevel10k |
Borrar | zsh -ic 'zap clean' |
cerveza casera | brew uninstall powerlevel10k |
Arco Linux | yay -R --noconfirm zsh-theme-powerlevel10k-git |
Linux alpino | apk del zsh-theme-powerlevel10k |
Reinicie Zsh. No utilice source ~/.zshrc
.
Elimine los archivos de caché 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
con el resultado del 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
de la máquina conectada a Internet a la que no tiene acceso a Internet.source ~/powerlevel10k/powerlevel10k.zsh-theme
a ~/.zshrc
en la máquina sin acceso a Internet: echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
~/.zshrc
en la máquina sin acceso a Internet establece ZSH_THEME
, elimine esa línea. sed -i.bak ' /^ZSH_THEME=/d ' ~ /.zshrc
Para actualizar, elimine ~/powerlevel10k
en ambas máquinas y repita los pasos 1-3.
La mejor manera de pedir ayuda e informar errores es abrir un problema.
Gitter es otra opción.
Si todo lo demás falla, envíe un correo electrónico a [email protected].
Si es necesario, cifre su comunicación con esta clave PGP.
Powerlevel10k define aviso y nada más. Establece opciones relacionadas con el mensaje y los parámetros PS1
y RPS1
.
Todo lo que se encuentra dentro de las áreas resaltadas en la captura de pantalla es producido por Powerlevel10k. Powerlevel10k no tiene control sobre el contenido o los colores del terminal fuera de estas áreas.
Powerlevel10k no afecta:
ls
.git
.PS1
y 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
y elija su estilo de mensaje favorito.Relacionado:
Sí. Consulte zsh-bench o una comparación directa con Powerlevel9k y Spaceship.
Consulte el aviso instantáneo para obtener más información sobre el aviso instantáneo. Esta sección explica cómo habilitarlo y configurarlo y enumera las advertencias que debe tener en cuenta.
El aviso instantáneo se puede habilitar a través de p10k configure
o agregando manualmente el siguiente fragmento de código en la 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
Es importante que copie las líneas palabra por palabra. No reemplace source
con otra cosa, no llame zcompile
, no redirija la salida, etc.
Cuando el aviso instantáneo está habilitado, durante la inicialización de Zsh, la entrada estándar se redirige a /dev/null
y la salida estándar con error estándar se redirige a un archivo temporal. Una vez que Zsh se inicializa por completo, se restauran los descriptores de archivos estándar y se imprime el contenido del archivo temporal.
Cuando utilice el aviso instantáneo, debe verificar cuidadosamente cualquier resultado que aparezca al iniciar Zsh, ya que puede indicar que la inicialización ha sido alterada, o tal vez incluso rota, por el aviso instantáneo. El código de inicialización que puede requerir entrada de consola, como solicitar una contraseña de conjunto de claves o una confirmación [y/n] , se debe mover encima del preámbulo del mensaje instantáneo en ~/.zshrc
. El código de inicialización que simplemente se imprime en la consola pero nunca se lee desde ella funcionará correctamente con el aviso instantáneo, aunque la salida que normalmente tiene colores puede aparecer sin color. Puede dejarlo así, suprimir la salida o moverlo encima del preámbulo del mensaje instantáneo.
A continuación se muestra un ejemplo de ~/.zshrc
que se interrumpe cuando se habilita el aviso instantáneo:
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
keychain id_rsa --agents ssh # asks for password
chatty-script # spams to stdout even when everything is fine
# ...
Versión fija:
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
# ...
Si POWERLEVEL9K_INSTANT_PROMPT
no está configurado o está configurado en verbose
, Powerlevel10k imprimirá una advertencia cuando detecte la salida de la consola durante la inicialización para llamar la atención sobre posibles problemas. Puede silenciar esta advertencia (sin suprimir la salida de la consola) con POWERLEVEL9K_INSTANT_PROMPT=quiet
. Esto se recomienda si algún código de inicialización en ~/.zshrc
se imprime en la consola y no es factible moverlo por encima del preámbulo del mensaje instantáneo o suprimir su salida. Puede desactivar completamente el aviso instantáneo con POWERLEVEL9K_INSTANT_PROMPT=off
. Haga esto si el aviso instantáneo interrumpe la inicialización de Zsh y no sabe cómo solucionarlo.
El valor de POWERLEVEL9K_INSTANT_PROMPT
se puede cambiar ejecutando p10k configure
y seleccionando la opción apropiada en la pantalla Instant Prompt . Alternativamente, puede buscar POWERLEVEL9K_INSTANT_PROMPT
en el ~/.p10k.zsh
existente y cambiar su valor allí.
Nota : El aviso instantáneo requiere Zsh >= 5.4. Está bien habilitarlo incluso cuando se usa una versión anterior de Zsh, pero no hará nada.
Preguntas frecuentes :
Si ha habilitado el aviso instantáneo, debería tener estas líneas en la parte superior 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 direnv necesita agregar una línea encima de ese bloque y una línea debajo de él.
(( ${+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 : ¿Cómo exporto GPG_TTY cuando uso el aviso instantáneo?
Puedes exportar GPG_TTY
así en cualquier lugar de ~/.zshrc
:
export GPG_TTY= $TTY
Esto funciona tanto si utiliza el aviso instantáneo como si no. Funciona incluso si no estás usando powerlevel10k. Como beneficio adicional, es mucho más rápido que la export GPG_TTY=$(tty)
comúnmente utilizada.
Relacionado : ¿Cómo inicializo direnv cuando uso el aviso instantáneo?
Cuando se utiliza el estilo Lean, Classic o Rainbow, el estado de Git puede verse así:
feature:master wip ⇣42⇡42 ⇠42⇢42 *42 merge ~42 +42 !42 ?42
Símbolo | Significado | Fuente |
---|---|---|
feature | sucursal actual; reemplazado con #tag o @commit si no está en una rama | git status --ignore-submodules=dirty |
master | sucursal de seguimiento remoto; solo se muestra si es diferente de la sucursal local | git rev-parse --abbrev-ref --symbolic-full-name @{upstream} |
wip | el resumen del último compromiso contiene "wip" o "WIP" | git show --pretty=%s --no-patch HEAD |
= | al día con el mando (ni delante ni detrás) | git rev-list --count HEAD...@{upstream} |
⇣42 | tantos commits detrás del control remoto | git rev-list --right-only --count HEAD...@{upstream} |
⇡42 | tantos compromisos por delante del control remoto | git rev-list --left-only --count HEAD...@{upstream} |
⇠42 | Esta cantidad de confirmaciones detrás del control remoto push | git rev-list --right-only --count HEAD...@{push} |
⇢42 | Esta cantidad de confirmaciones antes del control remoto. | git rev-list --left-only --count HEAD...@{push} |
*42 | tantos escondites | git stash list |
merge | estado del repositorio | git status --ignore-submodules=dirty |
~42 | tantos conflictos de fusión | git status --ignore-submodules=dirty |
+42 | tantos cambios escalonados | git status --ignore-submodules=dirty |
!42 | tantos cambios sin etapas | git status --ignore-submodules=dirty |
?42 | tantos archivos sin seguimiento | git status --ignore-submodules=dirty |
─ | se desconoce el número de archivos preparados, no preparados o sin seguimiento | echo $POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY o git config --get bash.showDirtyState |
Relacionado : ¿Cómo cambio el formato del estado de Git?
Para cambiar el formato del estado de Git, abra ~/.p10k.zsh
, busque my_git_formatter
y edite su código fuente.
Relacionado : ¿Qué significan los diferentes símbolos en el estado de Git?
$HOME/.git
no se muestra en el aviso? Cuando se usa estilo Lean, Classic o Rainbow, ~/.p10k.zsh
contiene el siguiente 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 el estado de git para $HOME/.git
en el aviso, abra ~/.p10k.zsh
y elimine POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN
.
tl; dr: Cuando el estado de git en el aviso está gris, significa que PowerLevel10k actualmente está calculando el estado de git actualizado en segundo plano. La solicitud se actualizará automáticamente cuando se complete este cálculo.
Cuando su directorio actual está dentro de un repositorio Git, PowerLevel10k calcula el estado de Git actualizado después de cada comando. Si el repositorio es grande o la máquina es lenta, este cálculo puede tomar bastante tiempo. Si lleva más de 10 milisegundos (configurables a través de POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS
), PowerLevel10k muestra el último estado de Git conocido en gris y continúa calculando el estado de GIT actualizado en el fondo. Cuando se completa el cálculo, PowerLevel10k se actualiza con nueva información, esta vez con el estado de Git de color.
Cuando se usa el estilo Rainbow , el estado de Git se muestra como negro en el gris mientras aún se calcula. Dependiendo de la paleta de colores terminales, esto puede ser difícil de leer. En este caso, es posible que desee cambiar el color de fondo a algo más claro para un mayor contraste. Para hacer eso, abra ~/.p10k.zsh
, busque POWERLEVEL9K_VCS_LOADING_BACKGROUND
, sin comment si se comenta y cambia el valor.
typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=244
Escriba source ~/.p10k.zsh
para aplicar sus cambios a la sesión ZSH actual.
RELACIONADO : ¿Cómo cambio los colores inmediatos?
Cuando se usa estilo Lean, Classic o Rainbow, el nombre muestra username@hostname
cuando ha iniciado sesión como root o a través de SSH. Hay poco valor en mostrar username
o hostname
cuando ha iniciado sesión en su máquina local como usuario normal. Entonces, la ausencia de username@hostname
en su mensaje es una indicación de que está trabajando localmente y que no está root. Sin embargo, puedes cambiarlo.
Abierto ~/.p10k.zsh
. Cerca de la parte superior puede ver los parámetros más importantes que definen qué segmentos se muestran en su mensaje. Todos los segmentos rápidos generalmente útiles se enumeran allí. Algunos de ellos están habilitados, otros son comentados. Uno de ellos es de interés para ti.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
...
context # user@hostname
...
)
Busque context
para encontrar la sección en la configuración que enumera los parámetros específicos de este segmento de inmediato. Deberías ver las siguientes líneas:
# 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=
Si sigue el consejo y elimina (o comenta) la última línea, siempre verá username@hostname
en el aviso. Puede cambiar el formato a solo username
o cambiar el color, ajustando los valores de los parámetros cercanos. Hay muchos comentarios para ayudarlo a navegar.
También puede mover context
a una posición diferente en POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
o incluso a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
.
Los segmentos de inmediato se pueden configurar para mostrarse solo cuando el comando actual que está escribiendo invoca una herramienta 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 '
Las configuraciones creadas por p10k configure
pueden contener parámetros de este tipo. Para personalizar cuándo se muestran diferentes segmentos de inmediato, abra ~/.p10k.zsh
, busque SHOW_ON_COMMAND
y elimine estos parámetros o cambie sus valores.
También puede definir una función en ~/.zshrc
para alternar la visualización de un segmento rápido entre siempre y en el comando . Esto es similar a kubeon
/ kubeoff
de 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
}
Invoca esta función escribiendo kube-toggle
. También puede unirlo a una clave agregando dos líneas más a ~/.zshrc
:
zle -N kube-toggle
bindkey ' ^] ' kube-toggle # ctrl-] to toggle kubecontext in powerlevel10k prompt
Puede cambiar la paleta de colores utilizada por su terminal o establecer colores a través de parámetros de configuración PowerLevel10k.
La forma en que cambia exactamente la paleta de colores terminal (también conocido como esquema de color o tema) depende del tipo de terminal que esté utilizando. Mire a su alrededor en las configuraciones/preferencias de Terminal o consulte a la documentación.
Cuando cambia la paleta de colores terminales, generalmente afecta solo los primeros 16 colores, numerados de 0 a 15. Para ver cualquier efecto en el aviso de Alevel10k, debe usar un estilo de inmediato que utilice estos colores de bajo número. Escriba p10k configure
y seleccione Rainbow , Lean → 8 colores o Pure → Original . Otros estilos usan colores más altos, por lo que se ven igual en cualquier paleta de colores terminales.
Abra ~/.p10k.zsh
, busque "color", "primer plano" y "fondo" y cambie los valores de los parámetros apropiados. Por ejemplo, así es como puede establecer el segmento de inmediato en el primer plano de time
en rojo brillante:
typeset -g POWERLEVEL9K_TIME_FOREGROUND=160
Los colores se especifican utilizando números de 0 a 255. Los colores de 0 a 15 se ven de manera diferente en diferentes terminales. Muchos terminales también admiten la personalización de estos colores a través de paletas de colores (también conocidos como esquemas de color o temas). Los colores de 16 a 255 siempre se ven iguales.
Escriba source ~/.p10k.zsh
para aplicar sus cambios a la sesión ZSH actual.
Para ver cómo se ven los diferentes colores numerados en su terminal, ejecute el siguiente 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
Si su terminal admite TrueColor, puede usar colores de 24 bits en el formato #RRGGBB
además de los colores numerados.
typeset -g POWERLEVEL9K_TIME_FOREGROUND= ' #FF0000 '
Relacionado:
Por defecto, el terminal VSCode puede reemplazar arbitrariamente el color de primer plano de su elección con un color diferente. Este comportamiento se puede apagar en la configuración de VScode.
PowerLevel10k usa GitStatus como el backend detrás del mensaje vcs
; Gitstatus genera gitstatusd
y zsh
. Ver Gitstatus para más detalles. PowerLevel10k también puede generar zsh
para realizar el cálculo sin bloquear la solicitud. Para evitar el riesgo de seguridad, estos procesos de fondo no son compartidos por diferentes capas interactivas. Terminan automáticamente cuando el proceso zsh
principal termina o ejecuta exec(3)
.
No, PowerLevel10k siempre es rápido, con cualquier configuración que le arroje. Si tiene una notable latencia rápida cuando usa PowerLevel10k, abra un problema.
Sí. Ver ZSH-Bench.
PowerLevel10k fue bifurcado de PowerLevel9k en marzo de 2019 después de una discusión de una semana en PowerLevel9k#1170. PowerLevel9k ya era un proyecto maduro con una gran base de usuarios y un ciclo de liberación medido en meses. PowerLevel10k se hizo iterar en mejoras de rendimiento y nuevas características a un ritmo mucho más alto.
PowerLevel9k y PowerLevel10k son proyectos independientes. Al usar uno, no debe instalar el otro. Los problemas deben presentarse contra el proyecto que realmente usa. No hay individuos que tengan derechos de cometer en ambos repositorios. Todas las correcciones de errores y nuevas características comprometidas con el repositorio de PowerLevel9k se portan a PowerLevel10k.
Con el tiempo, prácticamente todo el código en PowerLevel10k ha sido reescrito. Actualmente no hay una superposición significativa entre las implementaciones de PowerLevel9k y PowerLevel10k.
PowerLevel10k se compromete a mantener la compatibilidad con retroceso con todas las configuraciones indefinidamente. Este compromiso cubre todos los parámetros de configuración reconocidos por PowerLevel9k (ver compatibilidad PowerLevel9k) y parámetros adicionales que solo PowerLevel10k entiende. Los nombres de todos los parámetros en powerLevel10k comienzan con POWERLEVEL9K_
para consistencia.
Casi. Hay algunas diferencias.
git
VCS Backend está habilitado en PowerLevel10k. Si necesita svn
y hg
, agrégalos a POWERLEVEL9K_VCS_BACKENDS
. Estos backends aún no están optimizados en PowerLevel10k, por lo que habilitarlos hará muy lento .POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY=true
.POWERLEVEL9K_MODE
antes de obtener el tema. Este parámetro es ignorado por PowerLevel9k pero honrado por PowerLevel10k. Si desea que su aviso se vea en PowerLevel10k lo mismo que en PowerLevel9k, elimine POWERLEVEL9K_MODE
.ZLE_RPROMPT_INDENT
. Como resultado, la solicitud correcta en PowerLevel10k puede tener un espacio adicional al final en comparación con PowerLevel9k. Establezca ZLE_RPROMPT_INDENT=0
si no desea ese espacio. Más detalles en la resolución de problemas.POWERLEVEL9K_LEGACY_ICON_SPACING=true
para obtener el mismo espacio que en PowerLevel9k. Más detalles en la resolución de problemas.Si nota otros cambios en la aparición rápida al cambiar de PowerLevel9k a PowerLevel10k, abra un problema.
Hay tantas opiniones sobre lo que constituye el mejor aviso como personas. Se reduce principalmente a la preferencia personal. Sin embargo, hay algunas implicaciones ocultas de diferentes opciones.
Pure Style es una replicación exacta del tema Pure ZSH. Existe para aliviar la migración para los usuarios de este tema. A menos que sea uno de ellos, elija estilo Lean sobre puro.
Si desea limitar los colores de inmediato a la paleta de colores terminal seleccionada (por ejemplo, Solarized Dark ), use Rainbow , Lean → 8 colores o Pure → Original . Otros estilos usan colores fijos y, por lo tanto, se ven igual en cualquier paleta de colores terminal.
Todos los estilos, excepto puro, tienen la opción de usar Charset ASCII . El aviso se verá menos bonito, pero se volverá correctamente con todas las fuentes y en todos los lugares.
Si habilita el aviso transitorio, aproveche el indicador de dos líneas. Obtendrá el beneficio del espacio adicional para escribir comandos sin el inconveniente habitual de una densidad de espalda reducida. Hacer que todos los comandos comiencen desde el mismo desplazamiento también es bueno.
Del mismo modo, si habilita el aviso transitorio, el aviso escaso (con una línea vacía antes del indicador) es una gran opción.
Si está utilizando VI KEYMAP, elija Aplicación con prompt_char
en él (que se muestra como verde ❯
en el asistente). Este símbolo cambia según el modo VI: ❯
, ❮
, V
, ▶
Para insertar, comando, visual y reemplazar el modo respectivamente. Cuando falla un comando, el símbolo se vuelve rojo. El estilo Lean siempre tiene prompt_char
en él. Rainbow y los estilos clásicos lo tienen solo en la configuración de dos líneas sin el marco izquierdo.
Si valora el espacio horizontal o prefiere la estética minimalista:
Nota : Puede ejecutar el asistente de configuración tantas veces como desee. Escriba p10k configure
para probar un nuevo estilo de inmediato.
Use esta configuración.
Puede descargarlo, guardar como ~/.p10k.zsh
y source ~/.p10k.zsh
desde ~/.zshrc
, o fuente p10k-robbyrussell.zsh
directamente desde su repositorio de powerlevel10k
clonado.
No. Cuando presiona Enter y el comando que ha escrito comienza a ejecutar, su estado de error aún no se sabe, por lo que no se puede mostrar en el aviso. Cuando se completa el comando, el estado de error se conoce, pero ya no es posible actualizar la solicitud para ese comando. Es por eso que el estado de error para cada comando se refleja en el siguiente mensaje.
Para más detalles, consulte esta publicación en /r /zsh.
ZSH 5.3 o más nuevo debería funcionar. El inicio rápido requiere ZSH> = 5.4.
Todas las capturas de pantalla y los GIF animados se grabaron en la terminal GNOME con la fuente recomendada y la paleta de colores oscuros de tango con color de fondo personalizado ( #171A1B
en lugar de #2E3436
, el doble de oscuro).
El resaltado de sintaxis, donde presente, fue proporcionado por ZSH-Syntax-Highlighting.
La fuente recomendada es el producto de muchas personas. Su origen es Bittream Vera Sans Mono , que ha dado a luz a Menlo , que a su vez ha generado Meslo . Finalmente, se han agregado glifos adicionales a Meslo con scripts bifurcados de fuentes nerd. La fuente final se libera bajo los términos de la licencia Apache.
Meslolgs NF Font se puede recrear con el siguiente comando (requiere git
y docker
):
git clone --depth=1 https://github.com/romkatv/nerd-fonts.git
cd nerd-fonts
./build ' Meslo/S/* '
Si todo va bien, aparecerán cuatro archivos ttf
./out
.
Actualmente no es fácil ni recomendado para empaquetar y distribuir PowerLevel10k. No hay instrucciones que pueda seguir que le permitan actualizar fácilmente su paquete cuando se lanzan nuevas versiones de PowerLevel10k. Esto puede cambiar en el futuro pero no pronto.
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
source ~/.zshrc
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
Al abrir un terminal o comenzar MSH manualmente, puede encontrar este mensaje de error:
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
typeset -p P9K_VERSION
para verificar si PowerLevel10k se ha cargado.typeset -p P9K_VERSION
tiene éxito e imprime algo como typeset P9K_VERSION=1.19.14
(la versión podría ser diferente), elimine la siguiente línea de ~/.zshrc
: ZSH_THEME= " powerlevel10k/powerlevel10k "
typeset -p P9K_VERSION
falla con el error typeset: no such variable: P9K_VERSION
, ejecute el siguiente comando: git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
exec zsh
. Si parece un habitual ?
, eso es normal. Significa que tiene archivos no seguidos en el repositorio Git actual. Escriba git status
para ver estos archivos. Puede cambiar este símbolo o deshabilitar la visualización de archivos no seguidos por completo. Busque untracked files
en ~/.p10k.zsh
.
Preguntas frecuentes : ¿Qué significan los diferentes símbolos en el estado de git?
También puede obtener un signo de interrogación de aspecto extraño en su mensaje si a la fuente de su terminal le falta algunos glifos. Ver íconos, glifos o símbolos de línea eléctrica no renderizan.
Reinicie su terminal, instale la fuente recomendada y ejecute p10k configure
.
Hay tres imperfecciones en la captura de pantalla. De izquierda a derecha:
Los temas de ZSH no tienen control de píxeles sobre el contenido terminal. Todo lo que ves en la pantalla está hecho de personajes monoespaciales. Un segmento de aviso de línea de potencia blanca está hecho de texto sobre fondo blanco seguido de U+E0B0 (un triángulo de punta derecha).
Si PowerLevel10k solicita imperfecciones alrededor de los símbolos de la línea eléctrica, verá exactamente las mismas imperfecciones con todos los temas de la línea eléctrica (Agnoster, PowerLevel9k, Powerline, etc.)
Hay varias cosas que puede tratar de lidiar con estas imperfecciones:
Una solución más radical es cambiar a un estilo indicado sin fondo. Escriba p10k configure
y seleccione Lean . Este estilo tiene un aspecto moderno de peso ligero. Como beneficio adicional, no sufre de hacer imperfecciones que afecten el indicador de estilo Powerline.
Escriba echo 'u276F'
. Si recibe un error que dice "ZSH: el personaje no en el rango", su localidad no es compatible con UTF-8. Necesitas arreglarlo. Si está ejecutando ZSH sobre SSH, vea esto. Si está ejecutando ZSH localmente, Google "Establezca UTF-8 en su sistema operativo ".
Escriba echo 'u276F'
. Si recibe un error que dice "ZSH: el personaje no en el rango", consulte la sección anterior.
Si el comando echo
imprime ❯
pero el cursor todavía está en el lugar incorrecto, instale la fuente recomendada y ejecute p10k configure
.
Si esto no ayuda, agregue unset ZLE_RPROMPT_INDENT
en la parte inferior de ~/.zshrc
.
¿Sigues teniendo problemas? Ejecute el siguiente comando para diagnosticar el 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 |
+------------------------------+
Si la salida del comando está alineada por cada parte de su mensaje (izquierda y derecha), esto indica un error en el tema o su configuración. Use este comando para diagnosticarlo:
print -rl -- ${(eq+)PROMPT} ${(eq+)RPROMPT}
Busque %{...%}
y la barra inalcanzada se escapa en la salida. Si hay alguno, son los probables culpables. Abra un problema si te atascas.
+-----------------------------+
| romka@adam ✓ ~/powerlevel10k |
+-----------------------------+
Esto generalmente es causado por un error terminal o una configuración errónea que lo hace imprimir caracteres de ancho ambiguo como doble ancho en lugar de ancho único. Por ejemplo, este problema.
+------------------------------+
| romka@adam ✓~/powerlevel10k |
+------------------------------+
Tenga en cuenta que este aviso es diferente del original, ya que le falta un espacio después de la marca de verificación.
Esto puede ser causado por un error de bajo nivel en MacOS. Ver este problema.
Esto también puede suceder si el indicador contiene glifos designados como "anchos" en el estándar Unicode y su terminal los muestra incorrectamente como no anchos. Los terminales que sufren de esta limitación incluyen Konsole, Hyper y el terminal VSCode integrado. La solución es usar un terminal diferente o eliminar todos los glifos anchos de la solicitud.
+--------------------------------+
| romka@adam ✓ ~/powerlevel10k |
+--------------------------------+
Esto puede ser causado por un lugar mal configurado. Ver este problema.
Ver el cursor está en el lugar equivocado.
Ver el cursor está en el lugar equivocado.
Cuando PowerLevel10k comienza, ejecuta automáticamente p10k configure
si no se definen parámetros POWERLEVEL9K_*
. Según sus opciones de estilo de inmediato, el asistente de configuración crea ~/.p10k.zsh
con un montón de parámetros POWERLEVEL9K_*
en él y agrega una línea a ~/.zshrc
para obtener este archivo. La próxima vez que inicie ZSH, el Asistente de configuración no debe ejecutarse automáticamente. Si lo hace, esto significa la evaluación de ~/.zshrc
termina prematuramente antes de que llegue a la línea que obtiene ~/.p10k.zsh
. Esto ocurre con mayor frecuencia debido a errores de sintaxis en ~/.zshrc
. Estos errores se ocultan por la pantalla del asistente de configuración, por lo que no los nota. Cuando salga del Asistente de configuración, busque mensajes de error. También puede usar POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true zsh
para iniciar ZSH sin ejecutar automáticamente el asistente de configuración. Una vez que pueda ver los errores, arregle ~/.zshrc
para deshacerse de ellos.
Si la versión ZSH está por debajo de 5.7.1 o la variable de entorno COLORTERM
no es ni 24bit
ni truecolor
, el asistente de configuración no ofrecerá un estilo puro con esquema de color elegante. FIJO : Instale ZSH> = 5.7.1 y use un terminal con soporte de TrueColor. Verifique con print -P '%F{#ff0000}red%f'
.
Si el terminal puede mostrar menos de 256 colores, el asistente de configuración preselecciona el estilo de inclinación con 8 colores. Todos los demás estilos requieren al menos 256 colores. Corrección : use un terminal con soporte de color 256 y asegúrese de que la variable de entorno TERM
esté configurado correctamente. Verifique con print $terminfo[colors]
.
Si no hay un local de UTF-8 en el sistema, el asistente de configuración no ofrecerá estilos rápidos que usen caracteres Unicode. FIJO : Instale un local de UTF-8. Verifique con locale -a
.
Otro caso en el que el asistente de configuración puede no ofrecer estilos de inmediato unicode es cuando la opción de shell MULTIBYTE
está deshabilitada. Corrección : habilite la opción MULTIBYTE
, o más bien, no la deshabilite (esta opción está habilitada en ZSH de forma predeterminada). Verifique con print -r -- ${options[MULTIBYTE]}
.
Cuando MULTIBYTE
está habilitado y está disponible una ubicación UTF-8, las primeras preguntas formuladas por el asistente de configuración evalúan las capacidades de la fuente terminal. Si sus respuestas indican que algunos glifos no se representan correctamente, el asistente de configuración no ofrecerá estilos rápidos que los usen. Corrección : reinicie su terminal e instale la fuente recomendada. Verifique ejecutar p10k configure
y verificar que todos los glifos se rindan correctamente.
Una vez que descargue la fuente recomendada, puede instalarla como cualquier otra fuente. Google "Cómo instalar fuentes en su sistema operativo ".
tl; dr: agregue ZLE_RPROMPT_INDENT=0
y POWERLEVEL9K_LEGACY_ICON_SPACING=true
a ~/.zshrc
para obtener el mismo espaciado de inmediato que en powerLevel9k.
Cuando use PowerLevel10k con una configuración PowerLevel9k, puede obtener espacios adicionales en el aviso aquí y allá. Estos vienen en dos sabores.
tl; dr: agregue ZLE_RPROMPT_INDENT=0
a ~/.zshrc
para deshacerse de ese espacio.
De la documentación de ZSH:
ZLE_RPROMPT_INDENT <S>
Si se establece, se usa para dar la sangría entre el lado derecho de la solicitud derecha en el editor de línea como lo indica
RPS1
oRPROMPT
y el lado derecho de la pantalla. Si no se establece, se usa el valor1
.Por lo general, esto se usará para establecer el valor en
0
para que el indicador aparezca al ras con el lado derecho de la pantalla.
PowerLevel10k respeta este parámetro. Si establece ZLE_RPROMPT_INDENT=1
(o deja que no lo establece, que es lo mismo que configurarlo en 1
), obtendrá un espacio vacío a la derecha de la solicitud correcta. Si establece ZLE_RPROMPT_INDENT=0
, su mensaje irá al borde del terminal. Así es como funciona en cada tema, excepto PowerLevel9k.
PowerLevel9k Problema: PowerLevel9k#1292. Se ha solucionado en la rama de desarrollo de PowerLevel9k, pero la solución aún no ha llegado a master
.
Agregue ZLE_RPROMPT_INDENT=0
a ~/.zshrc
para obtener el mismo espacio en el borde derecho del indicador que en powerLevel9k.
Nota: Varias versiones de ZSH tienen errores que se activan cuando establece ZLE_RPROMPT_INDENT=0
. PowerLevel10k puede funcionar alrededor de estos errores cuando se usa el estilo de inmediato de PowerLine. Si nota los artefactos visuales en la posición de cursor rápida o incorrecta, intente eliminar ZLE_RPROMPT_INDENT
de ~/.zshrc
.
tl; dr: agregue POWERLEVEL9K_LEGACY_ICON_SPACING=true
a ~/.zshrc
para obtener el mismo espacio alrededor de los iconos que en PowerLevel9k.
El espacio para los iconos en PowerLevel9k es inconsistente.
Esta inconsistencia es una fuente constante de molestia, por lo que se fijó en PowerLevel10k. Puede agregar POWERLEVEL9K_LEGACY_ICON_SPACING=true
a ~/.zshrc
para obtener el mismo espacio alrededor de los iconos que en powerLevel9k.
Nota: No es una buena idea definir POWERLEVEL9K_LEGACY_ICON_SPACING
cuando se usa p10k configure
.
source ~/.zshrc
Casi siempre es una mala idea ejecutar source ~/.zshrc
, ya sea que esté usando powerLevel10k o no. Este comando puede dar lugar a errores aleatorios, un código de comportamiento mal y la desaceleración progresiva de ZSH.
Si ha realizado cambios en ~/.zshrc
o en archivos obtenidos por él, reinicie ZSH para aplicarlos. La forma más confiable de hacer esto es escribir exit
y luego comenzar una nueva sesión ZSH. También puede usar exec zsh
. Si bien no es exactamente equivalente para completar el reinicio ZSH, este comando es mucho más confiable que source ~/.zshrc
.
Vea las cosas raras que suceden después de escribir source ~/.zshrc
.
Si las instrucciones de instalación no funcionaron para usted, intente deshabilitar su tema actual (para que termine sin tema) y luego instalar PowerLevel10k manualmente.
~/.zshrc
y elimine la línea que establece ZSH_THEME
. Puede verse así: ZSH_THEME="powerlevel9k/powerlevel9k"
.~/.zshrc
y elimine el comando zplug
que se refiere a su tema actual. Por ejemplo, si actualmente está utilizando powerLevel9k, busque zplug bhilburn/powerlevel9k, use:powerlevel9k.zsh-theme
.~/.zpreztorc
y ponga zstyle :prezto:module:prompt theme off
en él. Elimine cualquier otro comando que establezca theme
como zstyle :prezto:module:prompt theme powerlevel9k
.~/.zshrc
y elimine la línea que establece antigen theme
. Puede verse así: 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 instalación no hará nada más lento ni sub-par.
En estilo Rainbow, el directorio de trabajo actual se muestra con un texto blanco brillante sobre fondo azul. El blanco es fijo y siempre se ve igual, pero la apariencia de "azul" se define por su paleta de colores terminales. Si es muy ligero, puede ser difícil ver texto blanco.
Hay varias formas de solucionar esto.
p10k configure
y elija un estilo de inmediato más legible.POWERLEVEL9K_DIR_BACKGROUND
, POWERLEVEL9K_DIR_FOREGROUND
, POWERLEVEL9K_DIR_SHORTENED_FOREGROUND
, POWERLEVEL9K_DIR_ANCHOR_FOREGROUND
y POWERLEVEL9K_DIR_ANCHOR_BOLD
. Puede encontrarlos en ~/.p10k.zsh
.RELACIONADO : Color incorrecto en primer plano en el terminal VScode.
Por defecto, el terminal VSCode puede reemplazar arbitrariamente el color de primer plano de su elección con un color diferente. Este comportamiento se puede apagar en la configuración de VScode.
Cuando cambia el tamaño de una ventana de terminal horizontalmente de un lado a otro varias veces, es posible que vea esta fea imagen.
TL; DR: Este problema surge cuando un terminal refleja ZSH indicada al cambiar el tamaño. No es específico para powerLevel10k. Ver mitigación.
Nota: Esta sección solía decir que el problema es causado por un error en ZSH. Si bien es cierto que es posible evitar el problema en muchas circunstancias modificando ZSH, no se puede resolver por completo de esta manera. Por lo tanto, es injusto anular la culpa a ZSH.
El problema se manifiesta cuando la distancia vertical entre el inicio de la solicitud actual y el cursor (en adelante VD
) cambia cuando la ventana del terminal se redimensiona.
Cuando una ventana terminal se encoge horizontalmente, hay dos formas para que un terminal maneje largas colas que ya no encajan: reflujo o truncar .
Contenido terminal antes de encogerse:
Terminal Refluta el texto cuando se encoge:
La terminal trunca el texto cuando se encoge:
La estrategia de reflexión puede cambiar la altura del contenido terminal. Si dicho contenido se encuentra entre el inicio de la solicitud actual y el cursor, ZSH imprimirá el indicador en la línea incorrecta. La estrategia de truncamiento nunca cambia la altura del contenido terminal, por lo que no desencadena este problema.
Veamos cómo se desarrolla el problema en cámara lenta. Comenzaremos lanzando zsh -f
y pegando el siguiente 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 > '
Cuando se expande PROMPT
, llama pause
para permitirnos observar el estado de la terminal. Aquí está el estado inicial:
ZSH realiza un seguimiento de la posición del cursor en relación con el inicio del aviso actual. En este caso, sabe que el cursor está a continuación. Cuando encogemos la ventana del terminal, se ve así:
En este punto, el terminal envía SIGWINCH
a ZSH para notificarlo sobre los cambios en las dimensiones terminales. Tenga en cuenta que esta señal se envía después de que el contenido del terminal se haya reflejado.
Cuando ZSH recibe SIGWINCH
, intenta borrar el aviso actual e imprimirlo de nuevo. Va a la posición en la que cree que el aviso actual es, una línea por encima del cursor (!), Borra todo el contenido terminal que sigue e imprime el aviso reexpandado allí. Sin embargo, después del cambio de tamaño, ya no es una línea por encima del cursor. ¡Son dos líneas arriba! ZSH termina imprimiendo una nueva rápida una línea demasiado baja.
En este caso, terminamos con contenido de basura no deseado porque VD
ha aumentado . Cuando hace que la ventana terminal sea más amplia, VD
también puede disminuir , lo que daría como resultado que el nuevo aviso se imprima más alto de lo previsto, lo que podría borrar contenido útil en el proceso.
Aquí hay algunos ejemplos más en los que la ventana de la terminal de reducción aumentó VD
.
prompt_subst
. Tenga en cuenta que el cursor está por debajo de la línea de inmediato (presione ESC-ingrese para obtenerlo allí).prompt_subst
, sin indicación correcta. Aquí VD
está obligado a aumentar la reducción del terminal debido a que la línea de comando se envuelve. Este parche ZSH soluciona el problema en algunos terminales. La idea detrás del parche es usar la capacidad del terminal sc
(Guardar cursor) antes de imprimir el mensaje y rc
(Restaurar cursor) para mover el cursor nuevamente a la posición original cuando se necesita actualizar el mensaje.
El parche solo funciona en los terminales que refleja la posición del cursor guardado junto con el texto cuando la ventana del terminal se redimensiona. El parche no tiene ningún efecto observable en los terminales que no reflejan el texto en el cambio de tamaño (ZSH parcheado y sin parches se comportan correctamente) y en los terminales que reflejan el texto, pero no la posición de cursor guardada (la solicitud de redibujado ZSH parcheado y sin parches en la misma posición incorrecta ). En otras palabras, el parche soluciona el problema de cambio de tamaño en algunas terminales mientras mantiene el comportamiento sin cambios en otros.
Hay dos enfoques alternativos para parchear a ZSH que pueden parecer funcionar a primera vista, pero de hecho no:
sc
, use la capacidad del terminal u7
para consultar la posición actual del cursor y luego cup
para volver a ella. Esto no funciona porque la posición absoluta del inicio de la solicitud actual cambia cuando el texto se refleja.VD
basado en nuevas dimensiones terminales antes de intentar actualizar la solicitud. 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
.