Як я можу надрукувати добре відформатований код


20

monospace outputЯк це зробити для моїх програм, як у розміщенні Stack Overflow .

Я спробував lp filename.txt і мені було приємно, будь ласка, виявив, що він може використовувати принтер локальної мережі та друкувати "як є"

Проблема полягає в тому, що вихід не має монорозміщення.

Чи є швидший варіант, ніж ...

1) copy the text
2) paste into a text doc
3) format the document as mono
4) print it 

Я хотів би знайти такий варіант, як lp filename.txt -format=mono;)


Відповіді:


21

Ви можете використовувати редактор vim для гарного друку довільних файлів, якими може читати vim. Створіть наступне, щоб створити файл PostScript.

vim \
  -c 'hardcopy > output.ps' \
  -c quit <input_file>

Якщо ви хочете PDF-файл, додайте && ps2pdf output.psдо командного рядка.

Ви також можете написати невеликий сценарій, який вставляє поточний вміст буфера обміну у тимчасовий файл, запускає vim на файл, друкує отриманий файл та видаляє тимчасовий файл.


1
Хороший варіант для вашого vimrc, коли ви друкуєте код, - set printoptions=portrait:nдрукувати в альбомному режимі.
олігофрен

1
Я, мабуть, не єдиний тут, хто хотів вимкнути заголовки сторінок, коли друк працював. Ви можете вимкнути їх, додавши set printoptions=header:0в vimrc.
Енді Гаскелл

Для HTMl можна зробитиvim -c TOhtml -c write -c quit <input_file>
Меттью Клайн

1
На жаль, так має бутиvim -c 'set cmdheight=2' -c TOhtml -c write -c quit -c quit <input_file>
Метью Клайн

@AndyGaskell Я задав питання, будь ласка, подивіться, чи зможете ви вирішити його: unix.stackexchange.com/questions/315363/…
пропозиція не може відмовити

12

Тут, ймовірно, використовується найкоротший шлях, який a2psза замовчуванням генерує одноразовий постскрипт.

Можна встановлювати a2psзаваркою, тобтоbrew install a2ps

Залежно від його налаштування, він буде надсилати вихід безпосередньо до stdout або lp, замінювати -o. Також a2psрозпізнає декілька мов програмування і досить друкує їх.

a2ps -o output.ps infile.text

Використовуйте, --pro=colorякщо колір доступний:

a2ps --pro=color -o output.ps infile.text

Для виведення HTML я вважаю за краще використовувати vim«s 2htmlфункцію.


це виглядало чудово ... але у мене немає a2ps. Хтось знає, як встановити?
Майкл Дюрант

Це залежить від того, в яку операційну систему ви хочете її встановити?
Тор

впевнений, що це mac - osx
Майкл Дюррант

Трохи погугливши, схоже, що a2ps має деякі проблеми з установкою на OSX. Я не маю великого досвіду роботи з osx, але enscriptзгадувався як альтернатива.
Тор

Ви можете встановити з a2psдопомогою MacPorts ( macports.org ). У мене не було жодних проблем з його встановленням (на Леві)
Маттео,

3

a2psбула відповідь. Я встановив його заваром:

brew install a2ps

Тепер я можу a2ps myfilenameі це працює.

На жаль, він виходить краєвидним, і якщо я спробую зробити його портретом, він закручений ліворуч і крихітний, лише займаючи 50% сторінки. [upate - знайдено виправлення цього параметра за допомогою параметра -1 (для кількості сторінок, які можна знайти на одному аркуші - за замовчуванням було 2)

Однак у міру озеленення він працював, і код має fixed formatстиль, який я шукав.

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