Der ED, das Werkzeug eines wahren Programmierers. Der Prompt im Ed ist ein ':'. Immer, wenn Du im Ed bist, und er erwartet eine Eingabe, erscheint er. Der Ed hat zwei Modi (das ist die Mehrzal von Modus, es heisst nicht Muduesse): Der Kommando-Modus und der Einfuege-Modus. Wenn Du im Einfuege-Modus bist, erscheint als erstes Zeichen ein '*', der von Deinem ersten eingegebenen Zeichen ueberschrieben wird. Du kannst den Einfuege-Modus verlassen, indem Du einen einzelnen '.' als erstes Zeichen eingibst. Alle Kommandos (die man nur im Kommando-Modus eingeben kann, wie der Name ja schon sagt) haben die folgende Form: ,cmd oder cmd. Beispiel: 1,10p Zeigt Zeile 1 bis 10 an. 1,5d Loescht Zeile 1 bis 5. 8p Zeigt Zeile 8 an. Fuer und kann man auch '.' oder '$' einsetzen, dabei bedeutet '.' die aktuelle Zeile, das heisst, die letzte Zeile, die angesprochen wurde. '$' bedeutet die letzte Zeile des Files (zb 1,$ loescht den gesamten Inhalt des Ed). Wenn Du auf UNIX arbeitest, kannst Du weitere Infos mit 'man ed' bekommen, der UNIX-Ed und der MUD-Ed funktionieren etwa gleich. Sonst kannst Du auch den Ed aufrufen und 'h' fuer Hilfe eingeben, das hilft auch weiter. Kommandos, die einen Zeilenbereich verwenden: (Wenn keine Zeile angegeben ist, wird die momentane Zeile verwendet) p (print) gebe Zeile aus d (delete) entferne Zeile l (list) gebe Zeile mit Control-Zeichen aus r file (read) lese File nach der angegebenen Zeile ein s (subst) ersetze Muster (-> weiter unten) z () gib 20 zeilen aus Z () gib 40 zeilen aus a (append) haenge Zeilen nach der angegebenen an, Ende mit '.' i (insert) fuege Zeilen vor der angegebenen ein, Ende mit '.' c (change) aendere angegebene Zeile j (join) Verbinde den angegebenen Bereich zu einer Zeile, wenn nichts angegeben wurde, dann momentane Zeile mit der nachfolgenden m (move) Verschiebe angegebenen Bereich nach , der Bereich wird NACH der Zeile eingefuegt. t (transp) Kopiere angegebenen Bereich und fuege ihn nach ein. Kommandos ohne Zeilenangabe: q (quit) Ende. Funktioniert nicht, wenn das File im Ed geaendert wurde. Q (quit) Ende. Alle Aenderungen nach dem letzten 'w' werden verworfen. w (write) File speichern. w File als speichern. Funktioniert nicht, wenn bereits existiert. W File als speichern. Funktioniert auch, wenn bereits existiert. e ab jetzt File editieren E ab jetzt File editieren, auch wenn das momentane File noch nicht gespeichert ist f gib Filenamen aus, f aendere Filenamen zu = gibt die momentane Zeile aus ! Ein Kommando im MUD geben, zb !sag Wart, ich bin im Ed! Es gibt noch das Kommando 'set' mit dem man seinen Ed an die eigenen Gewohnheiten anpassen kann: set number Ab jetzt werden Zeilennummern immer vor den Zeilen eingefuegt. set list ab jetzt werden alle Ausgeben von 'z' und 'p' wie bei 'l' mit Control-Zeichen ausgegeben set print nach allen Ersetzungen wird die Zeile nochmals aus- gegeben set autoindent Automatische Einrueckung, mit ^D oder ^K kommt man wieder eine Einruecktiefe zurueck. set save speichert alle Einstellungen ab, damit Dein Ed beim naechsten Start noch waeiss, wie Du es gern haettest. Weitere Einstellungen erfaehrt man mit hset vom Ed selber. Der Befehl 's' fuer Fortgeschrittene: Erst mal ein einfaches Beispiel: s/apa/bepa/ Ersetzt in der momentanen Zeile das erste Vorkommen von 'apa' durch 'bepa'. Wenn man ein 'p' anhaengt (also s/apa/bepa/p), dann kann man das Ergebnis der Ersetzung unmittelbar sehen. 1,$s/apa/bepa/ Ersetzt im gesamten Dokument das erste Vorkommen von 'apa' durch 'bepa'. Anstatt von "/" kann man jedes beliebige Zeichen verwenden (z.B. wenn man /w/ durch /d/Kokosinsel/ im gesamten File ersetzen will, muss man 1,$s-/w/-/d/Kokosinsel/-g eingeben. Das 'g' bewirkt, dass JEDES vorkommen von /w/ ersetzt wird, nicht nur das erste. Das zu ersetzende Muster dasrf eine 'regular expression' sein, siehe dazu die Manpages fuer Ed unter UNIX. Suchen kann man mit '/' oder '?'. /argl findet die Zeile mit dem ersten Vorkommen von 'argl' nach der momentanen Zeile, ?argl findet die letzte Zeile VOR der momentanern Zeile, in der 'argl' vorkommt. Regular Expressions: . passt auf jedes beliebige Zeichen x* passt auf jede beliebiege Anzahl von x [abc] passt zu 'a', 'b' oder 'c', [a-f] passt zu jedem Buchstaben zwischen 'a' und 'f' Beispiel: /ar.l findet 'argl', 'arGl', 'arjl' usw...