Relacionado:¿Por qué se producen errores en mi indicador de bash cuando navego por el historial?
La historia se parece a:
1831 git remote -v
1832 gs
1833 gd
1834 gc -am 'moved apsum options etc to their own file
set routes to allow cors
changes to the apsum pull '
1835 git push
1836 reset
1837 history
1838 __git_ps1
1839 reset
1840 history
1841 Kill 99894
1842 history
g*
son todos alias para los comandos de git. Cuando me desplazo por el historial, todo está bien, hasta que llego al número 1833 (el guión bajo indica la posición del cursor):
$ gd _
[ up arrow]
$ gds_
[up arrow]
$ gdit remote -v_
Pensé que era debido a los caracteres que no se imprimen en mi PS1, pero los puse entre corchetes:
PS1="\n\[$FCYN\]\$(date +%H:%M:%S) \w\[$IGreen\]\$(__git_ps1)\[$Black\] $ \[$DarkGray\]"
¿Me he perdido algo? ¿Es esto algo que sucede cuando tienes mensajes de confirmación de varias líneas?
editar: mi solución final es demasiado grande para incluirla en un comentario:
export PS1="\\n\[\033[38;5;246m\]\u@\[$(tput sgr0)\]\[\033[38;5;245m\]\h\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;28m\]\w\[$(tput sgr0)\]\[\033[38;5;15m\]\[$(tput sgr0)\]\[\033[38;5;2m\]`__git_ps1`\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;90m\]\t\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;232m\]\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\n\[$(tput sgr0)\]\[\033[38;5;0m\]\\$\[$(tput sgr0)\] "
Lo cual parece una locura, pero produce un mensaje agradable con la rama git y colores que son fáciles de leer sobre un fondo claro (que no puedes ver aquí):
collumj@machineName ~ (dev) 17:35:42
$
Muchas gracias ahttp://bashrcgenerator.com/.
Respuesta1
"Todo" está entre corchetes, pero hay varias incógnitas. Dado que la columna se desplaza hacia la derecha, eso implica que algo está enviando texto que bash no nota.
Si bien es posible que esto se deba a una discrepancia local, probablemente notaráseso.
Verificaría y me aseguraría de que su configuración no utilice la función de color de __git_ps1
. De acuerdo asombreroque invoca un script llamadogit-prompt.sh
, que a su vez (si lo ha configurado GIT_PS1_SHOWCOLORHINTS
) puede enviar secuencias de escape que podrían confundir a bash con respecto a la columna real.