Como imprimir código bem formatado


20

Semelhante ao uso da marcação no Stack Overflow para criar monospace output, como posso fazer isso nos meus programas.

Eu tentei lp filename.txt e fiquei agradavelmente satisfeito ao descobrir que era capaz de usar a impressora de rede local e imprimir 'como está'

O problema é que a saída não é mono-espaçada.

Existe uma opção mais rápida do que ...

1) copy the text
2) paste into a text doc
3) format the document as mono
4) print it 

Eu adoraria encontrar alguma opção como lp filename.txt -format=mono;)


Respostas:


21

Você pode usar o editor vim para imprimir arquivos arbitrários que o vim pode ler. Use o seguinte para criar um arquivo PostScript.

vim \
  -c 'hardcopy > output.ps' \
  -c quit <input_file>

Se você deseja um arquivo PDF, adicione && ps2pdf output.psà linha de comando.

Você também pode escrever um pequeno script que cole o conteúdo atual da área de transferência em um arquivo temporário, execute o vim no arquivo, imprima o arquivo resultante e exclua o arquivo temporário.


11
Uma boa opção para o vimrc para quando você imprime código é set printoptions=portrait:nimprimir no modo paisagem.
— Oligofren

11
Provavelmente não sou o único aqui que queria desativar os cabeçalhos das páginas depois que a impressão funcionou. Você pode desativá-los adicionando set printoptions=header:0ao vimrc.
— Andy Gaskell

Para HTMl você pode fazervim -c TOhtml -c write -c quit <input_file>
— Matthew Cline

11
Opa, isso deve ser feitovim -c 'set cmdheight=2' -c TOhtml -c write -c quit -c quit <input_file>
— Matthew Cline

@AndyGaskell Eu fiz uma pergunta, por favor, veja se você pode resolvê-lo: unix.stackexchange.com/questions/315363/…
— uma oferta não pode recusar

12

O caminho mais curto aqui provavelmente é usar a2ps, pois gera postscript monoespaçado por padrão.

Você pode instalar a2pscom o brew, ou seja,brew install a2ps

Dependendo de sua configuração, ele enviará a saída diretamente para stdout ou lp, substituindo por -o. Além disso, a2psreconhece várias linguagens de programação e as imprime bastante.

a2ps -o output.ps infile.text

Use --pro=colorse a cor estiver disponível:

a2ps --pro=color -o output.ps infile.text

Para saída HTML, costumo usar vimo 2htmlrecurso.


isso parecia ótimo ... mas eu não tenho a2ps. Alguém sabe como instalar?
— 22612 Michael Durrant

Isso depende do sistema operacional em que você deseja instalá-lo.
— Thor

certeza um mac - OSX
— Michael Durrant

Pesquisando um pouco, parece que o a2ps tem alguns problemas de instalação no osx. Eu não tenho muita experiência com osx, mas enscriptfoi mencionado como uma alternativa.
— Thor

Você pode instalar a2psusando o MacPorts ( macports.org ). Eu não tenho nenhum problema de instalá-lo (em Lion)
— Matteo

3

a2psfoi a resposta. Eu instalei com o brew:

brew install a2ps

Agora eu posso a2ps myfilenamee funciona.

Infelizmente, sai paisagem e se eu tentar retratá-lo, ele é esmagado para a esquerda e minúsculo, ocupando apenas 50% da página. [upate - encontrou correção para isso com o parâmetro -1 (para o número de páginas a serem encontradas em uma folha - o padrão era 2)

No entanto, como paisagístico, funcionou e o código tem o fixed formatestilo que eu estava procurando.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.