Quando premo Homese il mio input attuale è abbastanza breve (diciamo, <36 caratteri), funziona benissimo. Tuttavia, quando ho digitato un comando più lungo e poi voglio tornare all'inizio, sembra che faccia il suo lavoro, ma il comando non viene più visualizzato correttamente. Sembra che non sia all'inizio ma a circa 10 caratteri di distanza. Anche se digito "alla cieca", funziona bene, ma sembra un disastro totale, come se l'intero input fosse spostato a destra, ma non ridisegnato. Quindi lo scrivo, ma "in effetti" no, perché il posto che sto "cancellando" è "in realtà" 10 caratteri a destra. Di conseguenza, se provo a cancellare il comando, i primi 10 caratteri vengono comunque visualizzati, ma se Enterlo premo visualizza solo un altro prompt come se l'input precedente fosse vuoto.
So che non è la migliore spiegazione di sempre, ma il punto è che bash la riconosce e cerca di fare la cosa giusta, ma spesso fallisce.
Lo riproduco sia in tty che in un terminale in una sessione X. Quando premo Ctrl+ Ve poi Homevedo diverse sequenze ( ^[OH
in X, ^[[1~
in tty), ma entrambe sembrano essere nel mio /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
in tty e xterm
in X session.
Suo
GNU bash, versione 4.2.24 (2) -release (i686-pc-linux-gnu)
Qualcuno ha indizi su questo?
PS1="\e[0;36m[\u@\h \W]\$ \e[m"
. C'è qualcosa di sbagliato in questo? Digitare 36 caratteri non riempie una riga (di gran lunga). Inoltre, non ho lo scrolling laterale in tty :)
PS1='$ '