2

Так что у меня действительно странная проблема с терминалом, которая затрагивает как физические сеансы входа в систему, так и сеансы по SSH. По сути, размер терминала составляет некоторое количество столбцов. При распечатке материала он будет правильно использовать это количество столбцов и будет обтекать при необходимости. Однако, когда я набираю реальную команду, она будет использовать меньшее количество столбцов. Вероятно, 90 или 100 столбцов. В этот момент он будет перенесен на текущую строку (а не в следующий раз). Если я начну отступать с помощью перенесенной команды, то, когда она доберется до того места, где она будет обернута вокруг всей командной строки, вместо этого изменится на пустую строку. Такое поведение также происходит, когда я нажимаю клавишу со стрелкой вверх, чтобы повторить предыдущую команду.

Что именно здесь происходит и как мне это остановить?

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

2 ответа2

2

Я не знаю, как это работает, но запуск stty sane обычно устраняет подобные проблемы со мной.

Shell Prompt

Учитывая описание вашей проблемы, я подозреваю, что проблема может быть связана с вашей подсказкой. Вы должны быть осторожны при установке приглашений, которые включают escape-последовательности ANSI, которые меняют цвет и т.д. Некоторые из них заставляют bash думать, что приглашение занимает больше места, чем на самом деле. Посмотрите этот действительно хороший вопрос Ask Ubuntu.

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

Я также рекомендую использовать tput вместо управляющих последовательностей терминала. Подробнее см. BashFAQ 53 и Коды терминалов (ANSI/VT100) .

0

ИМО, если вы уже сделали reset чем на самом деле вы ничего не можете сделать. Укуси пулю и начни новый сеанс терминала.

Это в основном происходит со мной, когда / после того, как я ошибочно cat содержимое двоичного файла на терминал. Если это не подлежит ремонту, то это не подлежит ремонту.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .