summaryrefslogtreecommitdiff
path: root/doc/programmer-manual/1.8.7/doc/programmierhandbuch.3
blob: eade335a9cba209bebb49e6bf075474baa7498a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
#headandbottom("1","EUMEL-Benutzerhandbuch","TEIL 3 : Editor","3")# 
#pagenr("%",1)##setcount##block##pageblock# 
#headeven# 
#center#EUMEL-Benutzerhandbuch 
#center#____________________________________________________________ 
 
#end# 
#headodd# 
#center#TEIL 3 : Editor 
#center#____________________________________________________________ 
 
#end# 
#bottomeven# 
#center#____________________________________________________________ 
3 - % #right#GMD 
#end# 
#bottomodd# 
#center#____________________________________________________________ 
GMD #right#3 - % 
#end# 

TEIL 3:  Der Editor 
 
Mit dem #ib#EUMEL-Editor#ie# steht für den Teil der Programmierung, der aus der Eingabe
von Programmtext besteht, dasselbe komfortable Werkzeug zur Verfügung, wie für die
Textverarbeitung. Merkmale des EUMEL-Editors sind die einfache Fenstertechnik
und die übersichtliche Bedienung durch wenige Funktionstasten. 
 
Eine mit dem Editor erzeugte Textdatei ist maximal 4075 Zeilen lang, die maximale
Breite einer Zeile beträgt 16000 Zeichen. 
 
 
 
3.1  Ein- und Ausschalten des Editors 
 
Der Editor wird eingeschaltet durch Eingabe von: 
 
____________________________________________________________________________ 
    gib kommando : 
    #ib#edit#ie# ("dateiname") 
 
____________________________________________________________________________ 
 
 
Falls eine Datei unter dem eingegebenen Namen existiert, wird ein Fenster auf dieser
Datei an der Stelle geöffnet, an der zuletzt ein Zugriff auf diese Datei stattfand. 
 
Existiert noch keine Datei unter dem angegebenen Namen in der Task, folgt eine
Anfrage, ob eine Datei unter dem eingegebenen Namen neu eingerichtet werden soll: 
 
____________________________________________________________________________ 
    gib kommando : 
    edit("dateiname") 
    "dateiname" neu einrichten (j/n) ? 
 
____________________________________________________________________________ 
 
 
Die Abfrage dient der Kontrolle der Schreibweise. Man kann ggf. das Einrichten der
Datei ablehnen, den Dateinamen verbessern und das Kommando erneut geben. 
 
Bei korrekter Schreibweise bejahen Sie die Kontrollfrage#u# 1)#e#mit 
 
#center#<j> <J> <y> oder <Y> 
 
 
Es erscheint ein leerer Editorbildschirm. Die oberste Zeile des Bildschirms ist die
#ib#Titelzeile#ie#. In ihr kann nicht geschrieben werden. Sie zeigt jedoch verschiedene nütz­
liche Dinge an: den Namen der Datei, die Nummer der aktuellen Zeile, in der gerade
geschrieben wird, Tabulatormarken, Einfügemodus, Lernmodus usw. 
 
____________________________________________________________________________ 
 #mark on# ............... dateiname ....................#mark off# Zeile 1  #mark on#  #mark off# 
 _ 
 
____________________________________________________________________________ 
 
 
 
Wollen Sie die #ib#Schreibarbeit beenden#ie# und den #ib#Editor ausschalten#ie#, so drücken Sie die
beiden Tasten 
 
<ESC> <q> 
 
nacheinander. Sie haben damit den #ib#Editor verlassen#ie# und befinden sich wieder auf
Monitor-Ebene. 
#page# 

3.2  Die Funktionstasten 
 
Die Funktionstasten realisieren diejenigen Fähigkeiten des Editor, die über die reine
Zeicheneingabe hinausgehen. Wo die Tasten auf Ihrem Gerät liegen, hängt von dem
jeweiligen Gerätetyp ab. Die Wirkung der Tasten ist im Weiteren erläutert. 
 
#l pos (0.0)##l pos(4.0)# 
#table# 
#free(0.5)# 
#taste1(" SHIFT ")#           Umschalttaste 
#tableend# 
#free(0.5)# 
<v> <^> <>> <<>            Positionierungstasten 
#table# 
#free(0.5)# 
<CR>              Eingabe-/ Absatztaste 
#free(0.5)# 
<ESC>             Kommandotaste 
#free(0.5)# 
<HOP>             Verstärkertaste 
#free(0.5)# 
<TAB>             Tabulatortaste 
#free(0.5)# 
<MARK>            Markiertaste 
#free(0.5)# 
<RUBOUT>          Löschtaste 
#free(0.5)# 
<RUBIN>           Einfügetaste 
#free(0.5)# 
<SV>              Supervisortaste 
#free(0.5)# 
<STOP>            Stoptaste 
#free(0.5)# 
<WEITER>          Weitertaste 
#tableend##clear pos# 
#free(0.5)# 
Es kann sein, daß Tasten nicht richtig beschriftet sind. Die Installations-anleitung
muß dann die Entsprechungen beschreiben. Natürlich können sich weitere Funktions­
tasten außer den im folgenden beschriebenen auf Ihrer Tastatur befinden. Diese
haben standardmäßig jedoch keine besondere Bedeutung für den Editor. 
 
#page# 

3.3  Die Wirkung der Funktionstasten 
 
<SHIFT> 
 
#ib#Umschalttaste#ie# 
 
Wird diese Taste gleichzeitig mit einer anderen betätigt, so wird ein Buchstabe in
Großschreibung, bei den übrigen Tasten das obere Zeichen, ausgegeben. So wird z.B.
anstelle der "9" das Zeichen ")" ausgegeben. 
#free(0.5)# 
<>> <<> 
 
<v> <^> 
 
Positionierungstasten 
 
#ib#Positionierung des Cursors#ie# um eine Spalten-/Zeilenposition in die jeweilige Richtung. 
#free(0.5)# 
<CR> 
 
#ib#Eingabetaste / Absatztaste#ie#, Carriage Return, kurz: 'CR' 
 
Diese Taste schließt die aktuelle Zeile explizit ab und es wird an den Beginn der
nächsten Zeile positioniert. Einrückungen werden beibehalten. 
 
Der EUMEL-Editor ist auf automatischen Wortumbruch voreingestellt, d.h. ein Wort,
das über das 77. Zeichen der aktuellen Zeile herausreichen würde, wird automatisch
in die nächste Zeile gerückt (siehe 'word wrap' 4.2.5). Die Absatztaste wird also
benötigt, um explizite Zeilenwechsel und Einrückungen bei der Textformatierung zu
erhalten. Eine Absatzmarke wird durch ein 'blank' hinter dem letzten Zeichen der
Zeile erzeugt und ist im Editor an der Inversmarkierung am rechten Bildschirmrand zu
erkennen. 
 
Im EUMEL-System werden Kommandos auf einer Kommandozeile, auf der alle
Editorfunktionen zur Verfügung stehen, eingegeben. Auf dieser Ebene beendet die
Taste also ausdrücklich die Kommandoeingabe, das gegebene Kommando wird an­
schließend analysiert und ausgeführt. 
 
<HOP> 
 
"#ib#Verstärkertaste#ie#"; wird als Vorschalttaste bedient. 
 
In Kombination mit anderen Funktionstasten wird deren Wirkung verstärkt. 
 
 
<HOP> <v> 
 
Steht der Cursor nicht am unteren Bildrand, so wird er dorthin positioniert. Steht er
am unteren Bildrand, so wird um einen Bildschirminhalt "weitergeblättert". 
 
Entsprechend werden auch die Tasten : <^> <>> <<> mit der HOP-Taste verstärkt. 
 
#page# 
<HOP> <RUBIN> 
 
#ib#Einfügen von Textpassagen#ie#. Die HOP-Taste in Verbindung mit RUBIN und RUBOUT
wird zum 'verstärkten' Löschen und Einfügen verwendet. 
 
Ab der aktuellen Position des Cursors 'verschwindet' der restliche Text. Es kann wie
bei der anfänglichen Texteingabe fortgefahren werden. Die Anzeige '#ib#REST#ie#' in der
Titelzeile erinnert daran, daß noch ein Resttext existiert. Dieser erscheint nach einem
neuerlichen Betätigen der beiden Tasten HOP RUBIN wieder auf dem Bildschirm (die
Anzeige 'REST' verschwindet dann wieder). 
 
____________________________________________________________________________ 
   ................ dateiname ..................... Zeile 4     
  In diesem Text soll vor dem zweiten Satz  
  etwas eingefügt werden. Hierzu wird der 
  Cursor an die Position geführt, an der  
  ein beliebiger Text eingefügt werden soll.#absatz# 
 
____________________________________________________________________________ 
 
 
Nach Betätigen der Taste #on("i")##on("b")#HOP#off("i")##off("b")# und #on("i")##on("b")#RUBIN#off("i")##off("b")#sieht der Bildschirm wie folgt aus: 
 
____________________________________________________________________________ 
   .............. dateiname ........REST.......... Zeile 4     
  In diesem Text soll vor dem zweiten Satz  
  etwas eingefügt werden. 
 
 
____________________________________________________________________________ 
 
 
 
Nun kann beliebig viel Text eingefügt werden. Nochmaliges Betätigen von HOP und
RUBIN führt den Text-Rest wieder bündig heran. 
 
#page# 
<HOP>  <RUBOUT> 
 
Löscht die Zeile ab Cursor-Position bis Zeilenende. 
 
____________________________________________________________________________ 
   ................ dateiname ..................... Zeile 4     
  Soll eine ganze Zeile oder ein Textrest  
  gelöscht werden, so positioniert man an die  
  Stelle, ab der gelöscht werden soll. Rest löschen.... 
  Nach HOP RUBOUT ist der Zeilenrest gelöscht.#absatz# 
 
____________________________________________________________________________ 
 
 
 
Nach Betätigen der Tasten #on("i")##on("b")#HOP#off("i")##off("b")# und #on("i")##on("b")#RUBOUT#off("i")##off("b")# sieht der Bildschirm wie folgt aus. 
 
____________________________________________________________________________ 
   ............... dateiname .................... Zeile 4     
  Soll eine ganze Zeile oder ein Textrest  
  gelöscht werden, so positioniert man an die  
  Stelle, ab der gelöscht werden soll. 
  Nach HOP RUBOUT ist der Zeilenrest gelöscht.#absatz# 
 
____________________________________________________________________________ 
 
 
 
Steht der Cursor am Zeilenanfang, wird nach HOP RUBOUT dementsprechend die
ganze Zeile gelöscht und die Lücke durch Nachrücken der Folgezeilen geschlossen
(HOP RUBOUT betätigen). 
#page# 
<TAB> 
 
#ib#Tabulatortaste#ie# 
 
Mit der Tabulatortaste werden die eingestellten Tabulatorpositionen angesprungen.
Jeder Tastendruck läßt den Cursor auf die nächste eingestellte Tabulatorposition
springen. 
 
#on("i")#Voreingestellte#off("i")# Tabulatorpositionen sind die beiden Schreibgrenzen, Textanfang in der
Zeile und Ende der Zeile. 
 
Weitere Tabulatorpositionen können durch Positionierung auf die gewünschte Spalte
und #on("i")##on("b")#HOP#off("i")##off("b")# #on("i")##on("b")#TAB#off("i")##off("b")# gesetzt werden. Sie können gelöscht werden, indem sie mit #on("i")##on("b")#TAB#off("i")##off("b")#
angesprungen und mit #on("i")##on("b")#HOP#off("i")##off("b")# #on("i")##on("b")#TAB#off("i")##off("b")# 
ausgeschaltet werden. 
 
Die gesamte eingestellte Tabulalation kann durch #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#TAB#off("i")##off("b")# ein-/ und ausge­
schaltet werden. 
 
Die eingestellten Tabulatorpositionen erkennen Sie an den Tabulatorzeichen (Dachzei­
chen) in der obersten Bildschirmzeile. 
#page# 
<MARK> 
 
#ib#Ein- bzw. Ausschalten der Markierung#ie#. 
 
Bei Betätigung dieser Taste wird in einen speziellen #ib#Markierzustand#ie# geschaltet. Alles,
was Sie jetzt schreiben bzw. durch Bewegen des Cursors in Richtung Dateiende
kennzeichnen, steht als #on("i")#markierter#off("i")# Bereich für die Bearbeitung zur Verfügung. Zur
besseren Sichtbarkeit wird der markierte Bereich invers zum übrigen Text dargestellt. 
 
Wird der Cursor in eine Richtung bewegt, wird das gesamte Textstück zwischen
Einschaltpunkt der Markierung und aktueller Cursorposition markiert. Rückwärtsbewe­
gungen des Cursors verkürzen den markierten Bereich wieder. 
 
Durch erneutes Betätigen der MARK-Taste schalten Sie den Markier-Zustand
wieder aus. 
 
Mit weiteren Kommandos kann der Bereich nun bearbeitet werden: 
 
<ESC>  <d>         Markierten Abschnitt in 'Scratch'-Datei kopieren. 
 
<ESC>  <p>         Markierten Abschnitt herauskopieren. 
 
<ESC>  <RUBOUT>    Markierten Abschnitt löschen. 
 
 
Der mit #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#p#off("i")##off("b")# oder#on("i")##on("b")#d#off("i")##off("b")# kopierte Bereich kann beliebig oft in derselben oder einer
anderen Datei ein/angefügt werden. 
 
Der mit #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#RUBOUT#off("i")##off("b")# gelöschte Abschnitt kann genau einmal durch #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#RUBOUT#off("i")##off("b")#
an anderer Stelle derselben Datei eingefügt werden. 
 
(vgl. ESC-Taste, Operationen auf Markierungen, 3-#topage("ESC")#) 
#page# 
<RUBIN> 
 
#ib#Ein- bzw. Ausschalten des Einfügemodus.#ie# 
 
Das Betätigen der Taste schaltet in den Einfügemodus. Der Zustand wird durch das
Wort "RUBIN" im linken Drittel der Titelzeile der Datei angezeigt. Vor dem Zeichen,
auf dem der Cursor steht, wird eingefügt. Nochmaliges Betätigen der Taste schaltet
den Einfügemodus aus. 
#free(1.0)# 
<RUBOUT> 
 
#ib#Löschtaste#ie# 
 
Das Zeichen, auf dem der Cursor steht, wird gelöscht. Wenn der Cursor, wie bei
fortlaufender Eingabe üblich, hinter dem letzten Zeichen einer Zeile steht, wird das
letzte Zeichen gelöscht. 
 
#page# 

3.4  ESC Kommandos 
 
<ESC> 
 
#ib#Kommandotaste#ie# 
 
Mit der ESC-Taste in Kombination mit einer Folgetaste werden vordefinierte Aktionen
ausgelöst. Es gibt Aktionen, die vorprogrammiert zur Verfügung stehen, und Sie selbst
können weitere hinzufügen. 
 
Der Kommandodialog wird eingeschaltet durch: 
 
<ESC> <ESC> 
 
 
____________________________________________________________________________ 
  ............... Beispiel ..................... Zeile 4     
 
  gib kommando:                                              
 
____________________________________________________________________________ 
 
 
Der Kommandodialog ermöglicht die Eingabe von beliebigen Kommandos ohne den
Editor verlassen zu müssen. Insbesondere Such- und Kopieroperationen stellen auch
für den Programmierer nützliches Werkzeug dar (siehe 3.5). 
 
Auf der Kommandozeile kann jedes Kommando gegeben werden. Die Kommandozeile
kann wie eine normale Textzeile editiert werden. Nach #on("i")##on("b")#CR#off("i")##off("b")# verschwindet die Kom­
mandozeile und das Kommando wird ausgeführt. 
 
Falls ein Fehler auftritt erfolgt eine entsprechende Fehlermeldung in der Kopfzeile und
die Kommandozeile erscheint erneut. 
 
Um ein weiteres Editor-Fenster zu 'öffnen', betätigt man im Editor 
 
<ESC>  <e> 
 
Betätigt man ESC e ungefähr in der Mitte des Bildschirms, hat man das Fenster auf
die neue Datei in der unteren Hälfte des Bildschirms und die 'alte' Datei in der
oberen Bildschirmhälfte. Zunächst wird der Dateiname erfragt. Nach dessen Eingabe
und #on("i")##on("b")#CR#off("i")##off("b")# wird ein Fenster auf eröffnet. Die obere linke Ecke des Fensters befindet
sich an der aktuellen Cursor-Position. Dabei darf sich der Cursor nicht zu sehr am
rechten oder unteren Rand befinden, weil das Fenster sonst zu klein würde. In diesem
'Fenster' kann man dann genauso arbeiten wie im 'normalen' Editor. 
 
Mit der Tastenfolge 
 
<ESC>  <w> 
 
wechselt man von einem Fenster (zyklisch) in das benachbarte. Es gibt eine Hier­
archie zwischen den Fenstern in der Reihenfolge, in der eines im anderen einge­
richtet worden ist. Gibt man 
 
<ESC>  <q> 
 
in einem Fenster, so verschwindet dieses und alle darin eingeschachtelten Fenster,
und man befindet sich im übergeordneten Fenster. 
 
Durch 
 
<ESC>  <p>  oder   <ESC>  <d> 
 
schreibt man einen markierten Teil in eine 'Scratch'-Datei (nicht editierbarer
Zwischenspeicher); durch ESC p wird ein markierter Text aus der Ursprungsdatei
entfernt und in die 'Scratch'-Datei geschrieben. Im Gegensatz dazu wird er durch
ESC d kopiert. Durch 
 
<ESC>  <g> 
 
fügt man ihn in eine andere (oder dieselbe) Datei ein. Im Unterschied zu ESC RUBIN
wird die temporäre Datei dadurch nicht entleert. 
 
Die für ESC p, bzw. ESC d benutzte #ib#'Scratch'-Datei#ie#, die nicht editierbar ist, ist nicht
mit dem sogenannten Notizbuch zu verwechseln. Das Notizbuch ist eine Datei, in der
alle Editorfunktionen benutzt werden können, auf die jedoch ohne Angabe eines
Dateinamens durch 
 
<ESC> <n> 
 
ab der aktuellen Cursorposition ein Fenster eröffnet wird. Das Notizbuch nimmt
insbesondere Fehlermeldungen und Meldungen bei der Übersetzung von Programmen
auf. 
 
<ESC> <v> 
 
erlaubt vom äußeren Fenster aus alle eingeschachtelten Fenster zu verlassen. 
#page# 

Vorbelegte Tasten 
 
#ib#ESC q#ie#          Verlassen des Editors bzw. der eingeschachtelten Fenster. 
 
#ib#ESC e#ie#          Weiteres Editorfenster einschalten. 
 
#ib#ESC n#ie#          Notizbuch 'anzeigen'. 
 
#ib#ESC v#ie#          Dateifenster auf ganzen Bildschirm vergrößern 
               bzw. Bildschirm rekonstruieren (eingeschachteltes Fenster verlas­
               sen). 
 
#ib#ESC w#ie#          Dateiwechsel beim Fenstereditor. 
 
#ib#ESC f#ie#          Nochmalige Ausführung des letzten Kommandos. 
 
#ib#ESC b#ie#          Das Fenster wird auf den linken Rand der aktuellen (ggf. verscho­
               benen) Zeile gesetzt. 
 
ESC  >         Zum nächsten Wortanfang. 
 
ESC  <         Zum vorherigen Wortanfang. 
 
#ib#ESC 1#ie#          Zum Anfang der Datei. 
 
#ib#ESC 9#ie#          Zum Ende der Datei. 
#page# 

Operationen auf Markierungen 
 
 
#goalpage("ESC")# 
#ib#ESC RUBOUT#ie#     Markiertes "vorsichtig" löschen. 
 
#ib#ESC RUBIN#ie#      Mit ESC RUBOUT vorsichtig Gelöschtes einfügen. 
 
#ib#ESC p#ie#          Markiertes löschen und in die Notiz-Datei schreiben. Kann mit ESC
               g an anderer Stelle reproduziert werden. 
 
#ib#ESC d#ie#          Duplizieren: 
               Markiertes in die Notiz-Datei kopieren, anschließend die
               Markierung abschalten. Kann mit ESC g beliebig oft reproduziert
               werden. 
 
#ib#ESC g#ie#          Mit ESC p gelöschten oder mit ESC d duplizierten Text an aktuelle
               Cursor-Stelle schreiben, d.h. Notiz-Datei an aktueller Stelle einfü­
               gen. 
#page# 

Zeichen schreiben 
Diese Tasten sind standardmäßig so vorbelegt wie hier aufgeführt, sie können aber
von Benutzern und in Anwenderprogrammen geändert werden. 
 
#ib#ESC a#ie#          Schreibt ein ä. 
#ib#ESC A#ie#          Schreibt ein Ä. 
#ib#ESC o#ie#          Schreibt ein ö. 
#ib#ESC O#ie#          Schreibt ein Ö. 
#ib#ESC u#ie#          Schreibt ein ü. 
#ib#ESC U#ie#          Schreibt ein Ü. 
#ib#ESC s#ie#          Schreibt ein ß. 
#ib#ESC (#ie#          Schreibt eine [. 
#ib#ESC )#ie#          Schreibt eine ]. 
#ib#ESC <#ie#          Schreibt eine {. 
#ib#ESC >#ie#          Schreibt eine }. 
#ib#ESC \##ie#          Schreibt ein \#, das auch gedruckt werden kann. 
#ib#ESC ­#ie#          Schreibt einen (geschützten) Trennstrich, siehe Textverarbeitung. 
#ib#ESC k#ie#          Schreibt ein (geschütztes) "k", siehe Textverarbeitung. 
#ib#ESC blank#ie#      Schreibt ein (geschütztes) Leerzeichen, siehe Textverarbeitung. 
#free(0.7)# 

Kommando auf Taste legen

#ib#ESC ESC#ie#        Kommandodialog einschalten 
 
#ib#ESC ! taste#ie#    Im Kommandodialog: 
               Geschriebenes Kommando auf Taste legen. 
 
#ib#ESC ? taste#ie#    Im Kommandodialog: 
               Auf 'taste' gelegtes Kommando zum Editieren anzeigen. 
 
#ib#ESC k#ie#          Im Kommandodialog: 
               Das zuletzt editierte Kommando (einzeilige ELAN-Programm)
               anzeigen. 
 
 
Der Lernmodus 
Der Lernmodus ermöglicht beliebige Tastensequenzen zu speichern und auf eine 
Taste 't' zu legen. Durch #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#t#off("i")##off("b")# wird die gesamte Sequenz ausgeführt. 
 
Nicht belegt werden können die vom System vorbelegten Tasten (3-14). 
 
Beispielsweise könnte es für einen Programmierer sinnvoll sein die Tastenfolge 
'THEN' 'CR' '>' '>' '>' '>' auf die Taste #on("i")##on("b")#T#off("i")##off("b")# zu legen. Durch #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#T#off("i")##off("b")# wird 'THEN' in
die aktuelle Zeile geschrieben und der Cursor mit passender Einrückung in die 
Einrückung in die Folgezeile gesetzt. 

 
#ib#ESC HOP#ie#        #ib#Lernen einschalten#ie#. 
 
#ib#ESC HOP taste#ie#  #ib#Lernen ausschalten#ie# und Lernsequenz auf 'taste'legen. 
 
#ib#ESC HOP HOP#ie#    #ib#Gelerntes vergessen#ie#. Bedingung ist, daß man die Lernsequenz in
                       der Task löscht, in der man sie hat lernen lassen. 
 
 
#on("b")# 
#center#A C H T U N G : 
Der Lernmodus bleibt eingeschaltet, auch wenn der Editor beendet wird. Dann werden
die folgenden Monitor-Kommandos usw. usf. 'gelernt'. Durch unsinniges 'Lernen'
lassen sich schlimmstenfalls beliebige Verwüstungen anrichten. 
 
Der Lernmodus wird in der Editor-Kopfzeile angezeigt. Falls der Editor beendet wird,
ohne den Lernmodus auszuschalten, erfolgt eine Warnung auf Monitor-Ebene. 
 
Um den Lernmodus zu beenden drücken Sie: 
 
<ESC> <HOP> <HOP>  
 
Dadurch wird der Lernmodus ausgeschaltet und nichts gelernt, die Gefahr ist gebannt.#off("b")# 
 
#page# 
<SV> 
 
#ib#SUPERVISOR-Taste#ie# 
 
Betätigen Sie diese Taste im Editor, dann unterbrechen Sie Ihre Editierarbeit und
erhalten die Meldung 
 
____________________________________________________________________________ 
 
                                           Terminal 2  
 
 
                      EUMEL Version 1.8/M 
 
 
            gib supervisor kommando: 
 
 
 
 
       ESC ? --> help 
       ESC b --> begin("")            ESC h --> halt 
       ESC c --> continue("")         ESC s --> storage info 
       ESC q --> break                ESC t --> task info 
 
____________________________________________________________________________ 
 
 
 
Wollen Sie nun im Editor fortfahren bzw. haben Sie irrtümlich die SV-Taste betätigt,
dann geben Sie das Kommando 
 
____________________________________________________________________________ 
 
              gib supervisor kommmando : 
              continue ("meine task") 
 
____________________________________________________________________________ 
 
 
 
(falls Ihre Task, in der Sie arbeiteten, wirklich "meine task" hieß!) 
 
Um Ihren in Bearbeitung befindlichen Text wieder vollständig auf dem Bildschirm zu
sehen, betätigen die die Tasten 
 
<ESC> <b> 
 
Sie sind wieder an der Stelle, an der Sie den Text mit der SV-Taste verlassen ha­
ben, und können normal weiterarbeiten. 
 
#on("u")#Achtung:#off("u")# Die SV-Taste kann, je nach Terminal, durch das Betätigen von zwei
Tasten gleichzeitig realisiert sein (oft 'CTRL b'). Beachten Sie die Beschreibung Ihrer
Tastatur! 
 
 
 
#on("b")# 
Für die Programmierung ist die Tastenfolge <SV> <ESC> <h> von Bedeutung, da hier­
durch der Fehler 'halt vom Terminal' erzeugt wird. Dadurch können unerwünscht
laufende Programme abgebrochen werden. 
#off("b")# 
#page# 
<STOP> 
 
#ib#Unterbrechen einer Ausgabe#ie# (oft auch als CTRL a realisiert). 
 
Haben Sie diese Taste aus Versehen betätigt, erkennen Sie dies daran, daß der
Editor nicht "reagiert". Betätigen Sie die WEITER-Taste (oft auch CTRL c). 
#free(1.0)# 
<WEITER> 
 
Unterbrochene Ausgabe fortsetzen. 
 
Ein mit der STOP-Taste angehaltene Ausgabe können Sie durch Betätigen der
#ib#WEITER-Taste#ie# fortsetzen. 
 
 
#on("u")#VORSICHT:#off("u")#  Die STOP-Taste unterbricht nur die Ausgabe auf den Bildschirm. Zei­
           chen, die während des STOP eingegeben werden, werden gespeichert
           und nach 'WEITER' ausgegeben! 
 
 
#page# 

3.5  Positionieren, Suchen, Ersetzen 
     im Kommandodialog
      
 
Um das Editorfenster auf eine bestimmte Zeile zu positionieren wird einfach diese
Zeilennummer angegeben. 
 
____________________________________________________________________________ 
  ............... Beispiel ..................... Zeile 4     
 
  gib kommando: 123                                           
 
____________________________________________________________________________ 
 
 
 
Falls die Zeilenzahl der Datei geringer als die angegebene Zeilennummer ist, wird auf
die letzte Zeile positioniert. 
 
 
Um das Editorfenster auf ein bestimmtes Textstück zu positionieren, wird der gesuch­
te Text, ggf. mit Suchrichtung angegeben. 
 
____________________________________________________________________________ 
  ............... Beispiel ..................... Zeile 4     
 
   gib kommando: "END PROC"                                   
 
____________________________________________________________________________ 
 
 
Die Suchrichtung kann durch 'D' (down) oder 'U' (up) zusätzlich spezifiziert werden. 
 
____________________________________________________________________________ 
  ............... Beispiel ..................... Zeile 4     
 
  gib kommando: U "INT VAR schleifenzaehler"                  
 
____________________________________________________________________________ 
 
 
 
Um beliebige Texte durch andere zu ersetzen, dienen die Operatoren 'C' (change)
bzw. 'CA' (change all). 
 
Bei Ausführung dieses Kommandos wird zunächst nach #on("u")#unten#off("u")# in der editierten Datei
nach dem zu ersetzenden Text gesucht. Wenn der Text gefunden wird, wird er durch
den hinter dem Operator stehenden Text ersetzt. 
 
____________________________________________________________________________ 
  ............... Beispiel ..................... Zeile 4     
 
  gib kommando: "lb" C "lange bezeichnung"                    
 
____________________________________________________________________________ 
 
 
 
Bei Anwendung von 'CA' wird jedes Auftreten des gesuchten Textes ab der
Cursorposition durch den Ersatztext ersetzt, bis das Dateiende errreicht ist. 
 
Weitere Erklärungen zum Suchen und Ersetzen in 5.5. 
#page# 

Weitere Hilfen 
 
 
Textabschnitt an anderer Stelle der Datei einsetzen: 
 
- Abschnitt markieren und mit #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#d#off("i")##off("b")# zwischenspeichern. 
 
- Zweites Editorfenster auf die Datei mit #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#e#off("i")##off("b")# öffnen. 
 
- Nach #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#ESC#off("i")##off("b")# Zeilennummer oder Suchbegriff angeben und mit #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#g#off("i")##off("b")# Abschnitt an der gewünschte Stelle einsetzen. 
 
 
 
Textabschnitt schnell herauskopieren und sichern: 
 
- Gewünschten Abschnitt markieren 
 
- #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#ESC#off("i")##off("b")# PUT("dateiname") #on("i")##on("b")#CR#off("i")##off("b")# 
  Der Abschnitt wird in die Datei 'dateiname' geschrieben. Falls die Frage 'dateina­
  me' löschen (j/n) verneint wird, wird der Abschnitt, an das Ende der Datei angefügt.
  Dadurch können Textabschnitte schnell gesammelt werden. 
 
 
Komplette Datei in die editierte Datei einfügen: 
 
- #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#ESC#off("i")##off("b")# GET("dateiname") #on("i")##on("b")#CR#off("i")##off("b")# 
  Der komplette Inhalt von 'dateiname' wird an die aktuelle Position geschrieben. 
 
 
Breitere Zeile erzeugen: 
 
- #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#ESC#off("i")##off("b")# limit(123) #on("i")##on("b")#CR#off("i")##off("b")# 
  Die Zeilenbreite wird auf 123 Zeichen geändert. Der maximal zulässige Wert ist
  16000. Dieser Wert bezieht sich auf den Zeilenumbruch. Bei Zeilenbreite > 77 wird
  nur die aktuelle Zeile verschoben. Um für den ganzen Bildschirm die rechte Seite
  der Datei zu sehen, kann die linken Spalte des Bildschirmfenster neu gesetzt wer­
  den: 
 
  #on("i")##on("b")#ESC#off("i")##off("b")# #on("i")##on("b")#ESC#off("i")##off("b")# margin(60) #on("i")##on("b")#CR#off("i")##off("b")# 
 
  Die Normaleinstellung wird durch 'limit(77)' und 'margin(1)' wiederhergestellt.