Как запустить headless gvim, чтобы преобразовать код с подсветкой синтаксиса в HTML?

Как запустить headless gvim, чтобы преобразовать код с подсветкой синтаксиса в HTML?

Я хочу сгенерировать HTML-файлы в пакетном режиме, чтобы показать некоторые цветовые схемы gvim в действии. Я взял свое текущее решение из скрипта наhttp://code.google.com/p/vimcolorschemetest/, но это откроет окно gvim для каждой цветовой схемы, которую я хочу обработать.

До сих пор я нашел единственный способ избежать раздражающих новых окон, которые появляются каждую секунду, — это запустить VNC-сервер и установить DISPLAYпеременную окружения на значение VNC-сервера, чтобы все окна gvim отправлялись на дисплей в рамках сеанса VNC.

Однако мне хотелось бы узнать, есть ли способ избежать всей настройки VNC и просто запустить безголовый экземпляр gvim, который выполнит преобразование и завершит работу, при этом никакие окна фактически не будут отображаться.

Кстати, я использую Linux.

решение1

vim -E -c "TOhtml" -c "w" -c "qa!" -- test.c >/dev/null

Используйте vim, он загрузится быстрее, чем gvim. Вы можете немного ускорить время загрузки, используя -X, или версию No-X vim.

Чтобы заставить его замолчать, используйте >/dev/null. Но это заставит vimregret ( Vim: Warning: Output is not to a terminal) и немного остановиться, поэтому мы используем -E.

Мы могли бы попробовать -E -s, но я почему-то не могу использовать его :TOhtmlдолжным образом, результат неокрашенный и представляет собой одну линию.

Я немного прокачиваю команду, используя -R -c "set noreadonly"or better -nв одиночку. Это предотвращает обычное предупреждающее сообщение при открытии файла, у которого уже есть файл подкачки. Нет ничего особенного, что могло бы предотвратить сбои при открытии файла, не подлежащего записи (например, принадлежащего root).

Смотрите мойвимкатрепозиторий на GitHub, где приведен пример использования подсветки синтаксиса vim в терминале.

решение2

Я не могу точно сказать, заключается ли проблема в том, что Vim открывает слишком много окон одновременно, или в том, что он вообще открывает какие-либо окна...

В последнем случае я вам помочь не смогу, однако в любой новой версии Vim вы можете сделать что-то вроде этого (очень примитивно, вероятно, можно сделать гораздо лучше):

# gvim -c TOhtml -c w -c q -c q test.c

который создаст test.c.xhtml на основе файла test.c с использованием текущей цветовой схемы. Затем, возможно, еще один -c для изменения цветов, вставьте все это в скрипт оболочки...

РЕДАКТИРОВАТЬ:

при этом ни одно окно фактически не отображается.

Да, я идиот. Пожалуйста, проигнорируйте этот пост.

Связанный контент