syntax_highlight <джерело_файлу> | lpr


10

Хтось знає про простий спосіб створення PostScript, що відповідає виділеній синтаксисом версії вихідного файлу, який можна передавати безпосередньо на принтер PostScript?

Як виразно висловлюється формулювання вищезазначеного питання, я шукаю те, що можу запустити з командного рядка. Я думаю про взаємодію на кшталт:

% syntax_highlight <SOURCE_FILE> | lp

... за допомогою комутаторів командного рядка за потреби тощо.

Найкраще, що я знайшов поки що - це утиліта Unix, яка називається highlight, але вона має проблеми. Найсерйозніше - це те, що він не має можливості безпосередньо виводити PostScript. (Оскільки highlightпідтримує вихід LaTeX, я спробував з'єднати сценарій, який би автоматизував процес генерації файлу PostScript через * .tex => * .dvi => * .ps, але візуальний вигляд кінцевого результату жахливий, набагато гірше, ніж це для файлу HTML, який highlightстворює той самий вхідний код.)

Дякую!

Відповіді:


13

Можна використовувати vim.

vim -c hardcopy -c quit /path/to/file

Це надрукує файл і негайно закриє. За замовчуванням vim друкує із виділенням синтаксису.

Якщо вам потрібно надрукувати з stdout якоїсь команди, ви можете зробити це:

cat some_file.c | vim -c hardcopy -c 'quit!' -

Якщо ви хочете зберегти .ps пізніше, ви можете зробити це, додавши перенаправлення в команду копіювання, наприклад:

vim -c 'hardcopy > /path/to/saved.ps' -c 'quit' /path/to/file

Vim дозволяє встановлювати безліч параметрів, пов’язаних з друком, тому ви можете переглянути документацію, якщо ви хочете її змінити. Звичайно, є також багато варіантів виділення синтаксису .


5

Існує кілька програм, які сильно роздруковують різні мови програмування на Postscript, які не потребують жодного стороннього програмного забезпечення для запуску:

Якщо ви готові перейти через LaTeX, у вас є більше варіантів. Перехід через LaTeX в основному корисний, якщо ви хочете включити код і щось інше в той же документ; інакше це надмірно.


3

У Gedit, стандартному редакторі для gnome, ви можете роздрукувати у файл, вибрати Postscript (PDF за замовчуванням) та позначити на третій вкладці, щоб використовувати виділення, яке вимкнено як за замовчуванням, що створює для мене хороший ps-файл.

І в Gedit є багато синтаксичних файлів, які обслуговують багато мов програмування, HTML, SQL, XML, rc-файли, ви їх називаєте.


Це працює, за винятком того, що для мене (gedit 3.10.4 на Ubuntu 14.04.4) згенерований PDF - у масштабі сірого, а не кольоровому. Друк безпосередньо призводить до появи сірого кольору.
MarnixKlooster ReinstateMonica

0

Розгортання відповіді Шона Дж. Гоффа:

Ви можете використовувати таку однорядну команду vim для створення .ps-файлу зсередини vim:

:hardcopy > %.ps

Якщо ви віддаєте перевагу .pdf-файл, тоді ви можете:

:hardcopy > %.ps | !ps2pdf %.ps && rm %.ps

Примітка:

  • %Є скороченням для поточного файлу, так HelloWorld.Cбуде друкувати HelloWorld.C.psабоHelloWorld.C.pdf

Додатково, щоб змінити відредагований шрифт, встановіть printerfont перед виконанням команди на копії. Наприклад, для вибору кур'єра 8:

:set printerfont=Courier:h8

Збираючи все це разом, я вирішив поставити наступне у свій .vimrc файл, щоб я міг просто виконати команду :HardcopyPsабо :HardcopyPdfкоманду (яка також може працювати в обраному діапазоні у файлі):

set printfont=Courier:h8 "select the font to use when printing
command! -range=% HardcopyPs <line1>,<line2> hardcopy > %.ps && echo 'Created: %.ps'
command! -range=% HardcopyPdf <line1>,<line2> hardcopy > %.ps | !ps2pdf %.ps && rm %.ps && echo 'Created: %.pdf'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.