Как я могу заставить команду man не использовать пейджер?

1298
tig

Как я могу заставить manкоманду не использовать пейджер, а вместо этого вывести всю страницу целиком сразу и сохранить подсветку?

Если я использую man -P catили man | cat, я теряю выделение.

4
Вы _need_ лучший заголовок. SLaks 14 лет назад 2
@ Слакс: Ты имеешь в виду, что ответ не «купи ему ежевику»? mbarnett 14 лет назад 1
@Matt: точно. SLaks 14 лет назад 0
Ops! Не читал так :))) 14 лет назад 0

4 ответа на вопрос

7
tig

Долгое чтение руководств для мужчин, меньше, groff и grotty, наконец, дал мне ответ

Подсветка по умолчанию производится с использованием последовательностей возврата на задний план: c\bc=> полужирный c, _\bc=> подчеркнутый c. Но если вывести как используется cat в качестве пейджера, то в обоих случаях выведите просто c. Также сжимаются пустые строки, поэтому для всего этого необходимо установить пейджер ul | cat -s.

Пейджер можно настроить разными способами:

  1. использование переменных MANPAGER или PAGER (лучше использовать MANPAGER, поскольку PAGER влияет не только на команду man)

    export MANPAGER='ul | cat -s' 
  2. в man.conf

    PAGER ul | cat -s 
  3. используя параметр -P

    cat -P 'ul | cat -s' … 

    или же

    alias man='man -P "ul | cat -s"' 
+1, но мне нужно использовать «ul» в качестве пейджера для вывода вывода на консоль с подсветкой. Т.е. `man -P ul`. Ubuntu 12.04.2. G-Wiz 11 лет назад 0
2
Moisei

мужчина мужчина

... 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 

и наслаждаться.

Почему отрицательный голос? Это может быть не оптимальным решением, но оно не является неправильным. Попробуйте: `$ PAGER = кошачий человек foobar`. bcat 14 лет назад 0
Разве использование `cat` в качестве пейджера - это не то же самое, что вообще не использовать пейджер? bcat 14 лет назад 0
Вопрос о ** не ** с использованием пейджера, и это без потери выделения. Pascal Thivent 14 лет назад 0
Когда я пробую этот подход, я теряю выделение (в Mac OS X и Ubuntu). Brian Campbell 14 лет назад 0
Я также потерял выделение. как указывает комментарий другого ответа, работает `man -P ul` или` PAGER = ul man`. Тиль о уль… flying sheep 10 лет назад 0
1
amphetamachine

Кроме того, всегда есть -Pпереключатель:

man -P cat foo 
Мне уже грустно, что с `-P cat` я использую подсветку tig 14 лет назад 0
Я проверил свою теорию с man -P cat man |tee foo.txt ; less -R foo.txt. Форматирование все еще там; он просто не отображается в окне команд. amphetamachine 14 лет назад 0
1
Pascal Thivent

Это не совсем то, что вы хотите (вы не получите вывод в консоли), но вы можете сгенерировать файл dvi с содержанием руководства, как объяснено в man man:

man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi 

Эта команда распакует и отформатирует страницу справочника источника nroff ./foo.1x.gz в файл, независимый от устройства (dvi). Перенаправление необходимо, так как флаг -T приводит к тому, что вывод направляется на стандартный вывод без пейджера. Вывод может быть просмотрен с помощью программы, такой как xdvi, или дополнительно обработан в PostScript с помощью программы, такой как dvips.

Я только что проверил это и открыл файл DVI с evince: подсветка не теряется.

У человека на Mac нет параметров -l и -T tig 14 лет назад 0