Quando acerto Homese minha entrada atual é curta o suficiente (digamos, <36 caracteres), ela funciona bem. No entanto, quando eu digitei um comando mais longo e depois quero voltar ao início, parece que ele faz o seu trabalho, mas o comando não é mais exibido corretamente. Parece que não estou no começo, mas com cerca de 10 caracteres. Embora se eu digitar "às cegas", funcione bem, mas parece uma bagunça total, como se toda a entrada fosse deslocada para a direita, mas não redesenhada. Então eu digito sobre ele, mas "de fato" não, porque o lugar que estou "apagando" é "na verdade" 10 caracteres à direita. Portanto, se eu tentar apagar o comando, os 10 primeiros caracteres ainda serão exibidos, mas se eu o pressionar, Enterserá exibido outro prompt como se a entrada anterior estivesse vazia.
Eu sei que não é a melhor explicação de todos os tempos, mas o ponto é que o bash reconhece e tenta fazer a coisa certa, mas geralmente falha.
Eu reproduzo isso em tty e em um terminal em uma sessão X. Quando clico em Ctrl+ Ve Homevejo sequências diferentes ( ^[OH
em X, ^[[1~
em tty), mas ambas parecem estar na minha /etc/inputrc
:
# do not bell on tab-completion
#set bell-style none
set meta-flag on
set input-meta on
set convert-meta off
set output-meta on
$if mode=emacs
# for linux console and RH/Debian xterm
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[7~": beginning-of-line
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
"\e[1;5C": forward-word
"\e[1;5D": backward-word
# for rxvt
"\e[8~": end-of-line
# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
"\eOH": beginning-of-line
"\eOF": end-of-line
# for freebsd console
"\e[H": beginning-of-line
"\e[F": end-of-line
$endif
echo $TERM
mostra linux
em tty e xterm
em X sessão.
Está
Lançamento do GNU bash, versão 4.2.24 (2) (i686-pc-linux-gnu)
Alguém tem pistas sobre isso?
PS1="\e[0;36m[\u@\h \W]\$ \e[m"
. Existe algo de errado nisso? Digitar 36 caracteres não preenche uma linha (de longe). Além disso, eu não tenho do lado de rolagem no tty :)
PS1='$ '