Quando eu teco Home se a minha entrada atual é curta o suficiente (digamos, < 36 caracteres), ela funciona bem. No entanto, quando eu digito 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 . Parece que eu não estou no começo, mas tenho 10 caracteres. Embora se eu digitar "cegamente", funciona 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 isso, mas "na verdade" não, porque o lugar que estou "apagando" é "na verdade" 10 caracteres à direita. Assim, se eu tentar apagar o comando, os 10 primeiros caracteres ainda serão exibidos, mas se eu pressionar Enter , ele exibe outro prompt como se a entrada anterior estivesse vazia.
Eu sei que não é a melhor explicação, mas o ponto é que o bash reconhece e tenta fazer a coisa certa, mas muitas vezes falha.
Eu reproduzo isso tanto em tty quanto em um terminal em uma sessão X.
Quando pressiono Ctrl + V e depois Início vejo sequências diferentes ( ^[OH
em X, ^[[1~
em tty), mas ambas parece estar no meu /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
na sessão X.
GNU bash, version 4.2.24(2)-release (i686-pc-linux-gnu)
Alguém tem pistas sobre isso?