Вопрос или проблема
Мне нравится, чтобы статусный запрос команды 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 %
.
Только когда пейджер less вызывается через man, это не работает.
less
может показать положение в документе в процентах, только если он знает, какова длина документа. Когда он используется для отображения страниц man, текст передается в него, поэтому он изначально не знает длину документа – вам нужно прокрутить до конца документа, чтобы less
знал, какова его длина.
Вы можете автоматизировать это, сказав less
прокрутить до конца и обратно к началу:
LESS=+Gg man less
Лучше не устанавливать это глобально, это заставит less
запускаться долго при просмотре больших файлов и нарушит его функциональность при просмотре ввода, который медленно подается в него или является бесконечным. Вы можете использовать MANPAGER
вместо:
export MANPAGER="less +Gg"
man less
Ответ или решение
Для настройки команды man
, чтобы отображать процент прочитанного содержимого, необходимо учитывать, как работает система отображения страниц с помощью less
. Действительно, less
может показать положение в документе в виде процента, но только если он заранее знает, насколько велик документ. Когда man
передает текст в less
, данный текст по умолчанию передается через конвейер, и less
не может определить длину документа изначально.
Вот шаги, которые помогут вам настроить вывод команды man
с отображением процента прочитанного:
1. Использование переменной окружения MANPAGER
Вместо использования переменной MANLESS
, которая не дает желаемого результата, вы можете использовать переменную MANPAGER
. Это позволяет указать специальную настройку для man
, чтобы она всегда использовала заданный less
с параметрами, которые обеспечивают необходимые функции.
Выполните следующую команду для установки MANPAGER
:
export MANPAGER="less +Gg"
Это указывает less
прокрутить в конец текста, а затем вернуться в начало, как только он загрузит весь текст. Таким образом, less
сможет вычислить длину документа и корректно показать процентное соотношение прочитанного.
2. Как использовать
После установки MANPAGER
вы можете просто вызвать команду man
. Например:
man less
Теперь вы сможете увидеть процент прочитанного в нижней части страницы, когда будете прокручивать текст.
3. Установка переменной в конфигурационном файле
Чтобы избежать необходимости повторно вводить команду export
каждый раз при запуске терминала, вы можете добавить ее в файл конфигурации вашего оболочки. Если вы используете оболочку bash
, откройте файл ~/.bashrc
или ~/.bash_profile
и добавьте следующую строку:
export MANPAGER="less +Gg"
Для zsh
используйте ~/.zshrc
. После внесения изменений примените их, выполнив:
source ~/.bashrc
Или для zsh
:
source ~/.zshrc
4. Заключение
Использование MANPAGER
с параметром less +Gg
позволяет вам получать информацию о проценте прочитанного в командном выводе man
, что полезно для пользователей, которым необходимо быстро оценивать, сколько информации они прочитали.
Благодаря данной настройке ваше взаимодействие с мануальными страницами станет более удобным и информативным. Не забудьте протестировать изменения, чтобы убедиться, что они работают так, как вы ожидаете.