Wie kann ich ein Headless-GVIM ausführen, um Code mit Syntaxhervorhebung in HTML umzuwandeln?

Wie kann ich ein Headless-GVIM ausführen, um Code mit Syntaxhervorhebung in HTML umzuwandeln?

Ich möchte HTML-Dateien im Batch generieren, um einige gvim-Farbschemata in Aktion zu zeigen. Meine aktuelle Lösung habe ich aus dem Skript unterhttp://code.google.com/p/vimcolorschemetest/, aber dadurch wird für jedes Farbschema, das ich verarbeiten möchte, ein Gvim-Fenster geöffnet.

Die einzige Möglichkeit, die lästigen, jede Sekunde aufpoppenden neuen Fenster zu vermeiden, die ich bisher gefunden habe, besteht darin, einen VNC-Server zu starten und die DISPLAYUmgebungsvariable auf die des VNC-Servers einzustellen, sodass alle gvim-Fenster innerhalb der VNC-Sitzung an das Display gesendet werden.

Ich würde jedoch gern wissen, ob es eine Möglichkeit gibt, die gesamte VNC-Einrichtung zu vermeiden und einfach eine Headless-GVIM-Instanz auszuführen, die die Konvertierung durchführt und beendet, ohne dass jemals tatsächlich Fenster angezeigt werden.

Ich verwende übrigens Linux.

Antwort1

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

Verwenden Sie vim, es wird schneller geladen als gvim. Sie können die Ladezeit etwas beschleunigen -X, indem Sie oder eine No-X-Version von verwenden vim.

Um es stumm zu schalten, verwenden Sie >/dev/null. Dadurch wird jedoch vim„competition ( Vim: Warning: Output is not to a terminal)“ ausgelöst und es wird eine kurze Pause eingelegt, daher verwenden wir -E.

Wir hätten es versuchen können -E -s, aber ich kann es irgendwie nicht richtig verwenden :TOhtml, das Ergebnis ist ungefärbt und besteht aus einer einzelnen Linie.

Ich habe den Befehl ein wenig aufgemotzt, indem ich -R -c "set noreadonly"oder besser -nallein verwende. Dies verhindert die übliche Warnmeldung beim Öffnen einer Datei, die bereits eine Auslagerungsdatei hat. Es gibt nichts Besonderes, um Fehler beim Öffnen einer nicht beschreibbaren Datei (z. B. im Besitz von root) zu verhindern.

Sieh meinvimcatRepository bei GitHub, für ein Beispiel der Verwendung der Vim-Syntaxhervorhebung in einem Terminal.

Antwort2

Ich kann nicht wirklich sagen, ob Ihr Problem darin besteht, dass Vim zu viele Fenster gleichzeitig öffnet oder dass es überhaupt irgendwelche Fenster öffnet ...

Im letzteren Fall kann ich Ihnen nicht helfen, aber in jedem neueren Vim können Sie so etwas tun (sehr primitiv, kann wahrscheinlich viel schöner gemacht werden):

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

Dadurch wird eine Datei test.c.xhtml basierend auf der Datei test.c unter Verwendung des aktuellen Farbschemas erstellt. Dann vielleicht noch ein weiteres -c, um die Farben zu ändern, und alles in ein Shell-Skript einfügen ...

BEARBEITEN:

ohne dass jemals Fenster angezeigt werden.

Ja, also, ich bin ein Idiot. Bitte ignorieren Sie diesen Beitrag.

verwandte Informationen