Personalizar el mensaje al usar vcs_info en zsh

Personalizar el mensaje al usar vcs_info en zsh

El siguiente es mi .zshrcarchivo:

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-diry >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 PROMPTcadena, notarás que consta de cinco bloques:

  1. en azul el directorio actual
  2. ESPACIO
  3. en rojo la rama git
  4. ESPACIO
  5. 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_infoestilo 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> '

información relacionada