Как я могу распечатать из Vim в PDF?

11

Я бы подумал, что это довольно просто, но я этого не сделал: я использую gVim и хотел бы получить текст в виде pdf-файла. В других приложениях, таких как Firefox, в диалоговом окне печати отображаются доступные принтеры, и я могу выбрать печать непосредственно в PDF-файл. Однако в Vim такого диалога нет, и файл просто отправляется на стандартный принтер системы.

Я попробовал следующее:

  • Я не могу сделать "print-to-pdf", как в моем стандартном способе печати через окно принтера Ubuntu.
  • :ha > fileпреобразует мой файл в .ps-файл. Это хорошо, но .pdf будет лучше ...
Калигула
источник
Не ответ, но вы можете использовать ps2pdfинструмент командной строки впоследствии, с файлом poscript в качестве входных данных.
Кеб

Ответы:

21

Vimне покажет вам диалоговое окно печати. Вместо этого вы можете распечатать в файл PS, открыть его в программе просмотра PS и распечатать оттуда.

Для печати в файл PS из Vim:

:hardcopy > myfile.ps

Вы также можете перейти psна pdfиспользование ps2pdf:

ps2pdf myfile.ps
Рон
источник
1
Первое предложение означает просто изменение расширения файла ... Второе может работать в отображении или что-то в этом роде, мне придется провести еще какое-то исследование, чтобы сделать это ... Спасибо, пока ...
caligula
1
Это так же просто, как изменить расширение;)
Рон
1
Это потрясающе, определенно не знал, что это была вещь! Можете ли вы получить несколько файлов в одном документе?
Бен Кушигян
2
(пользователь cygwin) :ha > file.pdfне создал действительный файл PDF. Сочетая это с ps2dpfработой, я получаю белый фон. Я доволен, :TOhtml file.htmlа затем распечатать этот HTML-файл в формате PDF
lucidbrot
Сегодня я использовал один из вариантов этой команды:: 1,50 распечатка, файл не создавался, просто печатались строки от 1 до 50.
Доктор Беко,
8

Опираясь на то, что уже заявили другие ...

Вы можете использовать следующую однострочную команду vim для создания PDF-файла:

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

Замечания:

  • %Является сокращением для текущего файла, так HelloWorld.Cбудет печататьHelloWorld.C.pdf
  • Если вы также хотите сохранить промежуточный файл .ps, просто опустите && rm %.ps, получив: :hardcopy > %.ps | !ps2pdf %.ps

Кроме того, чтобы изменить отображаемый шрифт, установите printfont перед выполнением команды hardcopy. Например, чтобы выбрать курьера 8:

:set printfont=Courier:h8

Собрав все это вместе, я решил добавить в свой .vimrcфайл следующее, чтобы я мог просто выполнить :HardcopyPdfкоманду. Эта команда также может работать с выбранным диапазоном в файле:

set printfont=Courier:h8 "select the font to use when printing
command! -range=% HardcopyPdf <line1>,<line2> hardcopy > %.ps | !ps2pdf %.ps && rm %.ps && echo 'Created: %.pdf'
arr_sea
источник