3

Если я выполняю следующие команды из сеанса vim который посещает файл кода, полученная печатная копия имеет синтаксис, выделенный цветом:

:syntax on
:hardcopy >/path/to/hardcopy.ps

Но если я попробую ту же последовательность команд из командной строки (оболочка Unix), результирующая печатная копия не будет выделена цветом (я получаю только черный текст, иногда жирный или подчеркнутый и т.д. На белом фоне):

% vim -c ':syntax on' -c ':hardcopy >/path/to/hardcopy.ps' -c quit /path/to/original

Есть идеи, как решить эту проблему?

2 ответа2

1

Я подозреваю, что здесь может возникнуть проблема с раскрашиванием Vim - это своего рода хак, который интегрирован с кодом дисплея. Обратите внимание, что, например, когда вы прыгаете в большом файле, иногда раскраска будет неправильной, потому что Vim пытается не обрабатывать весь файл, применяя его иерархические соответствия шаблону "регион". Кроме того, если ваш терминал не поддерживает цвета, то Vim не будет печатать цвет или генерировать цветной HTML, даже если эти пункты назначения не имеют ничего общего с терминалом.

Однажды я попытался превратить Vim в серверную для выполнения подсветки синтаксиса на лету в CGIT, для просмотра файлов в репозитории GIT. Я пробовал множество хаков, чтобы заставить Vim производить вывод в пакетном режиме, но в итоге я сдался.

Но я остановился на попытке использовать утилиту, как expect . Сценарии Vim с expect - это то, что может сработать, если вы тоже лжете и говорите, что они разговаривают с цветным Xterm.

0

Я обнаружил, что переменная окружения TERM влияет на используемые цвета вывода PS.

Вы можете попробовать это:

TERM=xterm-256color vim '+hardcopy >out.ps' +q src_file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .