Я использую Ubuntu (10.04) с ударом и сталкиваюсь с нечетной проблемой. После того, как я буду использовать стрелку вверх, чтобы прокрутить назад через мою историю команд и возвратиться к одной из более длительных команд (т.е. один с достаточными символами для обертывания на экране), но затем продолжать прокручивать или вперед или назад, первые 8 или 9 символов той долгой команды обнаруживаются на моей строке ввода.
Эти символы не оказывают влияния на любую команду, которую я в конечном счете ввожу, но иногда трудно выяснить то, что я пытаюсь ввести.
Это выглядит примерно так сначала:
name@machine:~$
Затем становится этим:
name@machine:~$ scp -i /h
после прокрутки назад к одному из моих длинных scp
команды. Если я затем ввожу команду, как так:
name@machine:~$ scp -i /hls -l
это выполняет команду: ls -l
Отредактированный для добавления значения PS1 в моем ~/.bashrc
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\033[31;40m\]$(__git_ps1 "[%s]")\[\033[00m\]\$ '
Отредактированный снова для добавления значения echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\033[31;40m\]$(__git_ps1 "[%s]")\[\033[00m\]\$
Значение Вашего PS1
переменная содержит некоторые непечатаемые символы, такие как последовательности для выбирания цветов. Они должны быть перенесены в \[
и \]
таким образом, они не считаются, когда Bash вычисляет, где отобразить вещи и переместить их, когда Вы делаете вещи как просмотр предыдущих команд. Если Вы показываете Ваш PS1
Я могу быть более конкретным.