Вопрос или проблема
Мне нравится, чтобы статусный вывод команды man был настроен. По умолчанию, как указано в его собственной странице man, он выглядит так,
Имя страницы справки(сек) строка x
Но мне предпочтительнее, чтобы он показывал процент прочитанного содержимого. Поэтому я установил переменную окружения, которая управляет выводом, MANLESS
, как,
export MANLESS='?pt%pt \%: '
Вывод пустой. Я добавил -P перед ним, как,
export MANLESS='-P?pt%pt \%: '
Нет прогресса, теперь вывод содержит только -P
. Поэтому, я напрямую устанавливаю это для каждого вызова, используя опцию -r
,
man -r '?pt%pt \%: ' less
Это тоже не помогло. Но этот же вывод, когда установлен в переменную окружения LESS как
export LESS="-P?pt%pt \%"
Каждый прямой вызов less показывает нужный вывод как
x %
.
Это не работает только в том случае, когда pager less вызывается через man.
less
может показывать позицию в документе в процентах, если он знает, какова длина документа. Когда он используется для отображения страниц man, текст передается ему, поэтому он изначально не знает длины документа – вам нужно прокрутить до конца документа, чтобы less
знал, какова его длина.
Вы можете автоматизировать это, сказав less
прокрутить до конца и вернуться в начало:
LESS=+Gg man less
Лучше не устанавливать это глобально, это приведет к тому, что less
будет загружаться некоторое время при просмотре крупных файлов и нарушит его функциональность при просмотре входящих данных, которые медленно передаются ему или бесконечны. Вместо этого вы можете использовать MANPAGER
:
export MANPAGER="less +Gg"
man less
Ответ или решение
Чтобы настроить приглашение статуса команды man
для отображения процента прочитанного, необходимо учитывать несколько аспектов, связанных с работой программы less
, которая используется для просмотра страниц справки. По умолчанию, less
не знает длину документа, если его содержимое подается через man
, поскольку текст сначала передается в less
через конвейер (pipe). Следовательно, чтобы отобразить процент прочитанного, less
должен знать, сколько всего страниц ему нужно отобразить.
Шаги настройки приглашения в man
с отображением процента прочитанного:
-
Установка переменной окружения
MANPAGER
:
Установите переменнуюMANPAGER
на"less +Gg"
, где+G
указываетless
сразу прокрутить до конца, а затем вернуться в начало. Это действие приведет к тому, чтоless
сможет правильно определить длину документа, обеспечивая возможность отображения процента прочитанного.Команда для установки переменной:
export MANPAGER="less +Gg"
-
Использование команды
man
:
Теперь, после установки переменнойMANPAGER
, выполнение командыman
будет вызыватьless
с нужными параметрами. Например:man less
-
Проверка результата:
После выполнения предыдущей команды вы должны увидеть приглашение, на котором отображается процент прочитанного, как вам и нужно.
Важные замечания:
-
Не устанавливайте глобально: Как упоминалось в вашем запросе, не рекомендуется устанавливать
LESS=+Gg
глобально, потому что это может замедлить запускless
при работе с большими файлами и нарушить функциональность при работе с бесконечными потоками данных. -
Проверка конфигурации: Убедитесь, что нет других конфигурационных файлов или переменных окружения, которые могут переопределить ваши настройки, таких как
.bashrc
,.bash_profile
, или другие аналогичные файлы конфигурации.
Зачем это нужно?
Настройка отображения процента прочитанного в man
позволяет более эффективно работать с документацией, особенно при работе с длинными страницами справки. Это особенно полезно для профессионалов в сфере IT и разработчиков, которые часто обращаются к справочным материалам.
В заключение, использование переменной MANPAGER
с параметрами для less
— это мощный способ улучшить ваш опыт работы с документацией в Unix-подобных системах, обеспечивая наглядность и удобство работы с большим объемом информации.