Как остановить терминал bash от добавления частей предыдущих команд в текущую строку?

я использую Ubuntu (10.04) с bash и сталкиваюсь с нечетной проблемой. После того, как я использую стрелку вверх для прокрутки истории команд и возвращаюсь к одной из более длинных команд (т. е. к одной с достаточным количеством символов для обертывания на экране), но затем продолжаю прокручивать вперед или назад, первые 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)}[3[01;32m]u@h[3[00m]:[3[01;34m]w3[31;40m]$(__git_ps1 "[%s]")[3[00m]$ '

отредактировано снова, чтобы добавить значение echo $PS1

  [e]0;u@h: wa]${debian_chroot:+($debian_chroot)}[3[01;32m]u@h[3[00m]:[3[01;34m]w3[31;40m]$(__git_ps1 "[%s]")[3[00m]$
5
задан Andrew Larned
источник

3 ответов

пропустить \[ (после \w), попробуйте это:

PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[31;40m\]$(__git_ps1 "[%s]")\[3[00m\]$ '
1
отвечен cYrus 2010-09-08 20:12:44
источник

значение вашего PS1 переменная содержит некоторые непечатаемые символы, такие как последовательности, чтобы установить цвета. Их нужно завернуть в \[ и \] поэтому они не учитываются, когда Bash вычисляет, где отображать вещи и перемещать их, когда вы делаете такие вещи, как прокрутка предыдущих команд. Если вы покажете свой PS1 Я могу быть более конкретным.

4
отвечен Dennis Williamson 2010-09-08 13:59:46
источник

когда это происходит:

  • убедитесь, что окно терминала достаточно широко.
  • введите команду: reset
  • нажмите control+L.
0
отвечен LatinSuD 2010-09-08 21:58:31
источник

Другие вопросы bash command-line shell ubuntu