Как отображать номера строк с пигментированием

Я часто использую команду pygmentize filename.py для отображения цветных исходных файлов с форматированием кода. Это работает как шарм. Теперь я также хочу показать номера строк, как cat -n filename.py.

Я перечитал и нашел несколько предложений, таких как добавление -O linenos=1 или -O linenos=True. Ничего из этого, похоже, не работает.

Кто-нибудь знает, как я могу показать номера строк при просмотре исходных файлов в командной строке с фрагментами ? Все советы приветствуются!

1
задан 10 July 2014 в 13:51

4 ответа

Можно добавить использование номеров строки perl как это:

pygmentize file.py | perl -e 'print ++$i." $_" for <>'

Обновление (для искажения предыдущей команды):

Для создания псевдонима просто определите следующую функцию удара где-нибудь в Вашем ~/.bashrc:

pyg() {
pygmentize $1 | perl -e 'print ++$i." $_" for <>'
}

Откройте новый терминал и назовите команду с pyg file.py.

3
ответ дан 10 July 2014 в 13:51

Вы попытались передать вывод по каналу к nl --body-numbering=a? Что касается большинства инструментов оболочки, можно найти больше информации в man nl.

2
ответ дан 10 July 2014 в 13:51

Используя кошку с передачей по каналу:

pygmentize filename.py | cat -n

ответ Sylvain так или иначе лучше, так как он не делает генерирует запаздывание дополнительной кошки пробелов в начале каждой строки. Но в какой-то момент Вам нельзя было установить жемчуг :)

Попытка также:

pygmentize -g filename.py | cat -n | sed "s/^[ \t]*//"

Это дает Вам хорошее пространство между номерами строки и кодом.

0
ответ дан 10 July 2014 в 13:51
pygmentize < hello.go | awk '{print i++ + 1 "   " $0}'

Это работает на меня. Примечание +1 там, потому что Вы хотите, чтобы первая строка была маркирована 1 not 0.

1
ответ дан 7 October 2019 в 13:14

Другие вопросы по тегам:

Похожие вопросы: