El siguiente es mi .zshrc
archivo:
autoload -Uz vcs_info
precmd() { vcs_info }
zstyle ':vcs_info:git:*' formats '(%b)'
setopt PROMPT_SUBST
PROMPT='%F{blue}%B%1/%b%f %F{red}%B${vcs_info_msg_0_}%b%f > '
Estoy siendo quisquilloso y estoy tratando de arreglar una cosa, pero no estoy seguro de cómo hacerlo. SI estoy en un repositorio de git, aparece el siguiente mensaje:
git-repo-123 (branch-323232) >
Pero si NO estoy en un repositorio de git, aparece el siguiente mensaje:
some-non-git-repo-dir >
Como puede ver, hay dos espacios entre some-non-git-repo-dir
y >
cuando no estoy en un repositorio de git. ¿Cómo puedo arreglar esto? Sé que esto es muy menor, pero no estoy seguro de qué poner en Google para ayudarme a llegar a una solución. Soy bastante nuevo en zsh y estoy intentando configurar mi shell a mi gusto. ¡Gracias a todos los que respondan de antemano!
Respuesta1
Al examinar la PROMPT
cadena, notarás que consta de cinco bloques:
- en azul el directorio actual
- ESPACIO
- en rojo la rama git
- ESPACIO
- el indicador de aviso (
>
)
Entonces, si no estás dentro de un repositorio de git, el tercer bloque estará vacío y terminarás con dos espacios en blanco adyacentes (bloques 2 y 4).
Lo que quieres es el espacio en blanco del bloque 4 solo si estás dentro de un repositorio de git. Puedes lograr esto, por ejemplo, poniendo el espacio en blanco en el vcs_info
estilo y omitiéndolo en PROMPT
, así:
zstyle ':vcs_info:git:*' formats '(%b) '
PROMPT='%F{blue}%B%1/%b%f %F{red}%B${vcs_info_msg_0_}%b%f> '