Есть ли способ исправить неправильное обращение экрана с переносом строки? (Возможно только Terminal.app)

9

У меня проблема с использованием экрана и Terminal.app. Если в нижней части экрана появляется приглашение bash, и я продолжаю печатать, пока строка не переместится на следующую строку, я увижу следующую строку, но не вижу строки выше этого изменения.

Вот наглядный способ проиллюстрировать мою проблему. | представляет правую часть терминала.

Перед. Мой курсор находится после третьего «примера», и я собираюсь напечатать «пример» в четвертый раз:

$ asdf                        |
bash: asdf: command not found |
$ example example example     |

После. Обратите внимание, что после переноса экран не прокручивался, а вместо этого «съел» строку, на которой я находился, и начал заново:

$ asdf                        |
bash: asdf: command not found |
ple                           |

Что я ожидал (и что происходит без использования экрана), так это то, что весь экран прокручивается вниз один раз после переноса.

bash: asdf: command not found |
$ example example example exam|
ple                           |

Наконец, вот что происходит, если я перемещаю курсор на перенесенной строке в начало командной строки, она съедает предыдущую строку:

$ asdf                        |
$ example example example exam|
ple                           |

Есть идеи, что происходит?

AlexMax
источник
Терминал GNOME и экран 4 обернуты, как и ожидалось, FWIW. Какую версию вы используете и изменили ли вы какие-либо конфигурации по умолчанию?
Бернард
Это происходит при подключении к двум разным машинам. На моем компьютере с Debian есть экран 4 с некоторыми пользовательскими настройками, и в моем окне rhel 5.3 также есть экран 4 без пользовательских конфигураций, и оба блока работают точно так же.
AlexMax
У меня точно такое же поведение. Другой признак этого (не описанный выше) состоит в том, что после того, как предыдущая строка «съедена», с выбором происходят странные вещи. Начните выделение мышью, и все, что находится под выделением, будет отображаться правильно. Пример: если вы выберете строку «$ asdf» в последнем примере выше, она внезапно изменится на «bash: asdf: команда не найдена» (что и должна сказать предыдущая строка). Это как если бы экран просто не перерисовал эти линии, но должен был. Как будто забывает пометить эти строки как грязные, нуждающиеся в повторной визуализации.
Издано
В любое время он начинает работать плохо, просто выберите все (COMMAND + A), чтобы экранный буфер выглядел правильно.
Издание
Кроме того, это не проблема в iTerm.app
Eddified

Ответы:

7

Успех! Я попробовал предложение отсюда:

/server/272818/screen-not-dropping-down-a-line

что добавить:

termcapinfo xterm* ti@:te@

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

Кроме того, я могу подтвердить проблему в 10.7 Terminal.app.

Nate
источник
Хорошая детективная работа! К сожалению, я много пользуюсь несколькими окнами экрана, поэтому это не сработает.
AlexMax
это не работает для меня, когда я ssh на другой сервер, где я сталкиваюсь с проблемой. не уверен, что это может быть указано так жесткоtermcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' ti@:te@
Брайан Томас
2

Это может быть «горизонтальный режим прокрутки» в readline. Запустите следующую команду:

bind 'set horizontal-scroll-mode off'

и посмотрим, изменятся ли ваши симптомы. Если это так, вы можете установить это в ~ / .inputrc

wfaulk
источник
1
не помогло это в моем случае.
Издано
0

Зайдите в настройки терминала и измените настройку «Объявить терминал как:» с «xterm-color» на просто «xterm». Это исправило это для меня (но также имеет последствия отключения altscreen :()

Eddified
источник
Я уже настроил Terminal.app таким образом, и он не помог мне с моей проблемой. Режим горизонтальной прокрутки отключен по умолчанию в соответствии с man-страницей на экране, и я нигде не вижу, чтобы он был включен. Облом. Очень хотел бы найти решение этой проблемы.
Тим Харпер