                                Der Gepard-Editor                               1
________________________________________________________



                        Der  Gepard-Editor


Der hier beschriebene Editor GEP ED.MOD wurde von Hans-Jrg Himmerder,
                                   _
Ulf Reimann, Thomas Tempelmann und Wilfried Hbner in den Jahren 1984 bis
1989 erstellt und erweitert.


Einfhrung

Der Gepard-Editor ist ein alternativer Editor fr das Megamax Modula-System.
Er eignet sich zur Eingabe (und Korrektur)  der  Programmtexte.  Die  Texte
werden als Standard-ASCII-Dateien abgelegt. Die fr einen GEM-verwhnten
Benutzer ungewhnliche Bedienung ist dem bewhrten Editor des  auf  vielen
Rechnern  verfgbaren  UCSD-Pascal-Systems  nachempfunden.  Seine  beson~
deren  Vorteile  liegen  in  seiner  Krze  und  guten  Integration  ins  Megamax
Modula-2  System.  Gegenber  anderen  Editoren  heben  sich  besonders  die
Mglicheiten hervor, per Tastendruck die Positionen der letzten 16 nderungen
abzufragen (die sogar abgespeichert werden !) und das Suchen von Worten
indem, statt den Text  extra  einzutippen,  einfach  mit  dem  Cursor  auf  das
gesuchte Wort gezeigt wird. Machen Sie sich deshalb die Mhe, ihn etwas
besser  kennenzulernen,  auch  wenn  er  Ihnen  anfangs  sehr  spartanisch
vorkommt.

Der Editor ist speziell zum Schreiben von Programmtexten konzipiert worden.
Ihre Briefe werden Sie vielleicht auch weiterhin mit einer speziellen Textverar~
beitung schreiben wollen; zum Programmieren bietet Ihnen der Gepard-Editor
aber  eine  Reihe  ntzlicher  Sonderfunktionen  bei  bersichtlicher  Bedienung.
Zwar knnen Sie prinzipiell jeden Editor verwenden, der ASCII-Dateien erzeugt
- die Vorteile liegen bei diesem Editor v.a. in seiner Kompaktheit und seiner
optimalen  Einbindung  ins  Megamax  Modula-2  System.  Auerdem  ist  dieser
Editor auch mit Farbmonitoren verwendbar.

Zur Beachtung: Der Editor luft nur mit den Standard-Auflsungen des Atari
ST. Fr Grobildschirme und andere Grafikmodi (z.B. durch externe Grafik~
karte) ist noch keine Anpassung vorgenommen worden. Wird der Editor im
Farbmodus mit der kleinen Auflsung (320*200 Punkte, 16 Farben) gestartet,
schaltet er  selbstndig  auf  die  mittlere  Auflsung  um,  damit  weiterhin  80
Zeichen pro Zeile sichtbar sind. Beim Verlassen des Editor wird selbstver~
stndlich die alte Auflsung wiederhergestellt.
                                Der Gepard-Editor                              2
________________________________________________________


Die folgende Anleitung stellt Ihnen die Funktionen des Editors in der Reihenfolge
vor, in der sie fr Sie wichtig werden. Sie sollten alles Gelesene gleich im
Editor ausprobieren. Um diesen Editor als Standard-Editor unter dem Megamax
M-2 zu verwenden, mssen Sie seinen Namen GEP ED.MOD in den Editor-
                                                        _
Parametern in der Shell eintragen. Die weiteren Einstellungen in der dortigen
Dialogbox: Die Shell braucht nicht fr den Editor nach den Sourcen zu suchen
und auch keine Anzeige der Fehlermeldung nach einem Compileraufruf vorzu~
nehmen. Temporre Dateien werden nicht bentigt, und die Argumentzeile wird
mit allen drei Informationen  (Textname,  Position,  Fehlermeldung)  bergeben.
Auerdem bietet es sich an, mit "Load GEP ED.MOD" in der Start-Batch-
                                                 _
Datei den Editor resident zu laden.

<Spitze  Klammern>  verwenden  wir  im  folgenden,  um  Tastennamen  zu
bezeichnen.  Statt  der  angegebenen  Grobuchstaben  knnen  Sie  fr  alle
Kommandos auch Kleinbuchstaben verwenden.


Aufruf des Editors

Ist der Editor, wie oben beschrieben, als Modula-Editor eingestellt, kann er wie
blich von der Shell aus aufgerufen werden. Es ist auch mglich, den Editor zu
linken  (Achtung:  in  den  Linker-Parametern  alle  Treiber,  bis  auf  M2INIT,
deaktivieren). Dann kann er auch vom Desktop aus gestartet werden.


Die Kopfzeile

Der Editor ist 'Modus-orientiert' - das heit, da Sie aus einem bergeord~
neten Editier-Modus heraus Funktionen  wie  Einfgen,  Lschen  oder  Suchen
aufrufen knnen. (Auerdem knnen Sie im Editier-Modus den Cursor durch
den Text bewegen.) Den aktiven Modus und die wichtigsten mglichen Funk~
tionen  'souffliert'  Ihnen  der  Editor  in  der  obersten  Bildschirmzeile,  der
'Kopfzeile'. Die Kopfzeile sieht z.B. so aus:

  >2 Jump: B(egin, E(nd, L(ast or tag

und enthlt folgende Informationen:

    * Die Arbeitsrichtung: Gibt an, in welcher Richtung der Editor (beginnend
    bei der Cursorposition) vorgehen soll, wenn im Text gesucht oder ersetzt
    wird. Auch die Cursorbewegung mit der <Return>-Taste  wird  durch  die
    Arbeitsrichtung bestimmt. '>' steht fr 'vorwrts', '<' fr 'rckwrts'. Mit
    diesen beiden Tasten knnen Sie im Editier-Modus die Arbeitsrichtung auch
    umschalten. Auerdem sind '+' oder '.' zum Vorwrts- sowie '-' oder ','
    zum Rckwrtsschalten mglich.
                                Der Gepard-Editor                              3
________________________________________________________


    * Die Textebene: Der Editor kann nach Art eines Stacks (Stapelspeicher)
    mehrere Texte gleichzeitig verwalten. Wie viele Texte  noch  'unter'  dem
    gerade editierten auf dem Stapel sind, wird hier angezeigt (normalerweise
    Null).

    * Der Modus: Die gerade aktive Funktion des Editors. Direkt nach dem
    Aufruf 'Edit', beim Arbeiten z.B. 'Insert', 'Delete'.

    * Ein Men listet die wichtigsten  Kommandos  oder  Tasten  auf,  die  im
    aktiven Modus untersttzt werden. Im Edit-Modus gibt es besonders viele
    solcher Kommandos; dort knnen Sie mit <Help> das Men weiterschalten,
    wenn Sie zustzliche Informationen brauchen.

Durch Eingabe eines Fragezeichens im Edit-Modus knnen Sie auerdem einige
Informationen  ber  den  bearbeiteten  Text  (Lnge,  freier  Platz,  Zeilenzahl,
Cursorposition) in der Kopfzeile anzeigen lassen.


Cursorbewegung

Nach dem Aufruf des Editors befinden Sie sich im 'Edit'-Modus. Auer den in
der Kopfzeile aufgefhrten Kommandos knnen Sie hier den Cursor durch den
Text bewegen:

    * Die Pfeiltasten bewegen den Cursor um jeweils eine Position. Mit den
    horizontalen Pfeilen knnen Sie ber Zeilenanfang bzw. -ende hinaus in die
    benachbarten Zeilen gelangen. Wenn Sie mit den vertikalen Pfeilen die Zeile
    wechseln, bleibt der Cursor normalerweise in der alten Spalte - nur wenn
    die angesteuerte Zeile dort keinen Text enthlt, wird der Cursor in die
    nchste nichtleere Spalte versetzt.

    * Die <Return>-Taste bewegt den Cursor in die nchste Zeile in Arbeits~
    richtung (siehe Absatz 'Die Kopfzeile') und setzt ihn dort an den Zeilen~
    anfang. Beim Bewegen des Cursors werden Sie feststellen, da der Editor
    einen variablen linken Rand bercksichtigt: Fhrende Leerzeichen vor den
    Zeilen  knnen  Sie  mit  dem  Cursor  nicht  erreichen.  Bei  Modula-Pro~
    grammen, in denen ja oft weit eingerckt wird, steht der Cursor daher
    immer am Beginn der wesentlichen Informationen. (Um den linken Rand zu
    verndern, verwenden Sie das 'Adjust'-Kommando.)

    * <Tab> bewegt den Cursor nach rechts zur nchsten Tabulatorposition;
    <Shift>-<Tab> analog zum nchsten Tabulator nach links.

    *  Wird  gleichzeitig  <Shift>  bei  Bettigen  der  horizontalen  Cursortasten
    festgehalten, bewegt sich der Cursor immer zum  Anfang  des  nchsten
    bzw. vorigen Wortanfangs.
                                Der Gepard-Editor                              4
________________________________________________________


    * Zum seitenweisen Blttern im Text gibt es das Tastenpaar Page und
    Opposite Page. <P> bewegt den Cursor um 20 Zeilen vorwrts; der Text
    wird anschlieend so auf dem Bildschirm dargestellt, da der Cursor in der
    gleiche Hhe wie zuvor steht. <O> bewegt analog den Cursor um 20 Zeilen
    zurck. Ebenso kann das Blttern mit <Shift>-<Cursor Up/Down> erfolgen.

    * <Control>-<Cursor Left/Right> bewegen den Cursor  zum  Anfang  bzw.
    Ende der Zeile.

    * <Control>-<Cursor Up/Down> scrollen den Text auf/ab.

    * <Home> oder <M> (wie MidScreen) lassen den Cursor im Text an der
    alten Position, bauen aber den Bildschirm neu auf, so da die Cursorzeile
    in der Mitte steht.

    *  Wiederholungs-Faktoren  knnen   Sie   mit   allen   Cursorbewegungen
    verwenden: Bevor Sie eine Cursortaste bettigen, knnen Sie eine (auch
    mehrstellige)  Dezimalzahl  eingeben.  Die  direkt  anschlieend  ausgelste
    Cursorbewegung wird dann entsprechend oft wiederholt. Einen irrtmlich
    oder fehlerhaft eingegebenen Wiederholungsfaktor lschen Sie, indem Sie
    anschlieend <ESC> oder <Undo> drcken.

    * Durch Drcken der linken Maustaste wird der Cursor auf die Position
    des Mauszeigers gesetzt. Steht der Mauszeiger am oberen oder unteren
    Bildrand, so wird der Text in die entsprechende Richtung gescrollt, solange
    man die linke Mautaste gedrckt hlt.


Eingabe von Text

Um neuen Text einzugeben, bewegen Sie den Cursor im Edit-Modus an die
richtige Stelle und rufen durch <I> oder <Insert> den Insert-Modus auf. Jetzt
knnen Sie Text eingeben. Folgende Tasten haben besondere Funktionen:

    * <Backspace> oder <Linkspfeil> lscht zeichenweise den eingegebenen Text
    wieder.

    * <Return> bewirkt einen Wechsel in die nchste Zeile. Dabei wird auto~
    matisch  so  weit  eingerckt  wie  in  der  Zeile  darber.  Korrektur  der
    Einrckung durch <Backspace> oder horizontale Pfeiltasten.

    * <Tab> und <Control Q> bewegen den Cursor zum  nchsten  Tabulator
    nach rechts bzw. links; dabei werden Leerzeichen eingefgt bzw. einge~
    fgter Text wieder gelscht.
                                Der Gepard-Editor                              5
________________________________________________________


    * <Enter>, <F1> oder <Control C> verlassen den Insert-Modus; der einge~
    gebene Text wird in die Datei eingefgt  und  in  den  Kopierpuffer  (s.u.)
    bernommen.

    * <ESC> oder <Undo> verlassen den Insert-Modus; der eingegebene Text
    wird verworfen! Trotzdem wird der Text in den Kopierpuffer bernommen,
    er kann also an anderer Stelle (oder nach versehentlichem <Undo>) wieder
    in die Datei eingefgt werden.


Lschen von Text

Um Text zu lschen, bewegen Sie den Cursor auf den Anfang oder das Ende
der zu lschenden Passage. Dann rufen Sie mit <D> oder <Delete> den Delete~
Modus   auf.   Im   Delete-Modus   funktionieren   alle   Cursorbewegungen
(einschlielich  Wiederholungsfaktoren).  Der  Text,  ber  den  Sie  den  Cursor
bewegen, wird jedoch gelscht.

Solange Sie den Delete-Modus nicht verlassen haben, knnen Sie  zu  weite
Cursorbewegungen durch einfaches Zurckholen des Cursors korrigieren; der
Text erscheint wieder. Durch <Enter> oder <F1>  verlassen  Sie  den  Delete-
Modus, der Text wird endgltig gelscht. Allerdings wird die Passage in den
Kopierpuffer bernommen und kann von  dort  wieder  in  die  Datei  eingefgt
werden.

<ESC> oder <Undo> verlassen den Delete-Modus, ohne da Text aus der Datei
gelscht wird. Die mit dem Cursor berstrichene Passage wird nur in  den
Kopierpuffer bernommen (ntzlich zum Herauskopieren von Textstcken).

Zum Lschen lngerer Passagen ist das Delete-Kommando etwas umstndlich
- man wrde lieber nur Anfang und Ende der Passage suchen und markieren.
Dazu dient  das  Zap-Kommando:  Im  Edit-Modus  Anfang  oder  Ende  des  zu
lschenden Blocks aufsuchen und durch <D> <ESC> markieren. Nun die andere
Begrenzung des Blocks ansteuern und durch <Z> das Zap-Kommando auslsen.
Vor dem Lschen lngerer Passagen wird noch einmal nachgefragt; in jedem
Fall landet der gelschte Text aber im Kopierpuffer und kann somit wieder
hervorgeholt werden.


ndern von Text

Oft ist es lstig, kleine nderungen (etwa Tippfehler) durch  abwechselndes
Lschen und Einfgen zu bearbeiten. Der Exchange-Modus (aufgerufen durch
<X>)  bietet  die  Mglichkeit,  Zeichen  auf  dem  Bildschirm  direkt  zu  ber~
schreiben. Die nderungen werden nicht gepuffert, knnen also nicht  auto~
matisch rckgngig gemacht werden. Folgende Tasten haben Sonderfunktionen:
                                Der Gepard-Editor                              6
________________________________________________________


    * <Return> und die Pfeiltasten (auch m. <Shift>) bewegen den Cursor.
    * <Insert> fgt an der Cursorposition ein Leerzeichen ein.
    * <Delete> lscht das Zeichen unter dem Cursor.
    * <Backspace> lscht das Zeichen vor dem Cursor.
    * <Enter>, <F1>, <ESC> und <Undo> verlassen den Exchange-Modus.


Laden und Speichern, Wechseln des Textes

Welches Dokument er laden soll, erfragt der Editor schon beim Start, bevor
Sie in den Edit-Modus gelangen. Hierzu erscheint die File-Select-Box. Auch
nachtrglich ist es aber mglich, zu einem anderen Dokument berzugehen.
Dazu  dient  das  New-Kommando:  Nach  Eingabe  von  <N>  knnen  Sie  den
Dateinamen des zu bearbeitenden Dokumentes bestimmen.

Falls das alte Dokument im Speicher gendert wurde, fragt New nach, ob Sie
die genderte Textversion wirklich verwerfen wollen, indem Sie ein anderes
Dokument laden. Die Antwort <N> oder <ESC> fhrt zurck in den Edit-Modus.

Um einen Text auf Diskette zu speichern, rufen Sie durch <Q> das Quit-Men
auf. Es wird eine Auswahl von Unterkommandos zum Sichern und weiteren
Bearbeiten des Textes aufgelistet:
    <ESC>, <Return> oder <Undo> kehren zurck zum Edit-Modus (bei irrtm~
    lichem Quit oder wenn Sie nach dem Speichern weiterarbeiten wollen).

    <E>xit verlt den Editor, ohne den Text zu speichern. Ist der Text nach
    dem letzten  Speichern  verndert  worden,  fragt  der  Editor,  ob  Sie  die
    nderungen wirklich verwerfen wollen.

    <N>ew filename speichert den Text unter einem anzugebenden Namen. Hat
    der Text noch keinen Namen (weil er gerade vollstndig neu eingegeben
    ist), dann kann zunchst nur dieses Kommando verwendet werden.  Der
    Name wird vom Editor fr weitere Speicherkommandos gemerkt.

    <W>rite  a  file  speichert  den  Text  ebenfalls  unter  einem  anzugebenden
    Namen. Der Name wird aber nur fr diese Speicheroperation verwendet
    und nicht fr sptere Kommandos bernommen (ntzlich, um  zwischen~
    durch ein Backup auf eine andere Diskette zu schreiben).

    <S>ave  as  ...  speichert  den  Text  unter  dem  angezeigten  Namen.  Das
    meistgebrauchte Kommando, um zwischendurch gelegentlich die Arbeit auf
    Diskette zu sichern.

    <B>ackup and save as ... speichert ebenfalls den Text unter dem ange~
    gebenen Namen. Falls eine Datei unter diesem Namen schon vorhanden ist,
    wird deren Suffix (Endung) zuvor in 'BAK' umbenannt.
                                Der Gepard-Editor                              7
________________________________________________________


    <U>pdate (Save & Exit) speichert den Text unter dem angegeben Namen
    und verlt (falls das Speichern fehlerlos verlief) den Editor. blich zum
    Beenden des Edierens.

    <C>ompile  (Update  &  Compile)  verhlt  sich  wie  Update,  lt  aber
    anschlieend  den  Compiler  den  gespeicherten  Text  bersetzen.  Dieses
    Kommando  knnen  Sie  whrend  der  Programmentwicklung  vorteilhaft
    verwenden - mit einem Tastendruck veranlassen Sie die bersetzung.

    e<X>ecute (Update & Execute) setzt auf 'Compile' noch eins drauf: Falls
    der bersetzungsversuch erfolgreich ist, wird das bersetzte Programm
    auch gleich gestartet.

    <M>ake speichert den Text wie bei <U>pdate, nach dem Verlassen wird das
    Default-Make aktiviert - so, als ob in der Shell dann <M> gedrckt wrde.

    <R>un schlielich geht vor wie <M>ake, nach erfolgreichem Make wird die
    Hauptdatei des Default-Make gestartet.

    <O>ther Filename ndert ausschlielich den gemerkten Namen fr sptere
    Speicherkommandos; es wird keine Speicherung ausgelst.

    <I>ncrement Version schlielich hat mit dem Speichern eigentlich nichts zu
    tun;  Sie  sollen  aber  vor  dem  Speichern  an  diese  Mglichkeit  erinnert
    werden.  Der  Editor  kann  eine  Versionsnummer  im  Text  suchen  und
    automatisch erhhen. Dazu mu (in einem Kommentar oder einer String~
    konstanten) die Zeichenfolge 'V#' und beliebig viele Dezimalziffern hinter
    dem Kopf 'V#' ohne Leerzeichen stehen. Wahlweise knnen Sie den Editor
    anweisen, bei jedem Speichervorgang automatisch diese Versionsnummer
    zu erhhen. Lesen Sie dazu bitte den Abschnitt 'Environment'.


Ausgabe auf Drucker

Die Hardcopy-Funktion erlaubt es, den gesamten Text, den Text der gerade
sichtbaren Seite oder den Text im Kopierpuffer zu drucken. Drcken Sie dazu
<H> und dann wahlweise <S> (sichtbare Seite), <A> (alles) oder <B> (Puffer).
Ist  kein  Drucker  angeschlossen  oder  ist  er  Off-Line,  warten  Sie  ca.  30
Sekunden.  Dann  erscheint  oben  in  der  Statuszeile  die  Meldung  "Printer:
Offline" und der Druckvorgang wird abgebrochen. Whrend des Druckens ist
der Abbruch mit <Esc> oder <Home> mglich (ggf. auch hier  30  Sekunden
warten!). brigens: Am Druckende wird immer noch eine CR/LF-Kombination
ausgegeben. Das hat den netten Nebeneffekt, da das Drucken eines leeren
Puffers (Puffer leeren  mit  <D>  <Esc>,  Drucken  mit  <H>  <B>)  immer  einen
Zeilenvorschub bewirkt.
                                Der Gepard-Editor                              8
________________________________________________________


Suchen und Ersetzen

Das  Find-Kommando  dient  zum  Suchen  von  Zeichenketten  im  Text.  Nach
Eingabe von <F> fragt der Editor Sie (in der Kopfzeile) nach der zu suchenden
Zeichenkette. Die Eingabe wird mit <Return> abgeschlossen. Die Suche beginnt
an der Cursorposition und luft in  der  eingestellten  Arbeitsrichtung  weiter.
Normalerweise wird jedes Vorkommen der Zeichenkette auf dem Bildschirm
angezeigt;  in  der  Kopfzeile  erscheint  die  Frage,  ob  die  Suche  fortgesetzt
werden soll.

Entsprechend   funktioniert   das   Replace-Kommando   zum   Ersetzen   von
Zeichenketten.  Nach  <R>  mssen  Sie  hier  zwei  Strings  eingeben  -  den
gesuchten und die gewnschte Ersetzung. Auch hier wird von  der  Cursor~
position in Arbeitsrichtung vorgegangen und normalerweise vor jeder Ersetzung
beim Benutzer rckgefragt.

Als Alternative zu Find gibt es noch das Look-Kommando. Statt eine Zeichen~
kette einzugeben, stellen Sie vor dem Drcken von <L> den Cursor auf dem
Bildschirm auf das gesuchte Wort. Ein Wort wird dabei durch  Satzzeichen
oder Leerzeichen begrenzt. Die Position, an der der Cursor  stand,  als  die
Look-Funktion ausgelst wurde, kann danach durch Drcken von <J> und <->
wieder angesprungen werden.

Look ist besonders ntzlich, wenn Sie die Deklaration einer bentzten Variable
oder Prozedur ansehen wollen.  Dabei  ist  wichtig,  da  das  Look-Kommando
anders sucht als Find und Replace: Ist die Arbeitsrichtung vorwrts, dann wird
stets vom Textanfang an gesucht; in der Arbeitsrichtung rckwrts beginnt die
Suche am Textende. Lsen Sie  also  Look  fr  eine  Variable/Prozedur  aus,
whrend  die  Arbeitsrichtung  vorwrts  eingestellt  ist  (der  Normalfall),  dann
finden Sie  als  erstes  die  zugehrige  Deklaration.  Haben  Sie  sie  gefunden,
drcken Sie ESC und springen dann mit <J> <-> zurck.

Mit <F6> kann ein erweitertes "Look"-Kommando gestartet werden. Es sucht
dann den Bezeichner unter dem Cursor nicht im augenblicklichen Text, sondern
in den compilierten Definitionsmodulen (*.DEF) auf den Definitionspfaden des
Compilers. Wird ein Bezeichner gefunden, der  mit  dem  gesuchten  berein~
stimmt (die Prfix-Option "W(ord find" sowie die Environment-Option "C(ase
sensitivity" sind auch hierbei gltig), wird angezeigt, gefolgt von einem Frage~
zeichen. Nun kann man whlen:
* /ESC/ oder /Undo/ beenden die Suche.
*  <Y>,  /Return/  oder  /F1/  laden  den  zugehrigen  Definitionstext  (dessen
  Name  wird  aus  dem  der  compilierten  DEF-Datei  durch  Abschneiden  der
  Namensendung auf ein Zeichen. z.B. wird INOUT.DEF zu INOUT.D). Zurck
  in den alten Text gelangen sie durch Schlieen des neu erffneten Text~
  puffers (mit /F4/).
* /Space/ oder jede andere Taste suchen weiter.
                                Der Gepard-Editor                              9
________________________________________________________


Diese Funktion bietet sich an, um  bei  bestehenden  Programmen  die  Doku~
mentation einzelner importierter Bezeichner schnell zu finden. Auerdem kann
damit herausgefunden werden, aus welchem Modul ein Bezeichner zu impor~
tieren ist und wie seine genaue Schreibweise ist.


Prfix-Kommandos fr Suchen und Ersetzen

Leistungsfhig  werden  Suchen  und  Ersetzen  durch  die  Mglichkeit,  ihre
Funktion durch Prfix-Kommandos zu verndern. Diese Pfixe tippen Sie vor
dem Auslsen des Kommandos im Edit-Modus - der Editor wertet sie aus,
falls   anschlieend   eine   Suchfunktion   gestartet   wird.   Mehrere   Prfix-
Kommandos knnen kombiniert und in beliebiger Reihenfolge eingegeben werden.

Ein Prfix-Kommando kennen Sie schon: den Wiederholungsfaktor, der auer
den Cursorbewegungen auch die  Suchfunktionen  beeinflut.  Wird  mit  einem
Wiederholungsfaktor <n> gesucht/ersetzt, dann zeigt der Editor die ersten <n>
gefundenen Vorkommen nicht an bzw. fragt beim Ersetzen nicht  nach.  Als
Besonderheit gibt es hier den Wiederholungsfaktor 'unendlich', notiert als </>.
Er erlaubt das Ersetzen aller gefundenen Worte ohne Rckfrage.

Wollen Sie trotz Angabe eines Wiederholungsfaktors gefragt werden, geben
Sie zustzlich den Prfix <V> wie Verify an. Diese Anwendung ist selten; meist
werden Sie bei Suchen/Ersetzen mit Rckfrage ganz ohne Wiederholungsfaktor
und Prfix arbeiten.

Wie Wiederholungsfaktor und Verify-Option gesetzt sind, zeigen Ihnen Find und
Replace bei der Frage nach dem Suchwort in der Kopfzeile an. Hinter dem
Namen des gewhlten Kommandos steht in Klammern der Wiederholungsfaktor
(Default ist '/') sowie - falls Verify aktiv ist - ein Fragezeichen.

Der Prfix <W> whlt wortweises Suchen: Der Editor akzeptiert nur solche
Zeichenketten  im  Text,  die  mit  dem  Suchwort  bereinstimmen  und  durch
Sonderzeichen/Leerzeichen  begrenzt  sind.  'Haus'  wird  also  nicht  gefunden,
wenn  im  Text  'Hausboot'  auftaucht.  Wenn  Sie  Bezeichner  in  Modula-
Programmen  suchen  oder  ersetzen  wollen,  sollten  Sie  immer  wortweises
Suchen anwhlen.

Der Prfix <S> steht fr 'Same' und bewirkt bei Find und Replace, da der
Editor  nicht  erneut  nach  Zeichenketten  fragt,  sondern  von  der  aktuellen
Cursorposition nochmals  eine  Suche  nach  dem  zuletzt  benutzten  Suchwort
beginnt bzw. durch die gleiche Zeichenkette ersetzt.

Vor einem Look-Kommando hat Same eine andere Funktion: Gesucht wird dann
nach dem Wort, auf dem der Cursor steht, aber nicht vom Textanfang/-ende,
sondern von der Cursorposition an (in Arbeitsrichtung).
                                Der Gepard-Editor                             10
________________________________________________________


Die Benutzung der Prfix-Kommandos ist zunchst etwas gewhnungsbedrftig,
da  die  Kommandos  ohne  Prompts  oder  Meldungen  des  Editors  'ins  Blaue'
geschrieben  werden.  Bald  werden  Sie  aber  feststellen,  da  so  eine  sehr
effiziente Bedienung der Suchfunktionen mglich ist. Natrlich knnen mehrere
Prfix-Kommandos miteinander kombiniert werden, indem sie alle in beliebiger
Reihenfolge unmittelbar vor dem Suchen/Ersetzen eingegeben werden.

Wenn Sie nicht mehr wissen, welche Prefix-Kommandos Sie nun eingegeben
haben, knnen Sie sie jederzeit mit <Esc> alle wieder lschen und dann ggf.
nochmal eingeben.

Schlielich gibt es noch eine weitere Mglichkeit, die Arbeit der Suchfunktionen
zu  beeinflussen:  Sie  knnen  whlen,  ob  Gro-  und  Kleinbuchstaben  unter~
schieden werden sollen oder nicht. Diese 'Case Sensitivity' werden  Sie  nur
selten  umstellen  -  je  nachdem,  ob  Sie  im  Compiler  mit  oder  ohne  Case
Sensitivity arbeiten (Compileroption $C)  sollten  Sie  auch  die  Einstellung  im
Editor  whlen.  Daher  wird  diese  Funktion  nicht  ber  ein  Prfix-Kommando
gesteuert, sondern in der 'Environment'-Anzeige des Editors fest eingestellt.


Kopieren

Bei  der  Beschreibung  des  Insert-  und  Delete-Modus  haben  Sie  bereits
erfahren, da alle eingefgten oder gelschten Passagen in einen Kopierpuffer
bernommen werden. Genauer: Der Kopierpuffer enthlt immer den Text, der
mit dem letzten ausgefhrten Insert- oder Delete-Kommando bearbeitet wurde.

Zum Kopieren von Textstcken fehlt nur noch ein Kommando, mit dem der
Inhalt des Kopierpuffers wieder in den Text bernommen werden kann. Dazu
dient das Copy-Kommando: Im Edit-Modus Cursor an die Zielstelle bewegen,
<C> whlen und als Unterkommando <B> wie Buffer - fertig. Einige Tips zum
Copy-Kommando:

    * Um einen Text, von dem eine Kopie bentigt wird, in den Kopierpuffer
    hineinzubekommen, wird normalerweise der Delete-Modus bentzt und mit
    <ESC>  oder  <Undo>  verlassen.  Fr  lngere  Passagen  kann  das  Zap-
    Kommando komfortabler sein: Passage mit Zap lschen, sofort mit Copy
    Buffer an der Original-Stelle wieder einfgen, dann erst an die Zielstelle
    kopieren.

    * Der Kopierpuffer behlt seinen Inhalt, wenn die Textebene gewechselt
    wird.  (Siehe  Abschnitt  'Textebenen'  weiter  unten!)  Damit  knnen  Sie
    Passagen aus anderen Dateien in Ihren Text bernehmen: Neue Textebene
    ffnen  (<F3>),  gewnschte  Datei  laden  (<N>),  Text  in  den  Kopierpuffer
    holen  (Delete-  oder  Zap-Kommando),  zurck  in  die  alte  Ebene  (<F4>),
    Textkopie ablegen (<C>, <B>).
                                Der Gepard-Editor                              11
________________________________________________________


Tabulatoren

Die Anwendung der Tabulatoren bei der Cursorbewegung, bei Texteingabe und
-lschung ist in den entsprechenden Abstzen beschrieben. Weitere Hinweise
zur Benutzung der 'Tabs':

* Die Position der gesetzten Tabulatoren wird in der Environment-bersicht
angezeigt. Auerdem kann mit der Taste <K> eine Tabulator-Anzeige anstelle
der Kopfzeile an- und abgeschaltet werden.

* Die komplette Tabulator-Belegung kann mit dem Tab-Unterkommando  des
Environments  neu  gesetzt  werden:  Nach  <T>  eine  Zeile  beliebiger  Zeichen
eingeben,  die  an  allen  gewnschten  Tabulatorpositionen  ein  'T'  enthlt.
Insbesondere lassen sich durch <T> <Leertaste> <Return> alle  Tabs  lschen
oder durch Eingabe einer Zahl (zw. 1 und 80) die Tabs auf alle Vielfachen
dieses Wertes setzen.

* Zum Setzen und Lschen einzelner Tabulatoren kann im Edit-Modus <F2>
verwendet werden. Dieses Kommando setzt bzw. lscht einen Tabulator in der
Cursorspalte.


Marken (Tags) und Sprnge

Als  Orientierungshilfe  im  Text  knnen  Sie  an  Stellen,  die  Sie  schnell
wiederfinden mchten, Marken (Tags) setzen. Nach dem Tag-Kommando <T>
knnen Sie eine Ziffer von 0 bis 9 oder einen Buchstaben als Name der Marke
eingeben;  diese  Marke  wird  dann  an  die  Cursorposition  gesetzt  (bleibt
unsichtbar). Eine Liste der bisher benutzten Marken in einem Text zeigt die
'Environment'-bersicht.

Um den Cursor auf eine Marke zu bewegen, geben Sie das Jump-Kommando
<J>  gefolgt  vom  Markennamen  ein.  Auerdem  bietet  Jump  eine  Reihe  von
Zusatzfunktionen:

    * Die Marken B und E sind fest auf Beginn und Ende des Textes gesetzt;
    sie knnen ebenfalls ber Jump erreicht werden.

    * Die Marke L steht immer fr die letzte Position, an der eingefgt oder
    gelscht wurde. (Dies ist auch die Position, die das Zap-Kommando als
    Bereichsgrenze verwendet.)

    * Durch Eingabe von <-> oder <+> anstelle einer Marke knnen Sie auf das
    'Langzeitgedchtnis'  des  Editors  zurckgreifen:  Die  letzten  16  Text~
    positionen, an denen durch irgendeine Funktion etwas verndert oder das
    Look-Kommando verwendet wurde, werden gespeichert. <-> fhrt Sie in
                                Der Gepard-Editor                             12
________________________________________________________


    dieser Liste weiter in die Vergangenheit zurck, <+> wieder in Richtung auf
    die  jngste  nderung.  Verlassen  Sie  diesen  Modus  mit  einer  anderen
    Taste, z.B. <ESC> oder <Return>.

    * Die Marke <?> wird automatisch auf die Fehlerposition gesetzt, wenn der
    Editor nach einem Laufzeit- oder Compilierfehler gestartet wurde. Wenn
    Sie diese Marke anspringen, wird auch die Fehlerbeschreibung nochmals
    eingeblendet.

Haben Sie eine Marke B, E oder L gesetzt und wollen sie anspringen, geben
Sie nach <J> erst <Leertaste> ein, bevor sie die gewnschte Marke tippen.

Um an eine bestimmte Zeilennummer zu springen, brauchen Sie nur die Zahl
im Edit-Modus einzutippen und dann das Kommando <J> aufzurufen.
Mit dem Kommando <?> knnen Sie sich brigens die aktuelle Zeilennummer
anzeigen lassen.


Formatierung

Drei Kommandos helfen Ihnen bei der Formatierung Ihrer Texte:

Adjust dient zum Verndern der Einrckungen in Programmen. Mit <A> rufen
Sie den Adjust-Modus auf und haben jetzt folgenden Funktionen zur Verfgung:

    * <Pfeil links>, <Pfeil rechts> verschieben die Textzeile, in der der Cursor
    steht, um jeweils ein Zeichen.

    * <L> macht die Zeile linksbndig.

    * <Pfeil hoch>, <Pfeil runter>, <Return> bewegen den Cursor wie blich.
    Dabei wird die erreichte Zeile jeweils um den gleichen Betrag verschoben
    wie die vorige. Spielen Sie doch mal mit dem Adjust-Modus: So knnen
    ganze Blcke eingerckt  werden  (etwa,  um  einen  Programmteil  in  eine
    Schleife  einzubetten);  die  relative  Position  der  verschobenen  Zeilen
    zueinander bleibt erhalten.

<B>reak trennt eine Zeile hinter dem Wort, auf dem der Cursor steht, durch
Einfgen eines <Return>-Codes. Ein Wort wird durch Satz- oder Leerzeichen
begrenzt.  Ausnahme:  Steht  der  Cursor  auf  dem  ersten  Buchstaben  eines
Wortes, dann wird vor dem Wort getrennt. Falls an der Trennstelle ein oder
mehrere Leerzeichen stehen, werden diese entfernt.

<G>lue 'klebt' entsprechend zwei Zeilen wieder zusammen, entfernt also den
<Return>-Code am Ende der Zeile, in der der Cursor steht. Auerdem werden
berschssige fhrende Leerzeichen der angehngten Zeile entfernt; vor der
angehngten Zeile wird genau ein Leerzeichen eingefgt.
                                Der Gepard-Editor                             13
________________________________________________________


Textebenen

Der Editor kann nach Art eines Stacks mehrere Texte gleichzeitig verwalten.
Bearbeiten knnen Sie jeweils den obersten Text auf dem Stack; wenn Sie die
Arbeit an diesem Text abschlieen, erscheint das darunterliegende Dokument
wieder, der vorher aufgelegte Text geht verloren. Diese Funktion ist besonders
ntzlich, um beim Edieren eines Textes in anderen Dateien etwas nachzusehen
oder Passagen aus anderen Dateien zu kopieren (siehe Abschnitt 'Kopieren').

<F3>  erffnet  eine  neue  Textebene  -  der  Editor  'versteckt'  das  gerade
bearbeitete Dokument und beginnt im Edit-Modus ein neues, leeres Dokument.
In der Kopfzeile wird die neue, hhere Textebene angezeigt. Sie knnen jetzt
z.B. mit dem New-Kommando eine Datei in den Editor holen und bearbeiten.

<F4> verlt die aktuelle Textebene und verwirft den dort bearbeiteten Text -
diese Taste ist also nichts anderes als eine Abkrzung fr Quit, Exit. Genau
wie bei dieser Tastenkombination fragt der Editor nach, falls der bearbeitete
Text  verndert  wurde.  Tatschlich  knnen  Sie  auch  die  Quit-Kommandos
benutzen, um zur nchsttieferen Textebene zurckzukehren - gesperrt sind
allerdings die Unterkommandos, die den anschlieenden Start des Compilers
bewirken wrden.


Das Environment

Der Editor verwaltet zu jedem Text eine Reihe von Zusatzinformationen - dazu
gehren z.B. die oben beschriebenen Marken, die Stellung der Tabulatoren, die
Einstellung  der  'Case  Sensitivity'  fr  die  Suchkommandos.  Diese  'Arbeits~
umgebung' des Editors wird engl. 'Environment' genannt. Der Editor zeigt diese
internen Informationen an, wenn Sie das Environment-Kommando <E> geben.
Sie sehen dann:

    * Die Meldung "Last changes have not been saved yet", falls nderungen
    am Text vorgenommen wurden und der Text noch nicht wieder gespeichert
    wurde.

    * Name der Textdatei fr Speicheroperationen aus dem Quit-Untermen
    (dort kann dieser Name auch gendert werden).

    *  Such-  und  Ersetzungsbegriff  fr  Find-  und  Replacekommando.  Beide
    knnen durch Anwhlen des Menpunkts <O>ld bzw. <N>ew auch verndert
    werden - evtl. hilfreich bei langen Zeichenketten, wenn nur eine verndert
    werden soll. Danach mit Same-Option das Suchkommando aufrufen. <F>lip
    vertauscht Such- und Ersetzungsbegriff, wenn eine Ersetzung rckgngig
    gemacht werden soll.
                                Der Gepard-Editor                             14
________________________________________________________


    * <A>uto Backup Flag gibt an, ob bei allen Speicheroperationen automatisch
    die  alte  Version  des  Textes  in  'name.BAK'  umbenannt  werden  soll.
    Anwhlen des Menpunkts Auto Backup schaltet dieses Flag um.

    * <I>ncrement Version  Flag  bestimmt,  ob  vor  allen  Speicheroperationen
    automatisch  im  Text  nach  einer  Versionsnummer  der  Form  V#  zahl
    (beliebig viele Dezimalstellen hinter dem Kopf V#) gesucht und diese erhht
    werden soll.

    * <C>ase Sensitivity Flag gibt an, ob Find, Replace und Look beim Suchen
    Gro- und Kleinschrift unterscheiden sollen. Welche Einstellung sinnvoll ist,
    hngt i.a. davon ab, ob Sie im Compiler mit Unterscheidung arbeiten wollen
    (Modula-Standard) oder nicht.

    *  Wenn  Sie  Quelltexte  fr  den  Megamax  Modula-Compiler  bearbeiten,
    empfiehlt  es  sich,  das  <Q>uick  save  &  load-Flag  einzuschalten.  Damit
    werden die Texte schneller  gespeichert  und  wieder  geladen,  da  sie  im
    Editor-internen Format abgelegt werden und somit das wiederholte Hin-
    und  Rckwandeln  des  Formats  ausgelassen  wird.  Die  so  gespeicherten
    Dateien lassen sich nicht ausdrucken oder mit anderen Editoren weiter~
    bearbeiten - nur der Modula-Compiler kann dieses Format korrekt inter~
    pretieren. Soll der Text wieder im normalen Format in der Datei vorliegen,
    ist er mit einfach ausgeschaltetem <Q>uick save & load-Flag zu speichern.

    * <S>ave Editor-Info-Line bestimmt, ob  die  im  Environment  angezeigten
    Informationen mit dem Text zusammen gespeichert werden sollen. Auch die
    Positionen  der  letzten  nderungen  (mit  Jump  zu  erreichen)  werden
    gespeichert. Ist diese Funktion eingeschaltet, dann hngt der Editor an den
    gespeicherten  Text  eine  Kommentarzeile  an,  in  der  die  Informationen
    kodiert  sind.  Der  Compiler  ignoriert  diese  Zeile;  in  Ausdrucken  oder
    anderen  Editoren  erscheint  sie  allerdings.  Zumindest  whrend  der
    Entwicklung eines Programms ist es hilfreich, die Info-Zeile zu speichern.

    * In der Tags-Zeile werden alle Marken aufgelistet, die z.Zt. definiert sind.

    * Unter dem Menpunkt "Tab setting" knnen  Sie  die  Tabulatorstellung
    sehen und verndern, wie im Abschnitt 'Tabulatoren' beschrieben wurde.


Direktes Compilieren

Statt den Text zum Compilieren mit <Q>, <C> abzuspeichern und den Compiler
dann zu starten, kann auch der Text im Speicher bleiben und der Compiler
direkt vom Editor aus gestartet werden. Dazu ist lediglich <F5> zu drcken.
Dann wird der Compiler gestartet, ohne da er die blichen Ausgaben auf dem
                                Der Gepard-Editor                             15
________________________________________________________


Bildschirm  macht.  Statt  dessen  wird  nur  in  der  Statuszeile  'Compiling...'
angezeigt. Tritt ein Fehler auf, wird der Cursor an die Fehlerposition gesetzt
und die Fehlermeldung in der Statuszeile angezeigt. Tritt kein Fehler auf, wird
der erzeugte Code des Moduls auf dem Pfad abgespeichert, der als erster in
der entsprechenden Pfadliste steht. Die aktuelle Einstellung des Ausgabepfades
in der Shell unter 'Compiler-Optionen' kann nicht bercksichtigt werden. Es ist
nicht erlaubt, auf diese Weise Module zu compilieren, die andere Dateien per
Include-Anweisung  ($I-Option)  einbeziehen,  in  solch  einem  Fall  wird  eine
Fehlermeldung  angezeigt.  <F5>  bietet  sich  dann  an,  wenn  nach  lngeren
nderungen im Quelltext mit mehreren Syntaxfehlern zu rechnen ist. In diesem
Fall verkrzt sich die Bearbeitungszeit der Korrekturen merklich.
                                Der Gepard-Editor                             16
________________________________________________________


bersicht: Editor-Kommandos

  Cursorbewegung
Pfeiltasten                bewegen Cursor um je ein Zeichen
Pfeiltasten mit <Shift>    bewegen Cursor wort- bzw. seitenweise
Pfeiltasten mit <Control>  bewegen Cursor an Zeilenbeginn/-ende bzw. scrollen
<Tab>, <Shift>-<Tab>      nach rechts, links zum nchsten Tabulator
<Return>                  zum Anfang der nchsten Zeile in Arbeitsrichtung
P(age, O(pposite          20 Zeilen vor, zurck
M(iddle, <Home>          Cursorzeile in die Bildschirmmitte
linke Maustaste          setzt  Cursor  auf  Mauszeiger.  Dauerbettigung  an
                           vertikalen Bildrndern scrollt den Text.

  Eingeben, Lschen, ndern
I(nsert                    Einfgemodus starten
D(elete                    Lschmodus starten
Z(ap                      Lsche von letzter Position bis Cursor
eX(change                nderungsmodus starten
C(opy                     Einfgen von Kopierpuffer

  Suchen, Ersetzen, Springen
F(ind                      Suchen einer Zeichenfolge
R(eplace                  Ersetzen einer Zeichenfolge durch andere
L(ook                     Suchen einer Zeichenfolge aus dem Text
W(ord                      Prfix: Folgen zwischen Sonderzeichen suchen
S(ame                      Prfix: gleiche Zeichenfolge nochmals suchen
V(erify                      Prfix: trotz Wiederholungsfaktor nachfragen
/                           Prfix: Maximaler Wiederholungsfaktor
T(ag                      setzt Marke an Cursorposition
J(ump                     springt auf Zeile, Marke, Textende, Fehlerposition

  Formatieren
A(djust                    Einstellen des linken Randes
G(lue                      Zeile mit Folgezeile zusammenfgen
B(reak                    Zeile an Cursorposition trennen

  Sonstiges
?                          Anzeigen der Speicherbelegung und der Textposition
Q(uit                      Editor verlassen, Speicher-Men
N(ew                      neue Textdatei laden
E(nvironment              Editor-Status anzeigen und ndern
H(ardcopy                 Text/Seite/Puffer drucken
K                         Tabulatoren in Statuszeile zeigen
F2                        Tabulator setzen / entfernen
F3, F4                    ffnet, schliet neuen Textpuffer ("Frame")
F5                        Compiler aufrufen
F6                        Bezeichner in Bibliothek suchen (hnlich "L(ook")
