Настройте статусный запрос команды 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 %.

Только когда пейджер 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, что полезно для пользователей, которым необходимо быстро оценивать, сколько информации они прочитали.

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

Оцените материал
Добавить комментарий

Капча загружается...