Come posso visualizzare l'evidenziazione della sintassi su un file?


42

Esiste una variante catche genera righe di codice evidenziate dalla sintassi quando utilizzate su un file sorgente?

Un'idea: forse vi[m]o un altro editor può essere invitato a scaricare i contenuti evidenziati dalla sintassi di detti file stdoute uscire immediatamente?

Risposte:


48

Il passaggio del file tenterà di rilevare il tipo dal nome file e di evidenziarlo in modo appropriato.pygmentize-f terminal


È quello il carattere di Star Trek: Deep Space Nine nel loro logo? Se è fantastico.
anfetamachina,

2
Disponibile come pacchetto python-pygmentssu Debian.
enzotib,

6
Ho trovato alias pcat="pygmentize -f terminal256 -O style=native -g"una buona soluzione
Mikael Öhman il

1
disponibile anche viapip install pygments
craigb

1
In realtà deve essere cat code.extension | pygmentize -f terminal -l extension.
fiatjaf,

13

Il pacchetto Source-highlight viene fornito con la definizione della lingua di output esc.outlang, che viene evidenziata con le sequenze di escape ANSI.

Nel src-hilite-lesspipe.shpacchetto è incluso anche un comodo wrapper , quindi visualizzare l'output evidenziato nel terminale è giusto src-hilite-lesspipe.sh source.file.

In realtà src-hilite-lesspipe.shil motivo principale è quello di aiutare ad automatizzare l'uso di source-highlightcon less. Hai appena impostato:

export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '

Quindi qualsiasi less source.filemostrerà il codice sorgente evidenziato. (Il codice in lingua sconosciuta passerà inalterato. L'evidenziazione verrà saltata anche in caso di contenuto reindirizzato, come less < source.file.)


Bene, grazie per aver dedicato del tempo a scrivere questa risposta
Paolo,

3

L'evidenziazione è semplice da usare e più veloce dipygmentize


2
Basta non dimenticare di usare -O ansi: a differenza pygmentize, highlightgenera HTML per impostazione predefinita.
Ruslan,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.