(9 respuestas)
Cerrado hace 3 años.
A menudo, cuando empiezo a mirar el historial de comandos, algunos de los caracteres de un comando que se muestra no se borran, por ejemplo:
Qué está pasando:
prompt$ some_command
prompt$ some_commanother_command
Lo que debería haber sucedido:
prompt$ some_command
prompt$ another_command
No puedo borrar esos caracteres y bash los ignora al ejecutar el comando. También desaparecen cuando se muestra un mensaje nuevo (después de presionar Enter
por ejemplo).
Le pregunté a otras personas que trabajan en Linux en mi lugar de trabajo y dijeron que a veces también tienen ese problema, pero que no tenían idea de cómo resolverlo.
Tengo Ubuntu 11.10 y estoy usando guake. Aquí está mi PS1
:
e[0;31mu A ${PWD##*/}e[0;32m$(parse_git_branch)e[0;31m$e[m
donde parse_git_branch
es
parse_git_branch () {
git name-rev HEAD 2> /dev/null | sed 's#HEAD (.*)# (1)#'
}
Por lo que sé, mis colegas tienen ese problema incluso con PS1 menos "elegante".
Respuesta aceptada:
Usar [...]
alrededor de las partes de PS1 que tienen una longitud de 0. Ayuda a bash obtener la longitud correcta del indicador. Incluso con esta medida, su línea de comando puede estropearse cuando usa caracteres de varios bytes (al menos la mía). Presionando Ctrl+L también ayuda en tales casos (pero borra la pantalla al mismo tiempo).