Converta páginas de informações em man pages

5

Fui convidado para postar novamente essa pergunta com menos opiniões, por isso, se parece familiar, é por isso.

Como posso converter páginas de informações em páginas man? Eu costumava ter um shell um forro que achatou um documento de informação inteiro em uma única página plana, adequada para navegar com menos, mas parece que eu a perdi. Por favor, compartilhe se você souber como fazer isso. :)

Obrigado!

    
por mbac32768 29.03.2010 / 16:39

4 respostas

4

Isso gerará um info como um arquivo de texto simples:

info --subnodes --output=info_file.txt info_file

Por exemplo:

info --subnodes --output=info.txt info
less info.txt
    
por 29.03.2010 / 18:04
1

O script acima não funciona bem. Para man pages normais, ele entra em recursão infinita; não é agradável na linha de comando. Quando invoca o comando "man" ele tem que ter certeza que não está invocando a si mesmo - isso é um problema se estiver em um diretório que esteja no seu PATH.

Como meu diretório ~ / bin é no meu PATH, alterei o final da lista "case" assim:

*)
  /usr/bin/man $@
  ;;
esac

Eu nunca vi o homem verdadeiro estar em qualquer lugar além de / usr / bin / man, então isso deve funcionar.

    
por 30.10.2011 / 02:56
1

As outras respostas aqui funcionarão, mas eu tenho uma alternativa muito mais simples:

info foo | less

Este comando obtém a saída de info e canaliza-a através de less , o que fará com que a página de informações se comporte de forma semelhante a uma página de manual normal. Não é tão preciso quanto as outras alternativas, mas funcionará na maioria dos casos.

Saída:

stefanl@host:~ $ info vi | less

File: *manpages*,  Node: vim,  Up: (dir)

VIM(1)                                                                  VIM(1)

NAME
       vim - Vi IMproved, a programmers text editor

SYNOPSIS
       vim [options] [file ..]
       vim [options] -
       vim [options] -t tag
       vim [options] -q [errorfile]
...
...

Uma versão mais precisa, mas mais complicada, seria:

info ls --subnodes -o - |less

As outras respostas aqui exigem que você se lembre de sinalizadores arcanos ou faça modificações em seu ambiente em todos os sistemas Linux que você mantém, o que não funciona bem se você tiver contas em centenas de sistemas. Em algum momento, você estará em um sistema em que seu ambiente personalizado não está presente e info foo | less será muito fácil de lembrar.

    
por 12.09.2013 / 19:08
0

Eu não queria sair do hábito de digitar 'man', então acabei escrevendo um wrapper usando a resposta de Dennis Williamson.

Conteúdo ~ / bin / man:

#!/bin/bash

case $1 in
info-*)
  page=$(echo $1 | sed -e s/info-//g)
  tmpfile="/tmp/info2man-$page.txt"
  info --subnodes --output=$tmpfile $page \
  && less $tmpfile \
  && rm -f $tmpfile
  ;;
*)
  man $@
  ;;
esac

Caso de uso

man sed

# learn the sed man page isn't adequate

man info-sed
    
por 30.03.2010 / 14:38

Tags