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.