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


Como posso forçar o man comando para não usar um pager e, em vez de saída toda a manpage de uma só vez e manter todos os destaques?

Se eu usar man -P cat ou man | cat, Eu perco destaque.


4


origem


Você necessidade um título melhor. - SLaks
@Slaks: Você quer dizer que a resposta não é "Compre-lhe uma amora"? - mbarnett
@Matt: Exatamente. - SLaks
Ops! Não leu desta forma :)))


Respostas:


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 configurado para ul | cat -s.

Pager pode ser definido de várias maneiras:

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

7



+1, mas eu só preciso usar 'ul' como meu pager para despejar a saída para o console com destaque. Ou seja man -P ul <command>. Ubuntu 12.04.2. - G-Wiz


homem homem

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


2



Por que o downvote? Essa pode não ser a solução ideal, mas não está incorreta. Tente: $ PAGER=cat man foobar. - bcat
Não está usando cat como pager essencialmente a mesma coisa que não usar um pager? - bcat
A questão é sobre não usando um pager e isso sem perder o destaque. - Pascal Thivent
Quando eu tento essa abordagem, perco o destaque (no Mac OS X e no Ubuntu). - Brian Campbell
Eu também perdi destaque. como um comentário em outra resposta aponta, man -P ul ou PAGER=ul man trabalho. TIL sobre ul… - flying sheep


Alternativamente, há sempre o -P interruptor:

man -P cat foo

1



Eu já estou triste com isso -P cat Eu uso destacando - tig
Eu verifiquei minha teoria com <code> man -P cat man | tee foo.txt; menos -R foo.txt </ code>. A formatação ainda está lá; simplesmente não aparece na janela de comando. - amphetamachine


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

Este comando irá descomprimir e formatar o manual da fonte nroff     página ./foo.1x.gz em um arquivo independente de dispositivo (dvi). O redi‐     A indicação é necessária, pois o sinalizador -T faz com que a saída seja direcionada para     stdout sem pager. A saída pode ser vista com um programa     como xdvi ou processados ​​em PostScript usando um programa     como dvips.

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


1



homem no mac não tem -l e -T params - tig