Por padrão, man
usa less
para gerar texto. Como posso dizer apenas para o stdout? Meu emulador de terminal possui uma barra de rolagem e uma função de pesquisa, e eu quero usá-las em vez das teclas de seta.
Na verdade, ele usa o que é especificado na variável de ambiente MANPAGER
ou PAGER
.
Dependendo da sua man
implementação e versão, também pode haver uma opção de linha de comando para especificar o pager.
Com a implementação do man-db , uso todas as formas abaixo de trabalho:
MANPAGER=cat man man
PAGER=cat man man
MANOPT='-P cat' man man
man -P cat man
Para defini-lo permanentemente, basta adicioná-lo ao seu ~/.bashrc
(ou outro arquivo de inicialização usado pelo seu shell):
export MANPAGER=cat
Isso funciona com algumas man
implementações mais antigas também, enquanto MANOPT
é específico do man-db:
export MANOPT='-P cat'
(Melhor não definir PAGER
dessa maneira. Essa também é usada por muitos outros aplicativos.)
Também pode haver um arquivo de configuração global. man-db tem /etc/man_db.conf
ou /etc/manpath.config
. Lá você pode definir:
DEFINE pager cat
Mas, infelizmente, isso é levado em consideração apenas se nem MANPAGER
nem PAGER
estiver definido.
~/.bashrc
, Você também poderia envolver a exportação em uma condicional por isso só define o pager se é o terminal / emulador apropriado:if [ "x$TERM" = "xxterm" ]; then export MANPAGER=cat; fi
; obviamente substituaxterm
pelo emulador apropriado.MANPAGER
. Usei a palavra "infelizmente", pois o comportamento também se aplicaPAGER
, que é uma configuração genérica (usada por muitas ferramentas) e eu preferiria que não substituísse uma configuração específica (usada por apenas uma ferramenta), mesmo que um é o nível do sistema.PAGER=cat man
alias man='PAGER=cat MANPAGER=cat man'
Basta canalizar a saída de
man
paracat
?fonte
man
implementação, que 1) gera erro, 2) exibe códigos de formato troff no terminal, 3) remove toda a formatação, 4) funciona conforme o esperado.man
parece usar o pager definidoMANPAGER
mesmo quando a saída é um arquivo ou um pipe. E se o pager éless
, tudo fica bom porqueless
se comporta comocat
quando a saída é um pipe ... Mas se você usar outra coisa (como o Vim, que eu uso), não será tão bom.Experimente estes comandos para gerar saída man sem um pager.
man ls | cat
(largura fixa gerada)man -P cat ls
(largura variável gerada)Eu estava em um sistema Linux GNU
fonte
Outro ângulo: semelhante à resposta de Tony.
Você também pode redirecionar a saída do homem para um arquivo e visualizá-lo com o seu editor de texto favorito ou até mesmo adicionar favoritos, comentários etc.
Tenho uma cópia da página de manual do bash, bem como apenas as seções no controle de fluxo do bash e nos sinalizadores do teste do bash salvos como arquivos de texto no meu diretório bin, para que eu possa carregá-los diretamente no meu editor de texto (kate) para referência enquanto estou escrevendo scripts bash.
Aviso: dependendo do seu sistema e da página de manual, o comando acima pode resultar na formatação de informações e controle de caracteres no arquivo.
Para evitar isso, faça o sugerido em
LESS='+/^TIPS' man man
:fonte