Терминал не возвращается при вводе

Терминал не возвращается при вводе

Я знаю, это странно, но сегодня я внезапно скопировал длинную команду в терминал, и вместо того, чтобы перенести слова, как положено, она начала перезаписывать ту же строку. Команда выполнилась нормально, но стала нечитаемой. Обычно, когда происходит что-то подобное, можно просто нажать Enter несколько раз, и это исправляет, но не в этом случае. Я перезапустил терминал и даже перезагрузил его, и история та же самая.

Я могу подумать, что это как-то связано с тем, что я отредактировал файл /etc/bash.bashrc, чтобы настроить подсказку цветом и т. д., но я сделал это несколько дней назад, и после редактирования этого не произошло. Я сохранил резервную копию на всякий случай, так что если кто-то думает, что это может быть так, я включил вывод diff двух файлов:

$ diff /etc/bash.bashrc /etc/bash.bashrc.bak 
19c19
< PS1='\e[1;32m\u: \e[m\w\n\e[1;33m\$\e[m '
---
> PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

Любые идеи будут полезны, это действительно странная проблема.

решение1

Попробуйте использовать это PS1:

PS1='\[\e[1;32m\]\u: \[\e[m\]\w\n\[\e[1;33m\]\$\[\e[m\] '

Разница в том, что управляющие последовательности ( \e..) заключены в \[ .. \], что помогает Bash лучше отслеживать курсор.

Связанный контент