Динамически переформатированные страницы пользователя при изменении размеров терминала

Один общий рабочий процесс – открыть страницу руководства в терминале, а затем еще один терминал для проверки. Страница руководства отформатирована к начальным размерам первого терминала. Когда я теперь изменяю размер окна (или мой WM делает это для меня автоматически), есть либо пробел справа от предварительно отформатированной страницы, либо обертка строк. В этот момент я обычно q (uit) и !! (снова запустить), который теряет свою позицию на странице.

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

Я пробовал просматривать страницы руководства, искать в Интернете, спрашивать IRC – всю свою судьбу, но ничего не мог придумать.

Основная проблема заключается в том, что форматирование выполняется по одной программе, а подкачка выполняется другим. Даже если форматер должен был получить сигнал о том, что размер окна изменился и переформатировать текст для нового размера окна, все, что он может сделать, это подать новый текст вниз по конвейеру на пейджер. Пейджер не может точно знать, какая позиция в новом потоке соответствует позиции в старом потоке, который он отображал в настоящий момент.

Вам нужно, чтобы пейджер смог выполнить переформатирование. Как сказал @Robin Green, это HTML.

Если вы хотите использовать HTML, но все еще работаете в терминале, вы можете указать man(1) для вывода в HTML и вызвать текстовый браузер для его отображения.

 man -Hlynx man 

Это отобразит man(1) man-страницу в браузере текстового режима lynx. Lynx напрямую не реагирует на изменения размера окна, но вы можете нажать ctrl-R, а lynx повторно отобразит страницу для нового размера окна.

Есть два других браузера в текстовом режиме, о которых я знаю: ссылки и ссылки. Вы можете экспериментировать с ними и рысью и определять, какие из них дают вам лучший опыт для просмотра справочных страниц. Вы можете использовать настраиваемую конфигурацию только для man-страниц и вызывать скрипт, который вызывает браузер с этой конкретной конфигурацией.

Вы можете поместить MANOPT параметры человека в переменную среды MANOPT .

 $ export MANOPT=-Hlynx $ export MANOPT=-Hmanlynx # manlynx invokes lynx with a different configuration. 

Вам нужно будет установить пакет groff для man чтобы иметь возможность генерировать HTML.

Конвертируйте man-страницы в html на лету, используя подходящий скрипт, такой как manserver , просматривая их в веб-браузере (который, конечно же, может быть текстовым веб-браузером, таким как lynx).

По-видимому, это почему никто не решил эту проблему – потому что проблема стала неактуальной с развитием man-> html-скриптов.