Как отобразить подсветку синтаксиса в файле?

42

Есть ли вариант, catкоторый выводит выделенные синтаксисом строки кода при использовании в исходном файле?

Идея: возможно, vi[m]или другого редактора можно попросить сбросить выделенное синтаксисом содержимое указанных файлов stdoutи немедленно выйти из него?

Paolo
источник

Ответы:

48

Передача файла попытается определить тип по имени файла и выделить его соответствующим образом.pygmentize-f terminal

Игнасио Васкес-Абрамс
источник
Это шрифт Star Trek: Deep Space Nine в их логотипе? Если это круто.
амфетамина
2
Доступен как пакет python-pygmentsна Debian.
Энзотиб
6
Я нашел alias pcat="pygmentize -f terminal256 -O style=native -g"хорошее решение
Микаэль Осман
1
также доступно черезpip install pygments
Craigb
1
На самом деле это должно быть cat code.extension | pygmentize -f terminal -l extension.
Пятница,
13

Пакет Source-highlight поставляется с определением языка вывода esc.outlang, которое выделяется escape-последовательностями ANSI.

В src-hilite-lesspipe.shкомплект также входит удобная обертка , поэтому отображение выделенного вывода в терминале просто src-hilite-lesspipe.sh source.file.

На самом деле src-hilite-lesspipe.shосновная причина заключается в том, чтобы помочь автоматизировать использование source-highlightwith less. Вы просто установили:

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

Тогда любой less source.fileпокажет подсвеченный исходный код. (Код на неизвестном языке будет проходить без изменений. Выделение будет также пропущено в случае перенаправленного контента, например less < source.file.)

manatwork
источник
Хорошо, спасибо, что нашли время написать этот ответ
Паоло
3

Подсветка проста в использовании и быстрее, чемpygmentize

davidhq
источник
2
Только не забудьте использовать -O ansi: в отличие pygmentize, highlightвыводит HTML по умолчанию.
Руслан