Как я могу заставить команду man
не использовать пейджер, а вместо этого вывести всю страницу целиком сразу и сохранить подсветку?
Если я использую man -P cat
или man | cat
, я теряю подсветку.
Долгое чтение руководств для мужчин, меньше, groff и grotty, наконец, дал мне ответ
Подсветка по умолчанию производится с использованием последовательности возврата на одну позицию: c\bc
=> полужирный c, _\bc
=> подчеркнутый c. Но если вывести как используется cat в качестве пейджера, то в обоих случаях выведите просто c. Также сжимаются пустые строки, поэтому, чтобы сделать все это, пейджер должен быть установлен в ul | cat -s
Пейджер можно настроить разными способами:
использование переменных MANPAGER или PAGER (лучше использовать MANPAGER, поскольку PAGER влияет не только на команду man)
export MANPAGER='ul | cat -s'
в man.conf
PAGER ul | cat -s
используя параметр -P
cat -P 'ul | cat -s' …
или же
alias man='man -P "ul | cat -s"'
мужчина мужчина
...
PAGER A program to use for interactively delivering
man's output to the screen. If not set,
`more -s' is used. See more(1).
Это означает, что пейджер регулируется PAGER env. переменная, таким образом, просто определите PAGER как
setenv PAGER cat
и наслаждаться.
Кроме того, всегда есть ключ -P
:
man -P cat foo
Это не совсем то, что вы хотите (вы не получите вывод в консоли), но вы можете сгенерировать файл dvi с содержанием руководства, как объяснено в man man:
man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi
Эта команда распакует и отформатирует страницу справочника источника nroff ./foo.1x.gz в файл, независимый от устройства (dvi). Перенаправление необходимо, так как флаг -T приводит к тому, что вывод направляется на стандартный вывод без пейджера. Вывод может быть просмотрен с помощью программы, такой как xdvi, или дополнительно обработан в PostScript с помощью программы, такой как dvips.
Я только что проверил это и открыл файл DVI с evince: подсветка не теряется.