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


42

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

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

Ответы:


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.)


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

3

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


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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.