Como posso fazer o comando man não usar um pager?

4

Como posso forçar o comando man a não usar um pager e, em vez disso, gerar a man page inteira de uma só vez e manter todos os realces?

Se eu usar man -P cat ou man | cat , perderei o destaque.

    
por tig 24.12.2009 / 22:19

4 respostas

7

Longa leitura de manuais para homem, menos, groff e grotty finalmente me deu resposta

O destaque por padrão é feito usando seqüências de backspace: c\bc = > negrito c, _\bc = > sublinhado c. Mas se a saída como estiver usando o cat como pager, apenas produzirá c simples nos dois casos. Também linhas em branco são espremidas, então, para fazer tudo isso, o pager deve ser definido como ul | cat -s .

O pager pode ser definido de várias formas:

  1. usando variáveis MANPAGER ou PAGER (MANPAGER é melhor, pois o PAGER afeta não apenas o comando man)

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

    PAGER       ul | cat -s
    
  3. usando o parâmetro -P

    cat -P 'ul | cat -s' …
    

    ou

    alias man='man -P "ul | cat -s"'
    
por 25.12.2009 / 01:08
2

man man

...
    PAGER          A program to use for interactively delivering
                        man's  output  to  the  screen.   If not set,
                        'more -s' is used.  See more(1).

O que significa que o pager é regulado por PAGER env. variável, Assim, apenas defina PAGER como

setenv PAGER cat

e aproveite.

    
por 24.12.2009 / 22:41
1

Como alternativa, sempre há a opção -P :

man -P cat foo
    
por 24.12.2009 / 22:47
1

Isto não é exatamente o que você quer (você não terá a saída no console), mas você pode gerar um arquivo dvi com o conteúdo de um manual, como explicado no homem:

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

This command will decompress and format the nroff source manual page ./foo.1x.gz into a device independent (dvi) file. The redi‐ rection is necessary as the -T flag causes output to be directed to stdout with no pager. The output could be viewed with a program such as xdvi or further processed into PostScript using a program such as dvips.

Acabei de testar isso e abri o arquivo dvi com o evince: o destaque não está perdido.

    
por 24.12.2009 / 22:57