Como exibir números de linha com pygmentize

1

Costumo usar o comando pygmentize filename.py para mostrar arquivos de origem de cor com formatação de código. Isso funciona como um encanto. Agora também quero mostrar números de linha como cat -n filename.py .

Eu li em volta e encontrei algumas sugestões, como adicionar -O linenos=1 ou -O linenos=True . Nada disso parece funcionar embora.

Alguém tem alguma idéia de como eu posso mostrar números de linha ao visualizar arquivos de origem na linha de comando com pygments ? Todas as dicas são bem vindas!

    
por kramer65 10.07.2014 / 11:51

3 respostas

3

Você pode adicionar números de linha usando perl da seguinte forma:

pygmentize file.py | perl -e 'print ++$i." $_" for <>'

Atualizar (para codificar o comando anterior):

Para criar um alias, basta definir a seguinte função bash em algum lugar no seu ~/.bashrc :

pyg() {
pygmentize  | perl -e 'print ++$i." $_" for <>'
}

Abra um novo terminal e chame o comando com pyg file.py .

    
por Sylvain Pineau 10.07.2014 / 13:05
1

Já tentou enviar a saída para nl --body-numbering=a ? Quanto à maioria das ferramentas de shell, você pode encontrar mais informações em man nl .

    
por l0b0 10.07.2014 / 12:07
0

Usando gato com tubulação:

pygmentize filename.py | cat -n

A resposta de Sylvain é de alguma forma melhor, uma vez que não gera whitespaces adicionais no início de cada linha. Mas em algum momento você pode não ter a pérola instalada:)

Experimente também:

pygmentize -g filename.py | cat -n | sed "s/^[ \t]*//"

Ele oferece um bom espaço entre os números de linha e o código.

    
por cereberus 28.01.2017 / 00:35