Neuere Emacs- und
XEmacs-Versionen verfügen
über ein nützliches Lisp-Paket namens PSGML. PSGML
(das über den Port editors/psgml
installiert werden kann) ist
ein so genannter Majormode, der
Funktionen speziell für den Umgang mit SGML-Dateien,
-Elementen und deren Attributen bereit stellt. Emacs aktiviert
PSGML automatisch, wenn eine Datei mit der Endung
.xml
geladen oder der Befehl M-X
sgml-mode
eingegeben wird.
Die Arbeit an SGML-Dokumenten wie dem FreeBSD-Handbuch kann sich wesentlich einfacher gestalten, wenn einige der Funktionen von PSGML gekannt sind:
C-c C-e
Ruft die Funktion sgml-insert-element
auf, die nach dem Namen des einzufügenden Elements
fragt. Ist dieser eingegeben worden und wurde die
Eingabetaste gedrückt, fügt die
Funktion Start- und Endtag des neuen Elements ein. Sofern
das eingefügte Element laut DTD andere Elemente
enthalten muß, werden diese ebenfalls
eingefügt.
Falls Sie unsicher sind, wie der Name des gewünschten Elements lautet oder welche Elemente an der aktuellen Position erlaubt sind, können mittels der Taste Tab alle an dieser Stelle möglichen Elemente angezeigt werden. Ebenso ermöglicht Tab die Vervollständigung eines bereits eingegebenen Elementnamens.
C-c =
Ruft die Funktion
sgml-change-element-name
auf, mit der das
aktuelle Element – das Element zwischen dessen Start-
und Endtag sich der Cursor befindet – ausgewechselt
werden kann. Die Funktion fragt nach dem Namen des neuen
Elements und ersetzt anschließend Start- und Endtag
des alten Elements durch die des neuen Elements.
C-c C-r
Ruft die Funktion sgml-tag-region
auf, die einen markierten Textabschnitt mit einem Element
umschließt. Dazu markieren Sie zuerst den Textabschnitt
(gehen Sie zum Anfang des Abschnitts und führen Sie
C-space
aus, dann gehen Sie zum Ende des
Abschnitts und führen erneut C-space
aus), danach führen Sie diese Funktion aus. Sie werden
nach dem Namen des einzufügenden Elements gefragt. Dessen
Start-Tag wird dann am Anfang des markierten Textes
eingefügt, dessen End-Tag am Ende des markierten
Texts.
C-c -
Ruft die Funktion sgml-untag-element
auf, die Start- und Endtag des Elements entfernt, innerhalb
dessen sich der Cursor befindet.
C-c C-q
Ruft die Funktion sgml-fill-element
auf. Diese Funktion formatiert[17] den Inhalt des aktuellen Elements neu. Dieser
Vorgang betrifft auch Elemente wie
programlisting
, in denen Leerzeichen und
ähnliches Teil der Formatierung sind. Aus diesem Grund
ist mit sgml-fill-element
bedächtig
umzugehen.
C-c C-a
Ruft die Funktion
sgml-edit-attributes
auf. Diese
öffnet einen zweiten Puffer mit allen Attributen des
Elements, innerhalb dessen sich der Cursor befindet.
Über Tab kann von einem Attribut zum
nächsten gewechselt werden. Ein existierender
Attributwert kann mit C-k
gelöscht
werden. Die Tastenfolge C-c C-c
schließt den Puffer und setzt die Attribute des
Elements entsprechend den Puffervorgaben.
C-c C-v
Ruft die Funktion sgml-validate
auf,
die zuerst fragt, ob das aktuelle Dokument gespeichert
werden soll und anschließend einen SGML-Validator
aufruft. Die Ausgaben des Validators werden in einem neuen
Puffer angezeigt. Dadurch hat der Benutzer die
Möglichkeit, eventuell vom Validator gefundene Fehler
zu korrigieren.
C-c /
Startet die Funktion sgml-insert-end-tag
,
die automatisch das passende End-Tag für das gerade
offene Element einfügt.
Zweifellos hat PSGML noch weitere nützliche Funktionen, doch die hier genannten sind die, die der Autor dieser Fibel am meisten benutzt.
Um den richtigen Einzug, die Umwandlung von Tabulatoren in
Leerzeichen und die maximale Zeilenlänge für Dokumente des FDPs
sicherzustellen, kann folgender Eintrag in
.emacs
vorgenommen werden:
[17] Formatieren bedeutet in diesem Zusammenhang, dass die Funktion versucht, soviel Zeichen wie möglich in einer Zeile unterzubringen. Die Stelle, bis zu der gefüllt und dann der Zeilemumbruch erfolgt, ist konfigurierbar.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.