Меньше разрывов рендеринга программы

261
Svalorzen

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

lessПрограмма используется для просмотра и постраничной длинный текст, часто ломает свою терминальную визуализацию при прокрутке. Это также происходит в программах, которые делают подобные вещи, такие как git diff(не уверен, что он использует внутриless или нет).

Некоторые части текста исчезают при прокрутке или перезаписываются чем-то другим.

Что я могу сделать, чтобы это исправить?

0
Любые записи в `stderr` из программ, запущенных в терминале, повредят отображение` less`, но обычно это исправляют Page Down и Page Up. Чаще всего это происходит при передаче по каналу "less", чтобы прокрутить вывод из программы, которая генерирует сообщения об ошибках, а также нормальный вывод. Если это ваш случай, вы можете передать как `stderr`, так и` stdout` с помощью `2> & 1 |` (или `| &` в `bash`); или вы можете перенаправить `stderr` в файл (или` 2> / dev / null`, если вы хотите полностью его отключить). Обратите внимание, что если `stderr` смешаны, буферизация означает, что они могут прерывать среднюю линию друг друга. AFH 6 лет назад 1
Это могло быть, но конкретный случай, который побудил меня написать это, был простой `make | & less`, поэтому я не уверен, применимо ли это .. Svalorzen 6 лет назад 0
В `make` вы можете получать не только сообщения об ошибках от самого` make`, но и от любого количества программ, которые он может планировать в соответствии с правилами в `Makefile`. При `| &` стандартный вывод и сообщения об ошибках будут случайно перемешаны, но [этот ответ] (https://unix.stackexchange.com/a/25378) показывает, как включить буферизацию строки для команды, которая должна сделать смешанный вывод намного более разборчивый. AFH 6 лет назад 0

0 ответов на вопрос

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