Az Emacs és XEmacs újabb változataihoz tartozik egy psgml nevű, nagyon hasznos csomag (a Portgyűjteményből a editors/psgml portból telepíthetjük fel). Ez a kiegészítés vagy az .sgml állományok megnyitásakor töltődik be automatikusan, vagy pedig az M-x sgml-mode parancs begépelésével. Általánosságban véve ez az SGML állományok és a bennük található elemek és tulajdonságok szerkesztésére alkalmas mód.
Az alábbiakban bemutatunk néhány olyan alapvető parancsot ebben a módban, amelyekkel könnyebbé válik a különböző SGML dokumentumok, többek közt a kézikönyv szerkesztése.
Meghívja az
sgml-insert-element
függvényt.
Ekkor meg kell adnunk az adott pontra beillesztendő elem
nevét. Itt a Tab
lenyomásával kérhetjük a név
kiegészítését, az adott ponton
érvénytelen elemek neveit ilyenkor nem
érhetjük el.
A szövegbe ekkor bekerülnek az elemhez tartozó kezdő- és zárócímkék. Amennyiben az elemhez még tartoznak más egyéb kötelező elemek is, akkor egyúttal ezek is beszúródnak.
Meghívja az
sgml-change-element-name
függvényt. A parancs használatához
álljunk a módosítandó elembe. A
végrehajtáshoz meg kell még adnunk azt
is, hogy mire akarjuk átírni az elem
nevét. Ezután az érintett elem
kezdő- és zárócímkéi
lecserélődnek.
Meghívja az sgml-tag-region
függvényt. A használatához
először jelöljük ki a szöveg egy
részét (vigyük a kurzort a
kijelölés kezdetéhez, adjuk ki a
C-space billentyűparancsot, vigyük a kurzort a
kijelölés végéhez és
ismét adjuk ki a C-space parancsot).
Ezután meg kell adnunk még a bejelölt
rész jelöléséhez használni
kívánt elemet. Ennek
eredményeképpen végül a
kijelölt szakasz elejére és
végére bekerül az adott elem kezdő-
és zárócímkéje.
Meghívja az sgml-untag-element
függvényt. Álljunk a kurzorral az
eltávolítani kívánt elem
kezdő- vagy
zárócímkéjére és
adjuk ki a parancsot. Ekkor az elem kezdő- és
zárócímkéi törlésre
kerülnek.
Meghívja az sgml-fill-element
függvényt. Ennek hatására az elem,
amelyben állunk a kurzorral rekurzívan
feldolgozásra kerül (például
újraformázódik). Ez a
változtatás a tördelést is
érinteni fogja, tehát
például még
<programlisting> elemek esetében is.
Ezért mindig csak körültekintéssel
alkalmazzuk!
Meghívja az
sgml-edit-attributes
függvényt.
Ekkor a legközelebbi befoglaló elemhez
megnyílik egy másik szerkesztési
pufferben az összes hozzátartozó
tulajdonság, értékekkel együtt. Itt
a Tab lenyomásával tudunk
lépkedni az egyes elemek között, a
C-k paranccsal lecserélni egy
meglevő értéket egy újra, illetve a
C-c C-c paranccsal bezárni a puffert
és visszatérni az eredeti dokumentum
szerkesztéséhez.
Meghívja az sgml-validate
függvényt. Felajánlja a jelenleg megnyitott
dokumentum mentését (amennyiben
szükséges) és ellenőrzi az SGML
szabvány szerinti
érvényességét. A vizsgálat
eredménye egy új pufferbe kerül, ahol
szépen sorban végig tudjuk nézni az
összes hibát és javítani ezeket
menet közben.
Meghívja az
sgml-insert-end-tag
függvényt. Bezárja a kurzor előtt
megkezdett elemet.
Nyilvánvalóan ebben a módban még vannak további hasznos funkciók, de az említetteket használják a leggyakrabban.
A Dokumentációs Projekten belüli munkához az .emacs állományban a következő bejegyzéseket érdemes megadni a megfelelő tördeléshez, elrendezéshez és sorszélességhez:
(defun local-sgml-mode-hook (setq fill-column 70 indent-tabs-mode nil next-line-add-newlines nil standard-indent 4 sgml-indent-data t) (auto-fill-mode t) (setq sgml-catalog-files '("/usr/local/share/sgml/catalog"))) (add-hook 'psgml-mode-hook '(lambda () (local-psgml-mode-hook)))
Ha kérdése van a FreeBSD-vel kapcsolatban, a következő
címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése,
kérjük erre a címre írjon: <gabor@FreeBSD.org>.