Печать кода с подсветкой синтаксиса? - PullRequest
29 голосов
/ 01 ноября 2009

У меня есть повод для печати кода (Ужасы !!!;)), и мне было интересно, какой редактор или инструмент я бы использовал для печати этого кода с надлежащим форматированием и подсветкой синтаксиса? Если это важно, это будет код на C #, но в идеале инструмент будет работать на максимально возможном количестве языков. Может ли Notepad ++ или что-то еще с этим справиться?

Ответы [ 11 ]

32 голосов
/ 01 ноября 2009

Вы можете использовать Vim ! Вероятно, он уже установлен, если вы работаете на современном Linux / MacOS, и легко устанавливается, если нет.

:syntax включит подсветку синтаксиса, а :hardcopy напечатает его. Для многих языков есть определения подсветки синтаксиса . Внешний вид по умолчанию обычно оптимизирован для отображения на экране, но вы можете исправить , что .

Просто откройте файл в командной строке с помощью vim <filename>, введите :syntax on<ENTER>, затем :hardcopy<ENTER>, чтобы распечатать его. Выйдите из Vim с :q!<ENTER>.

Также есть команда :TOhtml, которая откроет текущий выбор в виде HTML в новом окне Vim. Захватите весь документ с помощью :%y<ENTER>, а затем :TOhtml<ENTER>, чтобы открыть его.

14 голосов
/ 24 февраля 2014

Используйте vim. Это самый простой способ сделать это, насколько я знаю, если вы знаете, как это происходит.

Vim предустановлен на Mac, кстати. И я знаю, как вы, особенные люди, любите цвета, поэтому я сделаю это нетерпеливым бизнесменом доказательством на пользу всем.

1.) Открыть файл

vim filename.m

2.) Включить синтаксическую окраску (у меня не было включено по умолчанию)

: синтаксис на

3.) Печать

:hardcopy

Vim выберет принтер по умолчанию для вашей системы, не спрашивая вас, поэтому сначала убедитесь, что вы установили его.

4.) Выйти из программы (на самом деле это не дано)

:q

OR

Используйте Aptana. Aptana довольно мила, она бесплатна и имеет отличную функциональность ftp.

13 голосов
/ 01 ноября 2009

Да, Notepad ++, безусловно, может печатать код с подсветкой синтаксиса.

Цветная печать, очевидно, предпочтительнее, но в тех случаях, когда я печатаю черно-белое изображение, трудно различить тонкие различия в цвете (разумеется, в оттенках серого).

Тем не менее, я думаю, что небольшая настройка цветовых схем должна решить эту проблему.

8 голосов
/ 01 ноября 2009

http://pygments.org/ является одним из вариантов. Он поддерживает ton языков, и, поскольку он написан как библиотека python, вы можете записать процесс конвертации так, как вам хочется.

3 голосов
/ 26 февраля 2015

Я недавно сравнил 2 упомянутых решения: vim & pygments. Они оба дают отличные результаты, но есть способ, которым вы можете использовать их быстро:

  • pygments не обеспечивает прямой экспорт в PDF. Следовательно, самое простое решение, которое я нашел, было экспортировать в HTML и затем использовать wkhtmltopdf. Вы можете объединить обе операции, используя следующий скрипт bash:
src2pdf () {
    local noext="${1%.*}"
    pygmentize -O full -o "$noext.html" "$1"
    # enabling line wrapping in <pre> blocks
    perl -i -wpe '/<style.*>$/&&($_.="pre{white-space:pre-wrap;}\n")' "$noext.html"
    wkhtmltopdf "$noext.html" "$noext.pdf"
    rm "$noext.html"
}
  • для vim, это так просто: TERM=xterm-256color vim '+hardcopy >out.ps' +q code.src Я обнаружил, что переменная окружения $TERM может влиять на выходные цвета, поэтому я предпочитаю устанавливать ее явно. И, наконец, вам может понадобиться немного подправить .vimrc :
set printfont=:h9  
set printoptions=number:y,left:5pc  
3 голосов
/ 01 ноября 2009

Visual Studio будет, и позволяет вам иметь совершенно отдельную конфигурацию для печати. ​​

2 голосов
/ 17 апреля 2015

Инструмент под названием enscript очень подходит для этого. Он очень мощный, не привязан ни к редактору, ни к языку, и вы можете создавать PDF с подсветкой синтаксиса.

Документация в значительной степени говорит обо всем.

справочная страница enscript

1 голос
/ 17 января 2017

Решение для Bash Shell

  1. Добавьте эту строку в ~/.bashrc, если вы используете UBUNTU
    или ~/.bash_profile, если вы используете MAC
    Если этот файл не существует, создайте его.

    alias lprc = 'vim -me -c ": синтаксис" -c ": печатная копия" -c ": q"'

  2. source ~/.bashrc или source ~/.bash_profile

  3. Чтобы напечатать цветной hello.py, просто сделайте это:
    lprc hello.py вместо lpr hello.py

1 голос
/ 25 февраля 2014

Если у вас есть проблемы с Visual Studio 2012 , касающиеся выделенной печати и решения описанной проблемы:

  • Загрузите и установите Power Tool , который реализует цвет печать, помимо некоторых других функций и исправлений ошибок. У меня работает!
1 голос
/ 01 февраля 2011

Я недавно создал домашний скрипт Python , который упаковывает фрагменты в небольшую консольную утилиту. Работает с любым языком, поддерживаемым pygments .

Также, если вы используете eclipse, вы можете просто скопировать выделенный текст в редактор и затем вставить его в редактор с поддержкой RTF, например MS Word - он сохранит все цвета, шрифты и форматирование.

...