Tengo un aviso Bash que demora un tiempo (~ 100-200ms) en generarse, ya que incluye el estado del árbol de trabajo de Git que lleva algún tiempo calcular. A veces empiezo a escribir un comando antes de que aparezca, pero luego el comando se ajusta incorrectamente.
Esto es lo que veo en la terminal:
# I start typing:
some command...
# then the prompt appears:
some command...username [branch*] some/directory $ some command...
# then I type some more, causing the command to wrap:
some command...username [branch*] some/directory $ some command...wra
pping text 1
# and when I continue typing, the text overwrites the second line:
some command...username [branch*] some/directory $ some command...wra
wrapping text 2
¿Alguna idea de cómo prevenir esto?
Así es como se configura mi solicitud Bash:
# in .bashrc:
PROMPT_COMMAND="PS1=\`/home/username/my-prompt.sh\`"
# in /home/username/my-prompt.sh:
$PROMPT=...
$PROMPT+=...
echo -ne $PROMPT
Creo que he creado todos mis \[
e \]
s correctamente dentro de $ PRONTO. El problema aparece solo cuando empiezo a escribir antes de que aparezca el mensaje y mi comando se cierra.
\r
a al comienzo de la solicitud (dentro de la\[
\]
parte) para hacer que la solicitud siempre comience al comienzo de la línea.Respuestas:
Puede funcionar para deshabilitar la salida del terminal mientras se genera la solicitud:
fuente
Te sugiero que lleves tu terminal al modo cuerdo (broma) usando
fuente
readline
todos modos porque simplemente lo restablecerá al modo sin procesar y manejará el resto por sí mismo.stty sane
probablemente debería considerarse una última zanja, no un defecto.