Когда я нажимаю, Homeесли мой текущий ввод достаточно короткий (скажем, <36 символов), он работает нормально. Однако, когда я набрал более длинную команду и затем хочу вернуться к началу, кажется, что она выполняет свою работу, но команда больше не отображается правильно. Похоже, я не в начале, но около 10 символов. Хотя, если я набираю «вслепую», он работает нормально, но выглядит как полный беспорядок, как будто весь ввод смещен вправо, но не перерисован. Поэтому я набираю текст, но «на самом деле» нет, потому что место, которое я «стираю», - это «фактически» 10 символов справа. Соответственно, если я пытаюсь стереть команду, первые 10 символов по-прежнему отображаются, но если я нажимаю на Enterнее, просто отображается другое приглашение, как если бы предыдущий ввод был пустым.
Я знаю, что это не лучшее объяснение, но дело в том, что bash распознает его и пытается делать правильные вещи, но часто терпит неудачу.
Я воспроизвожу это как в tty, так и в терминале в сеансе X. Когда я нажимаю Ctrl+, Vа затем Homeя вижу разные последовательности ( ^[OH
в X, ^[[1~
в tty), но оба, кажется, в моем /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
показывает linux
в tty и xterm
в X сессии.
GNU bash, версия 4.2.24 (2) -релиз (i686-pc-linux-gnu)
У кого-нибудь есть подсказки по этому поводу?
PS1="\e[0;36m[\u@\h \W]\$ \e[m"
. Что-то не так с этим? Ввод 36 символов не заполняет одну строку (безусловно). Кроме того, у меня нет боковой прокрутки в tty :)
PS1='$ '