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


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

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


4
2017-12-24 21:19


Источник


Вы необходимость лучшее название. - SLaks
@Slaks: Вы имеете в виду, что ответ не «Купите ему ежевику»? - mbarnett
@Matt: Точно. - SLaks
Ops! Не читал так:)))


Ответы:


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

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

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

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

    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"'
    

7
2017-12-25 00:08



+1, но мне нужно использовать только «ul» в качестве моего пейджера, чтобы вывести вывод на консоль с подсветкой. То есть man -P ul <command>, Ubuntu 12.04.2. - G-Wiz


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

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

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


2
2017-12-24 21:41



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


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

man -P cat foo

1
2017-12-24 21:47



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


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

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

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

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


1
2017-12-24 21:57



man на mac не имеет параметров -l и -T - tig