hampft!

Bunte Sache: colorierte Listings in HTML mit vim

Der eine oder andere Leser meiner MMNTs mag sich schon gefragt haben, wie ich die gelegentlich auftauchenden bunten Code-Listings mache. Ist eigentlich gar nicht so schwer. Man braucht

  1. Ein bisschen Sourcecode
  2. vim oder den einen oder anderen graphischen Vertreter gvim (mit gtk, athena oder motif)/kvim
  3. Die vim Syntax Definition für (1.)

Vor allem Punkt (3.) sollte gar keine Mühe machen, vim kommt in aktueller Version mit bereits knapp 350 Definitionen daher, exotischere Sachen kann man entweder selber schreiben (was erstaunlich einfach ist) oder auf der vim Homepage suchen. Es gibt da wohl kaum etwas, was es nicht gibt.

Der Source-Schnipsel wird jetzt in gvim geladen und - wenn gvim die Syntax nicht bereits erkannt hat - die passende Syntaxdefinition aus dem Syntax-Menü ausgewählt. Jetzt ist der Source erst mal im gvim bunt.

Jetzt wählt man aus dem Syntax-Menü Convert to HTML aus (oder führt das vim-Kommando :so $VIMRUNTIME/syntax/2html.vim aus, falls man die nichtgraphische vim-Version verwendet), dann sieht das so aus:

Die entscheidende Sektion des konvertierten Codes kopiert man nun in eine <pre>-Umgebung rein und violá:

<p>Der eine oder andere Leser meiner MMNTs mag sich schon gefragt haben, wie ich
die gelegentlich auftauchenden bunten Code-Listings mache. Ist eigentlich gar nicht
so schwer. Man braucht
<ol>
<li>Ein bisschen Sourcecode</li>
<li><a href="http://www.vim.org" target="_new">vim</a> oder den einen oder anderen
graphischen Vertreter gvim (mit gtk, athena oder motif)/kvim</li>
<li>Die vim Syntax Definition für (1.)</li>
</ol></p>

Bei längeren Listings lohnt es sich, den Source aufzubewahren und zum Download anzubieten, es ist aus dem konvertierten Source praktisch nicht mehr möglich, den ursprünglichen Source rauszulesen. Auch die Übernahme per cut&paste ist eher mühselig.

Links:


hampft! ->