Programm-Editor

Der Natural-Programm-Editor wird benutzt, um den Quellcode eines Natural-Objekts des Typs Programm, Subprogramm, Subroutine, Helproutine, Copycode, Text, Class oder Function zu erstellen und zu ändern.

Anmerkung:
Der Natural-Programm-Editor kann in Ihrer Umgebung abgeschaltet (deaktiviert) sein. Weitere Informationen siehe Abgeschaltete Natural-Editoren.

Die Dokumentation des Programm-Editors ist in folgende Teile gegliedert:

Verwandtes Thema:

Informationen zur Unterstützung von Unicode und Codepages bei den Natural-Editoren siehe Editors in the SPoD Environment in der Unicode and Code Page Support-Dokumentation.


Programm-Editor aufrufen

Beginn der AnweisungslisteUm den Programm-Editor aufzurufen:

  • Benutzen Sie das Systemkommando EDIT. Weitere Informationen siehe Systemkommandos-Dokumentation.

    Wenn der Programm-Editor aufgerufen wird, erscheint der Editor-Bildschirm (Beispiel):

    >                                       > +  Program     SAGDEMO  Lib SAGTEST  
    All    ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
      0010 ** EXAMPLE 'SAGDEMO': DISPLAY                                           
      0020 ************************************************************************
      0030 DEFINE DATA LOCAL                                                       
      0040 1 VIEWEMP VIEW OF EMPLOYEES                                             
      0050   2 PERSONNEL-ID                                                        
      0060   2 NAME                                                                
      0070   2 BIRTH                                                               
      0080   2 JOB-TITLE                                                           
      0090 END-DEFINE                                                              
      0100 *                                                                       
      0110 READ (3) VIEWEMP BY BIRTH                                               
      0120   DISPLAY PERSONNEL-ID NAME JOB-TITLE                                   
      0130 END-READ                                                                
      0140 END                                                                     
      ....                                                                         
      0280                                                                         
           ....+....1....+....2....+....3....+....4....+....5....+... S 14   L 1

    Der Editor-Bildschirm hat folgende Bestandteile (von oben nach unten): die Editor-Kommandozeile, die obere Informationszeile, den Editierbereich und die untere Informationszeile. Diese Bestandteile werden in den folgenden Abschnitten erklärt.

Anmerkung:
Falls Natural ISPF installiert ist und falls im Editor-Profil die Option ISPF Editor as Programm-Editor auf Y gesetzt ist, dann wird anstelle des Programm-Editors entweder das Natural ISPF Hauptmenü (wenn das EDIT-Kommando ohne Objektname eingegeben wurde) oder der Natural ISPF Editor-Bildschirm mit dem angegebenen Objekt aufgerufen.

Editor-Kommandozeile

Die Editor-Kommandozeile wird durch ein Größer-als-Zeichen (>) oben am linken Bildschirmrand angezeigt. In der Kommandozeile können Sie Folgendes eingeben:

Außerdem enthält die oberste Zeile folgende Bestandteile (von links nach rechts):

Richtungsanzeige:

+ oder -

Die Richtungsanzeige kann gesetzt werden, um die Ausführungsrichtung der Editor-Kommandos ADD und SCAN und der Zeilenkommandos .C, .I und .M zu steuern. Das Pluszeichen (+) steht für nach und das Minuszeichen (-) für vor. Die genaue Interpretation können Sie der Beschreibung des betreffenden Kommandos entnehmen. Siehe auch die Editor-Profil-Option Direction Indicator im Abschnitt Editor-Profil.
Objekttyp Der Typ des Objekts, das sich zurzeit im Quellcode-Arbeitsbereich befindet. Wenn beim Aufrufen des Programm-Editors kein Objekttyp oder Objektname angegeben wird, dann wird standardmäßig Program als Objekttyp angezeigt.

Um den Objekttyp zu ändern, können Sie das Editor-Kommando SET TYPE benutzen.

Änderungsanzeige:

*

Ein Stern (*) zeigt an, ob der Quellcode, der sich zurzeit im Quellcode-Arbeitsbereich befindet, noch nicht gespeicherte Änderungen enthält. Der Stern (*) erscheint auch bei neuem Quellcode, der noch nicht als Source-Objekt gespeichert worden ist.

Der Stern (*) ist nur dann sichtbar, wenn die Editor-Profil-Option Source Status Message auf Y gesetzt ist (siehe Editor-Profil).

Der Stern (*) verschwindet, wenn Sie am Source ein erfolgreiches SAVE- oder STOW-Kommando ausführen.

Siehe auch Exit-Funktion.

Objektname Der Name des Objekts, das sich zurzeit im Quellcode-Arbeitsbereich befindet. Wenn der Quellcode-Arbeitsbereich leer ist oder wenn der Quellcode noch nicht als Source-Objekt mit dem Kommando SAVE, CATALOG oder STOW gespeichert worden ist, wird kein Name angezeigt.
Lib Die Library, bei der Sie zurzeit angemeldet sind.

Obere Informationszeile

Die obere Informationszeile des Editor-Bildschirms enthält ein Lineal und folgende Informationen:

  • Eine Meldung, die eine Objekt-Änderung anzeigt. Diese Information wird nur angezeigt, wenn die Editor-Profil-Option Source Status Message auf Y gesetzt ist (siehe Editor-Profil).

  • Der zurzeit wirksame Programmiermodus (Structured oder Reporting). Wenn ein Natural-Objekt in den Quellcode-Arbeitsbereich eingelesen wird, wird der Programmiermodus auf den Modus gesetzt, der eingestellt war, als das Objekt mit dem Kommando SAVE oder STOW gespeichert wurde. Diese Information wird nur angezeigt, wenn die Editor-Profil-Option Source Size Information auf Y gesetzt ist (siehe Editor-Profil).

    Informationen zu den Unterschieden zwischen Structured- und Reporting-Modus siehe Zweck der Programmiermodi im Leitfaden zur Programmierung.

Editierbereich

Der Editierbereich des Editor-Bildschirms enthält nummerierte Zeilen, in denen Sie Quellcode eingeben oder ändern können.

Der Editierbereich ist entweder leer oder er enthält den Quellcode, der zuletzt mit dem Kommando EDIT oder READ in den Quellcode-Arbeitsbereich eingelesen wurde. Siehe Programm-Beispiel im Abschnitt Programm-Editor aufrufen.

Wenn Sie der Quellcode eines existierenden Objekts einlesen, wird der gesamte Quellcode in den Quellcode-Arbeitsbereich geladen und steht dort zum Bearbeiten zur Verfügung. Je nach Größe des Quellcodes kann es sein, dass nicht alle Zeilen, die zum Quellcode gehören, im Editierbereich angezeigt werden. In diesem Fall müssen Sie im Quellcode weiter nach unten blättern (siehe Editor-Kommandos zum Positionieren), um zu der Zeile zu gelangen, die Sie ansehen oder ändern möchten.

Wenn Sie den Split-Screen-Modus benutzen, zeigt der Editierbereich weniger Quellcode-Zeilen an. Siehe auch Split-Screen-Modus.

Sie haben mehrere Möglichkeiten, um Quellcode zu erstellen oder zu bearbeiten:

  • Sie können den Code direkt in der betreffenden Quellcode-Zeile eingeben oder ändern.

  • Sie können eines oder mehrere Editor-Kommandos (siehe entsprechenden Abschnitt) benutzen.

  • Sie können eines oder mehrere Zeilenkommandos benutzen (siehe entsprechenden Abschnitt) benutzen.

Beachten Sie bitte folgende Hinweise, wenn Sie mehrere Funktionen ausführen:

  • Sie können immer nur ein Einfüge-Zeilenkommando (.I) auf einmal ausführen.

  • In der Kommandozeile des Editors können Sie mehr als ein Editor-Kommando eingeben, aber nur das letzte in der Editor-Kommandozeile eingegebene Kommando darf ein Systemkommando sein.

    Beispiel:

    SC 'MOVE',-2,RENUMBER

    Anmerkung:
    Natural behandelt das Editor-Kommando N wie ein Systemkommando. N entspricht dem Systemkommando RENUMBER.

  • Wenn Sie den Quellcode durch Eingabe einer Änderung oder durch Benutzung eines Editor-Kommandos geändert haben, können Sie erst dann ein Systemkommando eingeben, wenn Sie Enter gedrückt haben.

Dynamische Umsetzung von Kleinbuchstaben in Großbuchstaben

Sie können die dynamische Umsetzung in Großbuchstaben aktivieren oder deaktivieren, indem Sie im Editor-Profil die entsprechenden Optionen Editing in Lower Case und Dynamic Conversion of Lower Case auf Y setzen (siehe Editor-Profil). Jeglicher Quellcode, den Sie im Editierbereich eingeben, wird dann in Großbuchstaben umgesetzt.

Ausnahmen:

  • Der Inhalt des Natural-Objekttyps Text bleibt so, wie eingegeben.

  • Eine Textzeichenkette, die nicht

    • eine hexadezimale Konstante oder

    • eine hexadezimale Unicode-Konstante ist

    und die durch Apostrophe und Ausrufungszeichen eingeschlossen ist, bleibt so, wie Sie sie eingeben.

  • DBCS-Zeichen (DBCS = Double-Byte Character Set), die durch Shift-out- und Shift-in-Zeichen eingeschlossen sind, bleiben so, wie Sie sie eingeben.

  • Ein Kommentar, der durch die Zeichenkette Leerzeichen-Schrägstrich-Stern (/*) angezeigt wird, bleibt so, wie Sie sie eingeben.

    Vorsicht:
    Wenn die Zeichenkette Leerzeichen-Schrägstrich-Stern (/*) einen ausführbaren Teil eines Statements bezeichnet, muss sie ohne Leerzeichen (/*) vor der Zeichenkette angegeben werden. Andernfalls wird die Zeichenkette als Kommentar betrachtet.

Untere Informationszeile

Die untere Informationszeile des Editor-Bildschirms enthält ein Lineal und außerdem folgende Informationen:

  • Current Source Size - Aktuelle Quellcode-Größe

    Die Größe (Anzahl der Zeichen) des aktuellen Quellecodes. Da Quellcode-Zeilen im Quellcode-Arbeitsbereich mit variabler Länge gespeichert werden, werden nachgezogene Leerzeichen innerhalb einer Quellcode-Zeile nicht mit gezählt; führende und eingebettete Leerzeichen werden mit gezählt. Diese Information wird nur angezeigt, wenn die Editor-Profil-Option Source Size Information auf Y gesetzt ist (siehe Editor-Profil).

  • Char. Free - Zeichen frei

    Die Anzahl der Zeichen, die im Quellcode-Arbeitsbereich noch verfügbar sind. Diese Information wird nur angezeigt, wenn die Editor-Profil-Option Source Size Information auf Y gesetzt ist (siehe Editor-Profil).

  • S

    Die Größe (Anzahl der Zeilen) des Quellcodes, der zurzeit bearbeitet wird.

  • L

    Die Zeilennummer der Quellcode-Zeile, die zurzeit als oberste Zeile angezeigt wird.

Editor-Kommandos

Editor-Kommandos werden in der Kommandozeile des Programm-Editors eingegeben. Die Kommando-Parameter müssen voneinander abgetrennt werden:

  • entweder mit dem Eingabebegrenzungszeichen, das mit dem Natural-Session-Parameter ID angegeben ist. Standardmäßig ist das ein Komma (,).

  • oder durch Leerzeichen.

Wenn mehrere Kommandos eingegeben werden, müssen diese ebenfalls durch Eingabebegrenzungszeichen oder Leerzeichen voneinander abgetrennt werden.

Die verfügbaren Editor-Kommandos werden in der nachfolgenden Tabelle und im Abschnitt Editor-Kommandos zum Positionieren beschrieben. Die in den Editor-Kommandos verwendeten Syntax-Symbole werden im Abschnitt Systemkommando-Syntax in der Systemkommandos-Dokumentation erklärt. Der unterstrichene Teil eines Kommandos kann als gültige Abkürzung verwendet werden.

Editor-Kommando Funktion
ADD[(n)] Hängt n Leerzeilen an. Wenn die Richtungsanzeige auf + (Pluszeichen) gesetzt ist, werden die Leerzeilen nach der letzten Zeile des in Bearbeitung befindlichen Objekts hinzugefügt. Wenn die Richtungsanzeige auf - (Minuszeichen) gesetzt ist, werden die Leerzeilen vor der ersten Zeile des Objekts hinzugefügt.

Der Wert für n darf im Bereich von 1 bis 9 liegen. Wenn Sie für n keinen oder einen nicht korrekten Wert angeben, werden standardmäßig 9 Zeilen (4 Zeilen im Split-Screen-Modus) hinzugefügt.

Wenn Sie das nächste Mal Enter drücken, werden alle Zeilen, die dann noch leer sind, wieder entfernt.

CANCEL

oder

.

(Punkt)

Die Editor-Sitzung wird abgebrochen. Alle seit dem letzten Speichern (SAVE) vorgenommenen Änderungen werden nicht gespeichert.
CATALOG [object-name] Führt das Systemkommando CATALOG aus. Der aktuelle Quellcode wird geprüft und katalogisiert.

Wenn Sie neu angelegten Quellcode katalogisieren oder wenn Sie den aktuellen Quellcode kopieren wollen, müssen Sie zusammen mit dem Kommando einen Objektnamen angeben.

Siehe auch Quellcode speichern und katalogisieren.
CHANGE ['scan-value'replace-value'] Durchsucht den Quellcode nach der als Suchwert (scan-value) eingegebenen Zeichenkette und ersetzt jeden gefundenen Suchwert mit der als Ersetzungswert (replace-value) eingegebenen Zeichenkette.

Jede Zeile, in der eine Zeichenkette ersetzt wurde, wird am linken Zeilenrand mit einem R markiert.

Als Eingabebegrenzungszeichen kann jedes Sonderzeichen benutzt werden, dass in einem Natural-Variablennamen nicht gültig ist.

Wenn Sie CHANGE ohne Parameter eingeben, wird das SCAN/REPLACE-Fenster angezeigt. Zusätzlich zum Suchwert (scan-value) und zum Ersetzungswert (replace-value) können Sie in diesem Fenster Folgendes angeben:

  • die Nullwert-Option (siehe SET NUL),

  • den absoluten Suchmodus (siehe SET ABS),

  • den Bereichsmodus (siehe SET RANGE).

CHECK Führt das Systemkommando CHECK aus, das die Syntax des aktuellen Quellcode prüft. Falls ein Fehler gefunden wird, wird die fehlerhafte Zeile mit einem E markiert und eine entsprechende Meldung wird in der Meldungszeile angezeigt. Wenn kein Fehler gefunden wird, wird eine Meldung angezeigt, die die erfolgreiche Beendigung der Prüfung anzeigt.
CLEAR Führt das Systemkommando CLEAR aus, das den Quellcode-Arbeitsbereich (einschließlich des Objektnamens und der Markierungen X und Y) löscht.
DX

oder

DY

Löscht die mit X oder Y markierte Zeile.

Siehe auch Zeilenkommandos .X und .Y.

DX-Y Löscht den mit den Markierungen X und Y eingegrenzten Zeilenblock.

Siehe auch Zeilenkommandos .X und .Y.

EX

oder

EY

Löscht alle Zeilen ab dem Anfang des Editierbereichs bis zur mit X markierten Zeile (die jedoch nicht gelöscht wird) oder ab der Zeile, die auf die mit Y markierte Zeile folgt, bis zum Ende des Editierbereichs.

Siehe auch Zeilenkommandos .X und .Y.

EX-Y Löscht alle Zeilen im Editierbereich mit Ausnahme des Blocks, der mit X und Y eingegrenzt ist.

Siehe auch Zeilenkommandos .X und .Y.

EXIT Die Editor-Sitzung wird beendet. Alle am Quellcode vorgenommenen Änderungen werden in Abhängigkeit von der Einstellung im Editor-Profil gespeichert. Siehe Exit-Funktion.
LET Macht alle Änderungen, die Sie im aktuellen Bildschirm vorgenommen haben, nachdem Sie das letzte Mal Enter gedrückt haben, rückgängig. Zusätzlich werden alle Zeilenkommandos, die bereits eingegeben, aber noch nicht ausgeführt wurden, ignoriert.
N [(nnnn)] Dieses Kommando entspricht dem Systemkommando RENUMBER. Es bewirkt, dass die Quellcode-Zeilen des Objekts, das sich gerade im Quellcode-Arbeitsbereich befindet, neu durchnummeriert werden.

Wenn Sie nur N eingeben, werden die Zeilen in Zehnerschritten neu nummeriert. Wenn Sie N (nnnn) eingeben, werden die Zeilen in Schritten von nnnn neu nummeriert.

Falls der für n angegebene Wert zu groß ist, werden die Zeilen in Fünfer-Schritten neu nummeriert.

Anmerkung:
Siehe auch Quellcode-Zeilennummern umnummerieren im Leitfaden zur Programmierung.

PROFILE [name] Ruft den Editor-Profil-Bildschirm auf. Dort können Sie sich Ihre aktuellen Editor-Profil-Einstellungen ansehen und diese ändern. Weitere Informationen siehe Abschnitt Editor-Profil.
REN ON|OFF
ON  Jedes Mal, wenn das Kommando CHECK, RUN, SAVE, CATALOG oder STOW am Quellcode ausgeführt wird, erfolgt die Neunummerierung der Quellcode-Zeilen.
OFF Zeigt an, dass die automatische Neunummerierung nicht wirksam ist.
 
Der Standardwert ist ON.

Das Kommando REN entspricht der Editor-Profil-Option Auto Renumber. Siehe Editor-Profil.

Anmerkung:
Siehe auch Quellcode-Zeilennummern umnummerieren im Leitfaden zur Programmierung.

RESET Löscht die aktuellen Zeilenmarkierungen X und Y sowie alle zuvor mit dem Zeilenkommando .N gesetzten Markierungen. Siehe auch Zeilenkommandos .X und .Y.
SAVE [object-name] Führt das Systemkommando SAVE aus, das den aktuellen Quellcode speichert.

Wenn Sie neu angelegten Quellcode speichern oder wenn Sie den aktuellen Quellcode kopieren wollen, müssen Sie bei dem Kommando einen Objektnamen angeben.

Siehe auch Quellcode speichern und katalogisieren.
SCAN ['scan-value'] Durchsucht den Quellcode nach einer Zeichenkette (scan-value).

Jede Zeile, in der der Suchwert (scan-value) gefunden wird, wird am linken Zeilenrand mit einem S gekennzeichnet.

Wird der angegebene Suchwert (scan-value) ohne Begrenzungszeichen eingegeben, zum Beispiel: SCAN ABC D, dann wird die gesamte Zeichenkette, die auf das Schlüsselwort SCAN folgt, als Suchwert benutzt.

Anmerkung:
Mit dem Kommando SCAN erfolgt eine exakte Suche nach dem angegebenen Suchwert (scan-value). Dies sollte bei der Suche nach DBCS-Zeichen (DBCS = Double-Byte Character Set) berücksichtigt werden.

Wenn die Richtungsanzeige auf + (Pluszeichen) gesetzt ist, erfolgt die Suche ab der ersten, auf dem Bildschirm angezeigten Zeile bis zur letzten Zeile des Quellcode-Arbeitsbereiches. Wenn die Richtungsanzeige auf - (Minuszeichen) gesetzt ist, erfolgt die Suche ab der letzten, auf dem Bildschirm angezeigten Zeile bis zur ersten Zeile des Quellcode-Arbeitsbereiches.

Wenn Sie das SCAN-Kommando ohne Parameter eingeben, wird das SCAN/REPLACE-Fenster angezeigt. Sie können dann zusätzlich zum Suchwert (scan-value) Folgendes eingeben:

  • einen Ersetzungswert (replace-value, siehe auch CHANGE),

  • die Nullwert-Option (siehe SET NUL),

  • den absoluten Suchmodus (siehe SET ABS),

  • den Bereichsmodus (siehe SET RANGE).

SCAN ist ein cursorsensitives Kommando, das zusätzliche Optionen bietet, siehe Abschnitt Cursorsensitive Kommandos.

SCAN=[+|-] Sucht nach der nächsten Ausprägung des mit dem SCAN-Kommando angegebenen Suchwerts (scan-value).

Die Suchrichtung für den gegebenen Suchvorgang können Sie explizit angeben, indem Sie SCAN=+ oder SCAN=- eingeben. Die Einstellung in der Richtungsanzeige wird dann ignoriert.

Anmerkung:
Das beim SCAN-Kommando verwendete Gleichheitszeichen (=) ist das Standard-Zuweisungszeichen für Eingabe-Parameter. Falls ein anderes Zeichen als Zuweisungszeichen für Eingabe-Parameter angegeben worden ist (siehe Session-Parameter IA in der Parameter-Referenz-Dokumentation), muss dieses Zeichen stattdessen benutzt werden.

SET ABS [ON|OFF]
ON   Die Kommandos SCAN und CHANGE arbeiten im absoluten Modus. Das bedeutet, dass es nicht nötig ist, den Suchwert (scan-value) und den Ersetzungswert (replace-value) durch Leerzeichen oder Sonderzeichen abzugrenzen.
OFF Die Kommandos SCAN und CHANGE arbeiten nicht im absoluten Modus. Das bedeutet, dass Sie den Suchwert (scan-value) und den Ersetzungswert (replace-value) durch Leerzeichen oder Sonderzeichen abgrenzen müssen.
 
Der Standardwert ist OFF.

Das Kommando SET ABS entspricht der Editor-Profil-Option Absolute Mode for SCAN/CHANGE. Siehe Abschnitt Editor-Profil.

SET ESCAPE character Das Fluchtzeichen, das vor jedem Zeilenkommando vorangestellt werden muss. Das Standard-Fluchtzeichen ist ein Punkt (.).
SET NUL [ON|OFF]
ON   Alle Ausprägungen eines mit dem Kommando SCAN gesuchten Wertes werden gelöscht. Nach dem Löschen des mit SCAN gesuchten Wertes wird das Kommando SET NUL automatisch auf OFF gesetzt.
 
Der Standardwert ist OFF.
SET RANGE [ON|OFF]
ON   Die Kommandos SCAN und CHANGE arbeiten im Bereichsmodus. Das bedeutet, dass der zu suchende/zu ersetzende Wert sich innerhalb des Zeilenbereichs befinden muss, der mit den Zeilenmarkierungen X und Y markiert ist.
OFF Die Kommandos SCAN und CHANGE arbeiten nicht im Bereichsmodus. Das bedeutet, dass keine Bereichsgrenzen wirksam sein sollen.
 
Der Standardwert ist OFF.

Das Kommando SET RANGE entspricht der Editor-Profil-Option Range Mode for SCAN/CHANGE. Siehe Editor-Profil.

SET SEQ [ON|OFF]
OFF Bei Eingabe eines numerischen Wertes werden die ersten vier Stellen im Editierbereich als die Zeilennummern betrachtet und werden in die Zeilennummer-Position verschoben, wenn Sie Enter drücken.

Diese Funktion ist nützlich, wenn zum Beispiel eine Statement-Zeile von einer Quellcode-Zeilennummer in einer anderen Statement-Zeile referenziert werden soll. Wenn Sie den Quellcode neu nummerieren, wird die referenzierende Zeilennummer ebenfalls neu nummeriert.

ON    Die ersten vier Stellen einer numerischen Werteingabe bleiben so, wie sie eingegeben wurden.
 
Außer beim Objekttyp Text ist der Standardwert OFF.
SET SIZE [ON|OFF]
ON   Die Größe des Quellcodes wird in der unteren Informationszeile des Editor-Bildschirms und der Programmiermodus wird in der Lineal-Zeile angezeigt.
OFF  Diese Informationen werden nicht angezeigt.
 
Der Standardwert ist OFF.
 
Das Kommando SET SIZE entspricht der Editor-Profil-Option Source Size Information. Siehe Editor-Profil.
SET STAY [ON|OFF]
ON Wenn Enter gedrückt wird, wird der aktuelle Bildschirm weiterhin angezeigt. Eine Vorwärts-/Rückwärtspositionierung kann nur mit den Positionierungskommandos bewirkt werden.
OFF  Wenn Enter gedrückt wird, wird der nächste Bildschirm angezeigt.
   
Der Standardwert ist OFF.

Das Kommando SET STAY entspricht der Editor-Profil-Option Stay on Current Screen. Siehe Editor-Profil.

SET TYPE object-type
Mit diesem Kommando können Sie den (in der Editor-Kommandozeile angezeigten) Objekttyp für die zurzeit im Quellcode-Arbeitsbereich befindliche Source ändern.
 
object-type steht für einen Objekttyp, der mit dem Kommando angegeben werden muss. Folgende Werte sind möglich:
 
P oder PROGRAM
S oder SUBROUTINE
N oder SUBPROGRAM
H oder HELPROUTINE
T oder TEXT
C oder COPYCODE
4 oder CL oder CLASS
7 oder FUNCTION
SHIFT [-nn|+nn] Dieses Kommando verschiebt jede Zeile, die mit den Markierungen X und Y begrenzt ist, nach links oder nach rechts. Der Parameter nn gibt die Anzahl der Zeichen an, um die die Zeile verschoben werden soll. Kommentarzeilen werden nicht verschoben.
SHIFT -- Dieses Kommando verschiebt jede Zeile, die mit den Markierungen X und Y begrenzt ist, ganz nach links. Kommentarzeilen werden nicht verschoben.
SHIFT ++ Dieses Kommando verschiebt jede Zeile, die mit den Markierungen X und Y begrenzt ist, ganz nach rechts (maximal um 99 Stellen). Kommentarzeilen werden nicht verschoben.
SPLIT [parameter] Dieses Kommando bewirkt, dass der Editor-Bildschirm zwecks gleichzeitiger Anzeige von zwei verschiedenen Objekten in zwei Hälften unterteilt wird. Siehe Split-Screen-Modus.

SPLIT ist ein cursorsensitives Kommando, bei den zusätzliche Optionen zur Verfügung stehen. Siehe Cursorsensitive Kommandos.

Wenn SPLIT ohne Parameter eingeben wird, wird der Quellcode des zuvor im Split-Screen-Bereich angezeigten Objekts erneut angezeigt. Dies gilt für die Dauer der aktuellen Editor-Sitzung.

STOW [object-name] Führt das Systemkommando STOW aus, mit dem der aktuelle Quellcode gespeichert und katalogisiert wird.

Wenn Sie neuen Quellcode speichern und katalogisieren wollen oder wenn Sie den aktuellen Quellcode kopieren wollen, müssen Sie einen Objektnamen angeben. Sonst erscheint eine entsprechende Meldung.

Siehe auch Quellcode speichern und katalogisieren.
STRUCT [DISPLAY] Dieses Kommando dient dazu, die Quellcode-Zeilen eines Programms entsprechend der Programmstruktur einzurücken. Standardmäßig wird schrittweise um zwei Stellen eingerückt.

Wird DISPLAY angegeben, wird der Quellcode in komprimierter Form angezeigt. Siehe Systemkommando STRUCT in der Systemkommandos-Dokumentation.

* Dieses Kommando zeigt das zuletzt eingegebene Editor-Kommando an.
*= Dieses Kommando führt das zuletzt in der Kommandozeile eingegebene Kommando erneut aus.

Editor-Kommandos zum Positionieren

Editor-Kommandos zum Positionieren werden in der Kommandozeile des Programm-Editors eingegeben. Folgende Kommandos stehen zum Positionieren zur Verfügung:

Kommando Funktion
Enter

oder

+P 

oder

+

Eine Seite vorwärts positionieren.
-P

oder

-

Eine Seite rückwärts positionieren.
+H Eine halbe Seite vorwärts positionieren.
-H Eine halbe Seite rückwärts positionieren.
T 

oder

An den Anfang des Quellcodes positionieren.
B 

oder

++

An das Ende des Quellcodes positionieren.
+nnnn Um nnnn (maximal 4 Ziffern) Zeilen vorwärts positionieren.
-nnnn Um nnnn (maximal 4 Ziffern) Zeilen rückwärts positionieren.
nnnn Auf Zeile Nummer nnnn positionieren.
X Auf die mit X markierte Zeile positionieren.
Y Auf die mit Y markierte Zeile positionieren.
POINT Auf die Zeile positionieren, in der das Zeilenkommando .N eingegeben wurde.

Siehe auch Zeilenkommando .P.

Zeilenkommandos

Zeilenkommandos werden an der ersten Stelle einer Quellcode-Zeile eingegeben. Die beim Programm-Editor zur Verfügung stehenden Zeilenkommandos sind nachfolgend aufgeführt. Die Notation (nn) oder (nnnn) zeigt einen Wiederholungsfaktor an. Der Standard-Wiederholungswert ist 1 (mit Ausnahme beim Kommando .I, siehe unten). Eine Erklärung der verwendeten Syntaxsymbole finden Sie im Abschnitt Systemkommando-Syntax in der Systemkommandos-Dokumentation.

Anmerkung:
Es wird empfohlen, am Ende eines jeden Zeilenkommandos ein Leerzeichen einzugeben. Dadurch wird verhindert, dass der Editor versucht, die anschließenden Informationen in der Zeile als Bestandteil des Zeilenkommandos zu interpretieren.

Zeilenkommandos Funktion
.C[(nnnn)] Kopiert die Zeile, in der das Kommando eingegeben wurde.
.CX[(nnnn)]

oder

.CY[(nnnn)]
Kopiert die Zeile, die mit X oder mit Y markiert ist. Siehe auch Zeilenkommandos .X und .Y sowie Anmerkungen zu den Zeilenkommandos.
.CX-Y[(nnnn)] Kopiert den Zeilenblock, der mit den Markierungen X und Y eingegrenzt ist. (Siehe auch Anmerkungen zu den Zeilenkommandos.)
.D[(nnnn)] Löscht eine oder mehrere Zeilen ab der Zeile, in der Sie das Kommando eingeben, bis zum Ende des Quellcodes (unabhängig von der Einstellung in der Richtungsanzeige). Der Standardwert ist 1 Zeile.
.I[(nn)] Fügt nn Leerzeilen ein. Dabei kann nn im Bereich von 1 bis zur Gesamtzahl minus zwei der im Editierbereich angezeigten Zeilen liegen. Wenn zum Beispiel insgesamt 28 Zeilen im Editierbereich angezeigt werden, können Sie maximal 26 Zeilen einfügen.

Wird nn nicht (oder nicht korrekt) angegeben, werden standardmäßig 9 Zeilen (4 Zeilen im Split-Screen-Modus) eingefügt. Zeilen, die leer gelassen werden, werden anschließend aus dem Quellcode entfernt. Dies ist abhängig von der Einstellung der Editor-Profil-Optionen Empty Line Suppression und Empty Line Suppression for Text. Siehe Editor-Profil.

Siehe auch Anmerkungen zu den Zeilenkommandos.

.I(obj,ssss,nnnn) Fügt in den Quellcode ein Objekt ein, das in der aktuellen Library oder in der Steplib (die Standard-Steplib ist SYSTEM) enthalten ist.

Je nach Einstellung in der Richtungsanzeige wird das Objekt vor oder nach der Zeile eingefügt, in der Sie das Kommando eingeben.

Wenn Sie nur einen Teil des Objekts einfügen möchten, müssen Sie für ssss die erste einzufügende Zeile angeben (zum Beispiel bedeutet 20, dass die Einfügung mit der 20. Zeile beginnen wird), und für nnnn müssen Sie die Anzahl der einzufügenden Zeilen angeben.

Wenn Sie mehrere Kommandos eingeben, wird dieses Kommando stets erst dann ausgeführt, nachdem alle anderen Zeilen- und/oder Editor-Kommandos ausgeführt worden sind.

Handelt es sich bei dem Objekt um eine Map (Maske), wird in die aktuelle Zeile automatisch ein INPUT USING MAP-Statement (siehe INPUT-Syntax 2 — Verwendung einer vordefinierten Eingabemaske in der Statements-Dokumentation) mit allen definierten Variablen eingefügt.

Handelt es sich bei dem Objekt um eine Data Area, wird die gesamte Data Area mit Ausnahme der Kommentarzeilen eingefügt. Es können jedoch nur Local und Parameter Data Areas, die mit dem STOW-Kommando gespeichert und katalogisiert wurden, in den Quellcode-Arbeitsbereich eingefügt werden. Global Data Areas können nicht eingefügt werden.

Handelt es sich bei dem Objekt um einen Adapter, wird in die aktuelle Zeile automatisch ein PROCESS PAGE USING-Statement (siehe Syntax 2 - PROCESS PAGE USING in der Statements-Dokumentation) mit allen definierten Variablen eingefügt.

.J Führt die aktuelle Zeile mit der nächsten Zeile zusammen.

Ist die resultierende Zeile länger als die Editor-Bildschirmzeile, wird die Zeile mit einem L markiert und muss mit dem Zeilenkommando .S in zwei Zeilen geteilt werden (siehe unten), bevor sie geändert werden kann.

.L Macht alle seit dem letzten Drücken der Enter-Taste an der Zeile vorgenommenen Änderungen rückgängig.
.MX

oder

.MY

Verschiebt die mit X oder mit Y markierte Zeile. Siehe auch Zeilenkommandos .X und .Y sowie Anmerkungen zu den Zeilenkommandos.
.MX-Y Verschiebt den Zeilenblock, der mit den Markierungen X und Y eingegrenzt ist (siehe auch Anmerkungen zu den Zeilenkommandos).
.N Markiert (unsichtbar) eine Zeile, die mit den Editor-Kommando POINT an den Anfang des Quellcode-Arbeitsbereichs positioniert werden soll.

Die Markierung wird automatisch gelöscht, wenn ein Fehler bei einem Zeilen- oder Editor-Kommando auftritt oder wenn das RESET-Kommando ausgeführt wird.

.P Positioniert die mit diesem Kommando markierte Zeile an den Anfang des Bildschirms.
.S Spaltet die Zeile an der mit dem Cursor markierten Position.
.X Markiert eine Zeile mit einem X (siehe auch Anmerkungen zu den Zeilenkommandos).
.Y Markiert eine Zeile mit einem Y (siehe auch Anmerkungen zu den Zeilenkommandos).

Anmerkungen zu den Zeilenkommandos

  • Wenn sowohl das Kommando .X als auch das Kommando .Y bei einer Zeile angewendet werden, wird sie behandelt, als ob sie mit einem X und mit einem Y markiert ist; die tatsächlich angezeigte Zeilenmarkierung, die diesen Status wiedergeben soll, ist ein Z.

  • Ist die Richtungsanzeige auf + (Pluszeichen) gesetzt, werden die kopierten, eingefügten oder verschobenen Zeilen nach der Zeile platziert, in der das entsprechende Kommando eingegeben wurde.

    Ist die Richtungsanzeige auf - (Minuszeichen) gesetzt, werden die kopierten, eingefügten oder verschobenen Zeilen vor der Zeile platziert, in der das entsprechende Kommando eingegeben wurde.

Spezielle PF-Tastenfunktionen

Die folgenden speziellen Funktionen können auch mittels PF-Tasten bedient werden:

Funktion Erläuterung
*CURSOR Eine Funktion zum Aufspalten einer Zeile kann auch mit dem Kommando .I, .CX, .CX-Y, .MX oder .MX-Y kombiniert werden. Dazu muss der Wert *CURSOR einer PF-Taste zugewiesen werden (siehe PF and PA Keys im Editor-Profil). Wird dann nach Eingabe eines Zeilenkommandos diese PF-Taste anstelle der Enter-Taste gedrückt, wird die Zeile, in der das Kommando eingegeben wurde, zunächst an der Cursorposition aufgespalten und danach wird das Zeilenkommando ausgeführt. Siehe auch Beispiel für *CURSOR auf PF-Taste.
*X

oder

*Y
Wird einer PF-Taste der Wert *X oder *Y im Editor-Profil zugewiesen (siehe PF- und PA-Tasten in Editor-Profil), wird, jedes Mal wenn diese PF-Taste benutzt wird, die Cursorposition mit X bzw. Y markiert. Diese Positionsmarkierungen werden dann verwendet um zu bestimmen, welcher Teil einer Zeile bei der Kommandoausführung eingefügt werden soll. Siehe auch Beispiel für *X und *Y auf PF-Tasten.

Beispiel für *CURSOR auf PF-Taste

Der folgende Abschnitt enthält eine Anleitung, wie Sie eine PF-Taste benutzen können, der der Wert *CURSOR zugewiesen ist.

  1. Geben Sie im Abschnitt PF and PA Keys des Editor-Profil-Bildschirms (siehe Editor-Profil), neben dem Eintrag PF6 den Wert *CURSOR ein.

  2. Öffnen Sie den Programm-Editor, geben Sie den folgenden Text ein, und drücken Sie Enter:

    >                                       > +  Program              Lib SAGTEST  
    All    ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
      0010 MOVE A TO B                                                             
      0020 WRITE A B C                                                             
      0030 MOVE C TO B MOVE A TO C                                                 
      0040                                                                         
      0050                                                                         
      0060                                                                         
      0070                                                                         
      0080                                                                         
      0090                                                                         
      0100                                                                         
      ....                                                                         
      0280                                                                         
           ....+....1....+....2....+....3....+....4....+....5....+... S 3    L 1
  3. Geben Sie in Zeile 0020 das Zeilenkommando .X ein. Drücken Sie Enter.

    Die Zeile wird markiert. Dies wird durch das vorangestellte X angezeigt.

  4. Geben Sie in Zeile 0030 das Zeilenkommando .CX ein. Setzen Sie den Cursor auf das M des zweiten MOVE-Statements. Drücken Sie PF6.

    Der Bildschirm sieht nun ähnlich wie in der folgenden Abbildung aus:

    >                                       > +  Program              Lib SAGTEST  
    All    ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
      0010 MOVE A TO B                                                             
    X 0020 WRITE A B C                                                             
      0030 MOVE C TO B                                                             
      0020 WRITE A B C                                                             
      0030 MOVE A TO C                                                             
      0040                                                                         
      0050                                                                         
      0060                                                                         
      0070                                                                         
      0080                                                                         
      0090                                                                         
      0100                                                                         
      ....                                                                         
      0260                                                                         
           ....+....1....+....2....+....3....+....4....+....5....+... S 5    L 1

    Die Zeile 0030 wird vor der Cursorposition aufgespalten, Zeile 0020 wird in die Zeile kopiert, in der Sie das Kommando .CX eingegeben haben, und der zweite Teil der aufgespaltenen Zeile wird in die letzte Zeile verschoben.

Beispiel für *X und *Y auf PF-Tasten

Der folgende Abschnitt enthält eine Anleitung, wie Sie PF-Tasten benutzen können, denen die Werte *X und *Y zugewiesen sind.

  1. Geben Sie im Abschnitt PF and PA Keys des Editor-Profil-Bildschirms (siehe Editor-Profil), neben dem Eintrag PF4 den Wert *X und neben PF5 den Wert *Y ein.

  2. Öffnen Sie den Programm-Editor, geben Sie den folgenden Text ein, und drücken Sie Enter:

    >                                       > +  Text                 Lib SAGTEST  
    All    ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
      0010 THIS PORTION                                                            
      0020 OF TEXT IS                                                              
      0030 FOR DEMONSTRATION OF                                                    
      0040 PF-KEY ASSIGNMENTS.                                                     
      0050                                                                         
      0060                                                                         
      0070                                                                         
      0080                                                                         
      0090                                                                         
      0100                                                                         
      ....                                                                         
      0280                                                                         
           ....+....1....+....2....+....3....+....4....+....5....+... S 0    L 1   
    
  3. Setzen Sie in Zeile 0010 den Cursor auf den Buchstaben P, und drücken Sie PF4.

    Die Position des P wird so, wie im folgenden Beispiel-Bildschirm dargestellt, markiert.

  4. Setzen Sie in Zeile 0030 den Cursor auf das Leerzeichen hinter DEMONSTRATION, und drücken Sie PF5.

    Der Bildschirm sieht nun ähnlich wie in der folgenden Abbildung aus:

    >                                       > +  Text                 Lib SAGTEST  
    All    ....+X...1....+..Y.2....+....3....+....4....+....5....+....6....+....7..
    X 0010 THIS PORTION                                                            
      0020 OF TEXT IS                                                              
    Y 0030 FOR DEMONSTRATION OF                                                    
      0040 PF-KEY ASSIGNMENTS.                                                     
      0050                                                                         
      0060                                                                         
      0070                                                                         
      0080                                                                         
      0090                                                                         
      0100                                                                         
      ....                                                                         
      0280                                                                         
           ....+X...1....+..Y.2....+....3....+....4....+....5....+... S 4    L 1

    Die Positionen der Zeichen (P und Leerzeichen) werden, wie durch das X bzw. das Y angezeigt, markiert. Dabei erscheinen das X und das Y in der oberen und der unteren Informationszeile und links neben den Quellcode-Zeilen, die die markierten Zeichen enthalten.

  5. Geben Sie in Zeile 0040 das Zeilenkommando .MX-Y ein, und drücken Sie Enter.

    Der Bildschirm sieht nun ähnlich wie in der folgenden Abbildung aus:

    >                                       > +  Text                 Lib SAGTEST  
    All    X...+....1....+.Y..2....+....3....+....4....+....5....+....6....+....7..
      0010 THIS                                                                    
      0030 OF                                                                      
      0040 PF-KEY ASSIGNMENTS.                                                     
    X 0010 PORTION                                                                 
      0020 OF TEXT IS                                                              
    Y 0030 FOR DEMONSTRATION                                                       
      0040                                                                         
      0050                                                                         
      0060                                                                         
      0070                                                                         
      0080                                                                         
      0090                                                                         
      0100                                                                         
      ....                                                                         
      0250                                                                         
           X...+....1....+.Y..2....+....3....+....4....+....5....+... S 6    L 1

    Der Textblock, der in Zeile 0010 mit P markiert ist und in Zeile 0030 bei N endet, wird in die darunter befindliche Zeile verschoben, in der Sie das Kommando eingegeben haben. Der verschobene Block und der in Zeile 0010 und 0030 verbliebene Text werden linksbündig ausgerichtet.

Cursorsensitive Kommandos

Cursorsensitive Kommandos werden ohne Parameter eingegeben. Stattdessen wird der Cursor an beliebiger Stelle (Ausnahme: Kommandozeile) auf dem Bildschirm platziert.

Beginn der AnweisungslisteUm ein cursorsensitives Kommando zu benutzen:

  1. Geben Sie ein cursorsensitives Kommando in der Editor-Kommandozeile ein.

  2. Positionieren Sie den Cursor auf einer beliebigen, im Editor-Bildschirm (Ausnahme: Kommandozeile) enthaltenen Zeichenkette.

  3. Drücken Sie Enter.

Alternativ können Sie eine PF-Taste benutzen:

  1. Positionieren Sie den Cursor auf einer beliebigen, im Editor-Bildschirm (Ausnahme: Kommandozeile) enthaltenen Zeichenkette.

  2. Drücken Sie die PF-Taste, die mit dem benötigten cursorsensitiven Kommando belegt ist (siehe PF and PA Keys im Editor-Profil).

Nachfolgend werden folgende Themen behandelt:

SCAN-Kommando

Das cursor-sensitive SCAN-Kommando durchsucht den aktuellen Quellcode nach der Zeichenkette, auf der der Cursor positioniert ist. (Falls der Cursor jedoch auf einem Leerzeichen positioniert ist, wird das SCAN/REPLACE-Fenster aufgerufen.)

Im Split-Screen-Modus kann der Cursor auch auf einer Zeichenkette im Split-Screen-Bereich positioniert werden.

Für die Benutzung des SPLIT SCAN-Kommandos gilt das gleiche wie beim SCAN-Kommando, jedoch wird die Suchoperation nur im Split-Screen-Bereich durchgeführt (siehe auch Abschnitt Split-Screen Kommandos).

Weitere Informationen zum SCAN-Kommando siehe entsprechende Beschreibung unter Editor-Kommandos.

SPLIT-Kommando

Anstatt objektspezifische SPLIT-Kommandos zu benutzen, um den Quellcode eines Objekts anzuzeigen (siehe Abschnitt Split-Screen Kommandos), können Sie das cursor-sensitive SPLIT-Kommando benutzen.

Wenn Sie das cursor-sensitive SPLIT-Kommando benutzen und den Cursor auf eine Zeichenkette positionieren, die einem Objektnamen oder einem erweiterten Namen (Langnamen) entspricht, wird der Quellcode des entsprechenden Objekts im Split-Screen-Bereich des Editors angezeigt. Das benötigte Objekt muss in der aktuellen Bibliothek enthalten sein.

Diese Funktion ist besonders nützlich, wenn Sie zum Beispiel nicht den Objektnamen kennen, der dem erweiterten Namen (Langnamen) eines Objekts (zum Beispiel eine Subroutine) entspricht, das im aktuellen Quellcode referenziert wird.

EDIT- und LIST-Systemkommandos

Wenn Sie die cursor-sensitiven Kommandos EDIT oder LIST benutzen und den Cursor auf eine Zeichenkette positionieren, die einem Objektnamen oder einem erweiterten Namen (Langnamen) entspricht, wird der Quellcode des entsprechenden Objekts angezeigt:

  • Beim EDIT-Kommando wird der Quellcode in den Editierbereich geladen. Falls erforderlich, wird sogar ein anderer Editor aufgerufen.

  • Beim LIST-Kommando wird der Quellcode aufgelistet, und zwar auch dann wenn eine View (DDM) referenziert worden ist.

Die zu bearbeitenden bzw. aufzulistenden Objekte müssen in der aktuellen Library enthalten sein.

Weitere Informationen zu den Kommandos EDIT und LIST siehe Systemkommandos-Dokumentation.

Quellcode speichern und katalogisieren

Den zurzeit im Quellcode-Arbeitsbereich befindlichen Quellcode können Sie als Source-Objekt und außerdem als katalogisiertes Objekt speichern. Beide Objekte werden in einer Natural-Library in einer Natural-Systemdatei gespeichert.

Beginn der AnweisungslisteUm den aktuellen Quellcode zu speichern und/oder zu katalogisieren:

  • Benutzen Sie das Systemkommando SAVE, CATALOG oder STOW. Weitere Informationen siehe Objekte speichern und katalogisieren in der Dokumentation Natural benutzen.

    Anmerkung:
    Wenn Sie den Programm-Editor mit dem Editor-Kommando EXIT verlassen, wird der aktuelle Quellcode automatisch gespeichert, wenn die entsprechende Editor-Profil-Option demgemäß gesetzt ist. Weitere Informationen siehe Exit-Funktion.

Beginn der AnweisungslisteUm eine Kopie des aktuelle Quellcodes zu behalten:

  • Benutzen Sie die Editor-Optionen Source Save into und Auto Save Numbers im Editor-Profil.

    Eine Kopie des zuletzt mit einem der Natural-Editoren bearbeiteten Quellcodes wird dann automatisch als Source-Objekt in der aktuellen Natural-Umgebung gespeichert.

Exit-Funktion

Mit der Exit-Funktion können Sie die aktuelle Editor-Sitzung beenden, indem Sie das Kommando EXIT absetzen.

Die Wirkung des EXIT-Kommandos ist abhängig von der Einstellung der Editor-Profil-Option Prompt Window for Exit Funktion:.

  • Ist die Option auf Y gesetzt (Standardeinstellung), dann ruft das EXIT-Kommando das EXIT Function-Fenster immer dann auf, wenn Sie das Kommando bei einer Source eingeben, die nicht gespeicherte Änderungen enthält (siehe auch Änderungsanzeige). Wenn an dem Quellcode keine Änderungen vorgenommen wurden, erscheint das Fenster nicht und die Editor-Sitzung wird ohne Speicherung des Quellcodes beendet.

    Das EXIT Function-Fenster enthält folgende Optionen:

    Option Erläuterung
    Save and Exit Speichert alle am aktuellen Quellcode vorgenommenen Änderungen. Die Editor-Sitzung wird beendet. Siehe auch SAVE Object-Fenster.
    Exit without Saving Die Editor-Sitzung wird beendet. Die seit dem letzten Speichern des Quellcode vorgenommenen Änderungen werden nicht gespeichert.
    Resume Funktion Die Editor-Sitzung wird nicht beendet. Es werden keine Änderungen gespeichert. Das Eingabeaufforderungsfenster wird geschlossen und die aktuelle Funktion wird fortgesetzt.
  • Ist die Option auf N gesetzt, führt das EXIT-Kommando die Save and Exit-Funktion aus: Sie speichert alle an der aktuellen Source vorgenommenen Änderungen. Die Editor-Sitzung wird beendet. Siehe auch SAVE Object-Fenster.

SAVE Object-Fenster

Die Save and Exit-Funktion ruft das SAVE Object-Fenster auf, wenn für den aktuellen Quellcode noch kein Objektname definiert wurde (wie in der Editor-Kommandozeile angezeigt).

Sie werden aufgefordert, einen Objektnamen und einen Objekttyp anzugeben. Wenn Sie Ihre Eingaben mit Enter bestätigen, wird der Quellcode unter dem angegebenen Namen als neues Objekt in der aktuellen Library gespeichert und die Sitzung wird beendet. Wenn Sie PF3 drücken, wird das Fenster ohne Maßname geschlossen und die Editor-Sitzung kann fortgesetzt werden.