Терминальная ошибка? Перепутанные символы

Я использую Ubuntu 14.04, и у меня есть символьная проблема с моим терминалом.

Это - мой терминал, когда я пишу короткую команду, и это - мой терминал, когда я пишу команду с больше, чем символы, которые могут поместиться в строку.

Я пытался изменить различные шрифты, и я все еще получаю ту же проблему. Я также пытался изменить размер шрифта, но тем не менее ничто.

Также, если я пишу команду, которая похожа на вторую ссылку, и затем я пытаюсь удалить символы затем, вещи становятся действительно ужасными. После того как я начинаю удалять символы затем, остальная часть строки просто исчезает, но если я нажимаю Enter затем, команда интерпретируется правильно.

Что мне делать?

0
задан 20 November 2014 в 12:24

1 ответ

Какой терминал - это? Добавьте вывод echo $TERM к Вашему вопросу.

Это может произойти, когда у Вас есть escape-последовательности (как сгенерировано tput) в Вашей подсказке, которые не окружаются \[ и \]. Те backslashed скобки говорят Bash, что escape-последовательности не занимают горизонтального места на экране. Без них вокруг escape-последовательностей Bash считает каждый байт escape-последовательности как видимый символ, который портит ранее отображенные команды, поскольку Вы двигаетесь вперед-назад через историю команд.

Источник

Чтобы проверить, есть ли у Вас escape-последовательности в Вашей подсказке, использовать echo "$PS1" | od -c и символы lookfor со значением 033. Если Вы разыскиваете их, то у Вас есть escape-последовательности в Вашей подсказке.

Если Вы находите 033 в Вашей подсказке

Проверьте где подсказка PS1 установлен: grep -i ps1 .*|less

Затем отредактируйте тот файл (часто, это находится в .bashrc) и окружите последовательность \[ и \].

0
ответ дан 6 October 2019 в 19:56

Другие вопросы по тегам:

Похожие вопросы: