Як я можу відобразити підсвічування синтаксису у файлі?


42

Чи є варіант, catякий виводить виділені синтаксисом рядки коду при використанні у вихідному файлі?

Ідея: можливо, vi[m]або іншого редактора можна попросити скинути виділений синтаксисом вміст цих файлів stdoutі негайно вийти?

Відповіді:


48

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


Це шрифт Star Trek: Deep Space Nine в їх логотипі? Якщо це - дивовижно.
амфетамахін

2
Доступний як пакет python-pygmentsна Debian.
enzotib

6
Я знайшов alias pcat="pygmentize -f terminal256 -O style=native -g"гарне рішення
Mikael Öhman

1
також доступний черезpip install pygments
craigb

1
Насправді так і має бути cat code.extension | pygmentize -f terminal -l extension.
fiatjaf

13

Source-родзинка пакет поставляються з визначенням мови виведення esc.outlang, який підсвічує з керуючими послідовностями ANSI.

У src-hilite-lesspipe.shкомплект також входить зручна обгортка , тому відображення виділеного виводу в терміналі є просто src-hilite-lesspipe.sh source.file.

На насправді src-hilite-lesspipe.shосновна причина «s є допомога автоматизує використання source-highlightз 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, highlightHTML виводить за замовчуванням.
Руслан

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.