Jak wyświetlić wyróżnianie składni w pliku?

42

Czy istnieje wariant cattego wiersza kodu z zaznaczonymi składniami, gdy jest używany w pliku źródłowym?

Pomysł: może vi[m]lub inny edytor może zostać poproszony o zrzucenie podświetlonej składni zawartości wspomnianych plików stdouti natychmiastowe wyjście?

Paolo
źródło

Odpowiedzi:

48

Przekazanie pliku spróbuje wykryć typ z nazwy pliku i odpowiednio go podświetlić.pygmentize-f terminal

Ignacio Vazquez-Abrams
źródło
Czy to logo Star Trek: Deep Space Nine w ich logo? Jeśli to jest niesamowite.
amfetamachina
2
Dostępny jako pakiet python-pygmentsw Debianie.
enzotib
6
Okazało alias pcat="pygmentize -f terminal256 -O style=native -g"się, że to dobre rozwiązanie
Mikael Öhman,
1
dostępny również przezpip install pygments
craigb,
1
Tak naprawdę musi być cat code.extension | pygmentize -f terminal -l extension.
fiatjaf
13

Pakiet Source-highlight jest dostarczany z definicją języka wyjściowego esc.outlang, która wyróżnia się sekwencjami ucieczki ANSI.

Poręczne opakowanie src-hilite-lesspipe.shjest również zawarte w pakiecie, więc wyświetlanie podświetlonego wyjścia w terminalu jest po prostu src-hilite-lesspipe.sh source.file.

Właściwie src-hilite-lesspipe.shgłównym powodem jest pomoc w automatyzacji korzystania source-highlightz less. Właśnie ustawiłeś:

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

Następnie dowolny less source.filepokaże podświetlony kod źródłowy. (Kod w nieznanym języku przejdzie niezmieniony. Podświetlanie zostanie również pominięte w przypadku przekierowanych treści, takich jak less < source.file.)

człowiek w pracy
źródło
Fajnie, dziękuję za poświęcenie czasu na napisanie tej odpowiedzi
Paolo
3

Podświetlenie jest proste w użyciu i szybsze niżpygmentize

davidhq
źródło
2
Tylko nie zapomnij użyć -O ansi: w przeciwieństwie pygmentize, highlightwyjścia HTML domyślnie.
Ruslan