6. Kommandos


 

6.1. Allgemeines

Vom Command Mode des Editors lassen sich eine Reihe von Kommandos ausführen, die in diesem Kapitel erläutert werden. Die Kommandos werden durch Eingabe eines Buchstabens (in der Regel des Anfangsbuchstabens) oder eines Sonderzeichens angewählt. Die Angabe eines (optionalen) Wiederholfaktors läßt ein Kommando mehrfach ausführen. Beispiel: "10R" führt das Kommando "Replace" 10-mal aus. Sonderfall: Das Zeichen "/" steht für unendlich oft, d.h. Wiederholung des Kommandos so oft wie möglich (z.B. bis zum Ende des Files), oder bis zum Abbruch durch <esc> oder ^C (Control C). Alle Kommandos lassen sich jederzeit mit <esc> oder ^C abbrechen. Hier nun die alphabetische Aufzählung aller Kommandos, zunächst in der Übersicht als Baumstruktur, dann einzeln erläutert:

6.2. Übersicht

Command Mode | |-- ALT F9 Umschaltung der Zeilenzahl: 25, 28, 50 | |-- Again Wiederholung des letzten Kommandos | |-- Block Löschen und Kopieren von Text-Blöcken | | | |-- Buffer | |-- Delete | |-- Find | |-- -find | |-- Jump | +-- Put | |-- Calc Online Taschenrechner | | | +-- Calc: <arithmetic expression> | |-- Delete Löschen und Kopieren von Text-Blöcken | | | |-- Buffer | |-- Delete | |-- Find | |-- -find | |-- Jump | +-- Put | |-- Execute Ausführen von Macros | | | +-- Macro name: | |-- Find Suchen von Text-Strings vorwärts | | | +-- Find {} "" | |-- -find Suchen von Text-Strings rückwärts | | | +-- -Find {} "" | |-- Get Einlesen eines Files an der aktuellen | | Cursor-Position | +-- Input file: | |-- Hex Hex-Bearbeitung der Daten. | | | |-- Input Eingabe 1 Hex-Wert an Cursor-Position. | |-- Output Anzeige 1 Hex-Wert an Cursor-Position. | |-- Stdout Hex-String nach standard output. | |-- Find Suche nach Hex-Werten. | |-- View Vollbild Hex-Anzeige. | +-- Edit Vollbild Hex-Editor. | |-- Insert Wechseln vom Command- zum Insert-Mode, | | eingebene Zeichen werden an der Cursor- | +-- [insert] Position in den Text eingefügt. | |-- Jump Setzen der Cursor-Position auf vorher | | definierte Stellen oder auf bestimmte | |-- A_tag Zeilen/Spalten. | |-- B_tag | |-- C_tag | |-- D_tag | |-- Start | |-- End | |-- Line | +-- Position | |-- Kill_wnd Ende geteilter Bildschirm | |-- Macro Macro-Behandlung | | | |-- Create | |-- Delete | |-- Get | |-- Insert | |-- List | +-- Save | |-- Other Umschaltung zum nächsten File | |-- ALT Other Umschaltung zum vorigen File | |-- Paragraph Ausrichten des aktuellen Absatzes | | | |-- Fill ohne und | +-- Justify mit rechtsbündiger Ausrichtung | |-- Quit Editor abbrechen oder beenden, | | File neu lesen, updaten oder schreiben | |-- Abort | |-- Exit | |-- Init | |-- Update | +-- Write | |-- Replace Ersetzen von Text-Strings | | | +-- Replace {} "" with "" | |-- ?replace Ersetzen von Text-Strings mit Abfrage | | | +-- ?Replace {} "" with "" | |-- Set Einstellen von diversen Betriebsarten | | Default-Werte: | |-- Autonl No G = Global | |-- Bak_file Yes G | |-- Case No G | |-- Display Yes G | |-- E_delimit !\"#%&\'()*+,-./:;<=>?@[\\]^`{|}~ G | |-- File_num 2 G | |-- Highbit No F | |-- Indent Yes G | |-- K_token No G | |-- Leftcol 0 F = File specific | |-- Margin 4 0 76 G | |-- Notab Yes G | |-- viewOnly No F | |-- Radix Decimal G | |-- Showfind No G | |-- Tabs 8 G | |-- Viewrow 5 G | |-- Warning 2 G | |-- sYntax 0 0 F | |-- *Wildcards No G | +-- ~Tilde_home No G | |-- Tag Setzen von Text-Markern für das | | Kommando "Jump" | |-- A_tag | |-- B_tag | |-- C_tag | +-- D_tag | |-- View Neuausgabe des Bildschirm | |-- Window geteilter Bildschirm | |-- Xchange Wechseln vom Command- zum Exchange- | | Mode, bei Eingabe neuer Zeichen wird | +-- [exchange] der alte Text überschrieben. | |-- YFileCompare File-Vergleich: this / other file | oder upper / lower window | |-- Zulu Das ist ja wohl das letzte ... | | | |-- Beep 1-mal Hupen | +-- Pause 1 Sek. Pause | |-- !system Ausführen eines Betriebsystem- | | Kommandos, z.B. "DIR" | +-- System command: | +-- &system Wie '!', aber ohne "hit any key ...", | sinnvoll für Hintergrund-Prozesse +-- System command:

6.3. Erläuterungen

- ALT F9 Umschaltung der Zeilenzahl, zyklisch: 25 --> 28 --> 50 - 'A'gain Wiederholung des letzten Kommandos. Beispiel: F hallo <esc> Sucht den Text-String "hallo". A Sucht erneut denselben String. - 'B'lock Dient zum Markieren eines Text-Blocks zum Zweck des Löschens oder Kopierens. Beim 1. "B" wird der Start des Textes mit einem "@" markiert. Der Cursor läßt sich nun mit den Cursor-Tasten bzw. mit dem "Find", "-find" oder "Jump"-Kommando verschieben. Dabei wird ein zweites "@" mitgeführt, das das Ende des Text-Blocks markiert. Der Text zwischen den beiden "@" kann jetzt auf verschiedene Weise bearbeitet werden: - "B"uffer legt den Text in einem Hilfsbuffer ab. - "D"elete löscht den Text im Speicher, und legt ihn im Hilfsbuffer ab. - "P"ut schreibt den Text auf einen anzugebenden File. Zum Wiedereinlesen des Hilfsbuffers dient das "Get"-Kommando - siehe dort ! - 'C'alc Online Taschenrechner zur Berechnung mathematischer/logischer Ausdrücke. Behandlung von reservierten Text-Strings. Siehe Kapitel "Online Calculator" ! - 'D'elete Leitet wie das "Block"-Kommando das Löschen oder Speichern eines Text-Blocks ein. Entscheidend für die Unterscheidung zwischen Löschen und Speichern ist das 2. Kommando. Also: B ... B entspricht D ... B --> Speichern B ... D entspricht D ... D --> Löschen - 'E'xecute Ausführen eines vorher definierten Macros (manuell erzeugt oder per Macro-File eingelesen). Syntax: "E"xecute <macro name> <cr> Hinweis: Macros, deren Name nur aus einem einzelnen Zeichen besteht, können durch Eintippen dieses Zeichens ausgeführt werden. Es kann sich dabei um ein Sonderzeichen handeln, eine Funktionstaste, oder um einen Buch- staben, der für kein anderes Kommando reserviert ist. Auch kombinierte Tastendrücke (d.h.: Control- oder Alt-Kombinationen) sind zulässig. siehe auch Kapitel "Macros" ! - 'F'ind Sucht (vorwärts) nach dem eingebenen Text-String. Der Suchstring wird mit <esc> abgeschlossen. Abbruch des "Find"-Kommandos mit ^C. - '-'find Sucht (rückwärts) nach dem eingebenen Text-String. - 'G'et Der angebene File wird an der aktuellen Cursor-Position in den Text eingefügt. Wird statt eines Filenamen nur <cr> eingegeben, so wird der vorher mit 'B'lock bzw. 'D'elete erzeugte Text-Buffer eingefügt. Damit lassen sich also Text-Blöcke einfach verschieben oder kopieren. - 'H'ex - 'I'nput Fügt den eingegeben Hex-Wert an der Cursor-Position in den Text ein. Beispiel: H I 0c <cr> erzeugt ein <ff> (Form Feed = Seitenvorschub). - 'O'utput Zeigt den Charakter unter der Cursor-Position als Hex-Wert in der Status-Zeile 2 an. - 'S'tdout Gibt die eingegebenen Hex-Werte als Character-String nach stdout aus. Beispiel: H S 1b 5b 35 6d oder H S 1b5b356d erzeugt die Ausgabe von: <esc>[5m. Dieses Kommando kann benutzt werden, um die Terminal-Emulation zu beeinflussen (z.B. die Text Auflösung). - 'F'ind Sucht nach dem eingegebenen Hex-Wert bzw. Werte-Bereich (von ... bis). - 'V'iew Zeigt den Speicherinhalt als gemischtes hex/ASCII-Display an. In dieser Betriebsart sind nur einige Tasten verwendbar: Cursor Up/Down/Left/Right, Page Up/Down, Home/End <esc> / ^C 'E'dit : Umschalten zu Betriebsart "Hex Edit" 'O'ther: Umschalten zwischen den Files 'Y' : Vergleichen der Files - 'E'dit Wie 'V'iew, aber mit zusätzlichen Kommandos: - <tab> wechselt zwischen Hex- und ASCII-Bereich hin und her. - eingegebene Hex- bzw. ASCII-Werte werden im Speicher überschrieben. Hex Edit Für die "Hardcore-Programmierer": Jeder Binär-File kann sehr komfortabel sowohl im ASCII- als auch Hex-Mode betrachtet oder editiert werden. - 'I'nsert Wechselt von Command Mode in den Insert Mode. Die eingebenen Zeichen werden an der Cursor-Position in den Text eingefügt. Zurück zum Command Mode mit <esc> ! - 'J'ump Setzt den Cursor ... - A_Tag, B_Tag, C_Tag, D_Tag ... auf eine Text-Stelle, die vorher mit dem "Tag"-Kommando markiert wurde. - Start / End ... auf den Anfang bzw. das Ende des aktuellen Files. - Line ... auf die angegebene Zeile. - Position ... auf die angegebene Spalte. - 'K'ill_wnd Beende Mode "geteilter Bildschirm", siehe auch 'W'indow ! - 'M'acro Erzeugen, Löschen, Einlesen, Einfügen, Anzeigen und Abspeichern von Macros. Siehe Kapitel "Macros" und "Macro-File" ! - 'O'ther Wenn mit mbedit mehrere Files parallel editiert werden, kann mit "O" zwischen den Files umgeschaltet werden. Dies ist besonders nützlich beim Kopieren von Daten zwischen 2 Files. Der jeweils aktuell bearbeitete File ist an der Anzeige in der Status-Zeile 1 zu identifizieren. - ALT 'O'ther Wie Other, aber die Files werden rückwärts weitergeschaltet. Ein Unterschied zwischen "O" und "Alt O" ist nur bei mehr als 2 Files gegeben. - 'P'aragraph Formatiert den aktuellen Absatz mit der Einstellung von 'S'et 'M'argin (Einrückung, linke + rechte Grenze). - 'F'ill formatiert ohne rechtsbündige Ausrichtung. - 'J'ustify formatiert mit rechtsbündiger Ausrichtung. - 'Q'uit - Abort Abbrechen des Editors ohne Zurückschreiben des Files. Wenn einer der bearbeiteten Files modifiziert wurde, gibt mbedit eine Warnung aus: "modified: abort anyway ? [Y/N/W]", die quittiert werden muß. 'Y' = Yes : Abbruch ohne Update, die Änderungen gehen verloren. 'N' = No : kein Abbruch, Verbleiben in mbedit. 'W' = Write : File schreiben und mbedit beenden (wie Quit Exit). - Exit Der editierte File wird zurückgeschrieben und mbedit verlassen, sofern keiner der anderen Files modifiziert wurde. - Init Hiermit wird ein neuer (oder derselbe) File eingelesen. Wenn der vorher bearbeitete File modifiziert wurde, gibt mbedit eine Warnung aus. Behandlung wie bei "Q"uit "A"bort. Sonderfall: Der Filename " " oder "" löscht den Editier-Buffer ohne Einlesen eines neuen Files. - Update Der aktuelle File wird zurückgeschrieben, der Editor aber nicht verlassen. - Write Der aktuelle File wird auf einen beliebigen anderen File geschrieben. Wenn ein File des angegebenen Namens bereits existiert, gibt mbedit eine Warnung aus: "file exists, overwrite [Y/N]", die quittiert werden muß. 'Y' = Yes : Überschreiben des Files. 'N' = No : kein Überschreiben des Files. Nach Ausführen eines der "Quit"-Kommandos, bleibt mbedit im "Quit"-Mode, z.B. um nach einem "Update" direkt ein "Init" durchführen zu können. Der "Quit"-Mode kann ohne weitere Aktionen mit <esc> oder ^C verlassen werden. - 'R'eplace Ersetzen eines Text-Strings durch einen anderen. Syntax: R <string1> <esc> with <string2> <esc>. Abbruch des "Replace"-Kommandos mit ^C. Das letzte "Replace"-Kommando kann mit "A"gain beliebig oft wiederholt werden. Durch Angabe eines Wiederholfaktors kann das Kommando von vorn- herein n-mal ausgeführt werden. - '?'replace Wie "Replace", aber mit vorheriger Abfrage: "Replace ? [Y/N/A]" 'Y' = Yes : Ersetzen diesen Strings. 'N' = No : kein Ersetzen diesen Strings. 'A' = All : Ersetzen ohne weitere Nachfrage, Wiederholung des Kommandos so oft, bis der Wiederholfaktor abgearbeitet ist. - 'S'et Einstellen diverser Betriebsarten / Options. Siehe Kapitel "Set Options" ! - 'T'ag An der aktuellen Cursor-Position wird ein Merker (A bis D) gesetzt, der später mit "Jump" angesprungen werden kann. - 'V'iew Neuausgabe des Bildschirms, der Cursor wird dabei auf die sog. "View Row" gesetzt (siehe Kapitel "Set Options"). - 'W'indow Der Bildschirm wird waagerecht in 2 Teile unterteilt. Jeder Teil muß mindestens 5 Zeilen hoch sein (3 Text- + 2 Status-Zeilen), sonst wird eine Fehlermeldung "window too small" erzeugt. Durch nochmaliges Eingeben von 'W', springt die aktuelle Cursor-Position von einem Fenster zum anderen. Es ist möglich, entweder 2 verschiedene, oder denselben File in den i beiden Teilen des Bildschirms zu editieren. 'K'ill beendet den Window-Mode. - 'X'change Wechselt von Command Mode in den Exchange Mode. Bei Eingabe neuer Zeichen wird der alte Text an der Cursor-Position überschrieben. Im Exchange Mode überschriebene Zeichen werden in einem Hilfsbuffer gesichert. Mit <rubout> bzw. <backspace> können sie wiederhergestellt werden, solange der Exchange Mode nicht verlassen wurde, und zwischen- durch keine der Cursor-Tasten betätigt wurde. Zurück zum Command Mode mit <esc> ! - 'Y' File Compare Vergleicht entweder den "this" und "other" file, oder (mit geteiltem Bildschirm) die files in der oberen und unteren Hälfte. Anzeigen: "file compare: running ..." : der Prozess ist aktiv. "file compare: end of file" : in mind. einem von beiden Files. "file compare: no difference" : von hier bis zum Ende des Files. "file compare: difference found" : Cursor an 1. Differenz in beiden Files. - 'Z'ulu (nützlich für Macro-Ausführungen) - 'B'eep Einmaliges Hupen - 'P'ause 1 Sek. Pause - '!'system Mit '!' kann ein Kommando an das Betriebssystem abgesetzt werden, ohne den Editor zu verlassen. Beispiel: ! dir *.c > direc.txt <cr> - '&'system Wie '!', aber ohne "hit any key to continue", sinnvoll für Kommandos, die als Hintergrund-Prozess gestartet wurden.

6.4. Funktionstasten

Folgende Funktionstasten sind vorbelegt: - Die Cursor-Tasten - Cursor Up - Cursor Down - Cursor Left - Cursor Right bewegen den Cursor zeilen- und spaltenweise im File. - Home / Pos1 je nach Vorgeschichte: - Cursor Up --> Seite hoch - Cursor Down --> Seite runter - Cursor Left --> Anfang der Zeile - Cursor Right --> Ende der Zeile - Page Up / Bild ^ --> Seite hoch - Page Down / Bild v --> Seite runter - Control Character - ^A Löscht ab Cursor-Position bis zum Ende der Zeile - ^C Abbruch eines begonnen Kommandos, zurück zum Command Mode - ^D Umwandeln des Zeichens links vom Cursor in ein deutsches Sonder- zeichen (und wieder zurück): AOUaous <==> ÄÜÖäüöß. Damit können deutsche Sonderzeichen auch auf einer US-Tastatur erzeugt werden. - ^E Macro mit einem one-character-name wird ausgeführt, der aktuelle Mode (Command, Insert, Exchange) bleibt dabei erhalten. - ^F <Del> / <Entf> Löschen des Characters rechts neben dem Cursor - ^H <rubout> <backspace> Löschen des Characters links neben dem Cursor - ^K Cursor auf korrespondierende Klammer positionieren () [] {} <>, bzw. auf die Compiler-Switches "#if, #elif, #else, #endif" - ^N <FETN> siehe Kapitel "Online Calculator" - ^R <HEX> Eingabe eines Zeichens als Hex-Wert (Insert / Exchange Mode oder Eingabe in Status Zeile 2) - ^S <FETS> siehe Kapitel "Online Calculator" - ^V <FETS> wie ^S - ^U Undo: macht die Kommandos ^A, ^X und ^Z wieder rückgängig. Wenn die Cursor-Position zwischendurch verändert wird, kann man mit diesem Kommando auch Text-Teile verschieben. - ^X Löscht ab Cursor-Position bis zum Anfang der Zeile - ^Z Löscht die komplette Zeile - ^[ <esc> Abbruch eines Kommandos, Beenden einer String-Eingabe - Insert / Einfg --> Wechselt zwischen Insert- und Exchange-Mode. - Die <Fx>-Tasten - <F1> Online Hilfe: Zeigt eine Hilfsseite mit diversen Angaben an: Betriebssystem, Video Server, Anzahl Zeilen und Spalten, Größe des aktuellen Buffers, Aufzählung aller Kommandos, Anzeige der aktuellen Settings, Aufzählung der wichtigsten Control Character, Liste der "built-in macros" - <ALT F1> Betriebssystem Online Hilfe: Macro, der den Begriff unter der momentanen Cursor-Position extrahiert, und die Hilfsfunktion des jeweiligen Betriebssystems aufruft, z.B: - MS-DOS: qh <Begriff> - os/9 : help <Begriff> - unix : man <Begriff> Hinweis: Der Name der gewünschten Hilfsfunktion kann im File "MBEDIT.MAC" folgendermaßen geändert werden: a) mbedit mbedit.mac b) F<cr>m<ALT F1><esc> c) f!<esc> Der Cursor steht jetzt auf dem aktuellen Kommando. d) Kommando ändern (Leerzeichen am Ende beachten !). e) "Quit Exit" - <F3> Wandelt den Character unter dem Cursor nach lower case - <F4> Wandelt den Character unter dem Cursor nach upper case - <F5> Wandelt das Wort unter dem Cursor nach lower case - <F6> Wandelt das Wort unter dem Cursor nach upper case - Keyboard-Anpassung Auf einem VT-100-Terminal bzw. einer Workstation sind die Tasten z.T. etwas anders belegt als auf dem PC. <F1> - <F5> werden terminal-intern verarbeitet, das Anwenderprogramm weiß nichts von diesen Tasten. Dafür gibt es zusätzlich die Tasten: <F13> - <F14>, <HELP>, <DO>, <F17> - <F20>, <PF1> - <PF4> Um die wichtigsten Kommandos von mbedit auch auf einem VT-100-Terminal ausführen zu können, wurden die Tasten wie folgt umgeleitet: - <F13> / <F14> ==> Ctrl Cursor Left / Rigth (Macros) - <HELP> ==> <F1> - <DO> ==> <ALT F1> (Macro) - <F17> - <F20> ==> --- (bislang noch nicht belegt !) - <PF1> - <PF4> ==> <F3> - <F6>

6.5. Set Options

Die Angaben in eckigen Klammern zeigen die Standard-Einstellung an. - Autonl [No] Automatisches Einfügen von <nl>, bei Überschreitung des rechten Randes. - Bak_file [Yes] Bei "Quit Exit" bzw "Quit Update" wird ein Backup-File angelegt (Extension *.BAK). - Case [No] Bei "Find" und "Replace" wird nicht zwischen Groß- und Klein-Schreibung unterschieden. - Display [Yes] Die Ausführung von Macros wird angezeigt, der History Buffer wird mit den ausgeführten Macros beschrieben. - E_delimit [!"#%&'()*+,-./:;<=>?@[\]^`{|}~] Delimiter Set für Find Token Strings (siehe auch Set Option "K_token"). - File_num [2] Anzahl der parallel editierten Files (1 bis 10). - Highbit [No] 'N'o : Zeichen mit gesetztem 8. Bit werden als '?' dargestellt 'Y'es : Anzeige entsprechend dem PC-8 Zeichensatz. 'A'uto: Anzeige hängt vom "file_type" ab (bekannt = Yes) - Indent [Yes] Bei Eingabe eines <cr> in den aktuellen Text springt der Cursor in die neue Zeile, aber nicht auf Spalte 0, sondern unter das 1. Zeichen der vorherigen Zeile, das kein <space> oder <tab> ist. - K_token [No] "Find" und "Replace" suchen nicht nur nach sog. Token-Strings, d.h.: Strings, die durch einen Delimiter begrenzt werden. Delimiter sind alle Zeichen außer Buchstaben (auch deutsche Umlaute), Ziffern und Underscore '_'. Damit läßt sich der Variablenname "i" eindeutig von den vielen "i"s unterscheiden, die mitten in einem Wort stehen. - Leftcol [0] Die Spalte, die links auf dem Bildschirm angezeigt wird. Damit läßt sich der dargestellte Bereich nach links und rechts schieben, um überlange Zeilen anzeigen zu können. - Margin [4, 0, 76] Die Grenzen (Einrückung, links + rechts) für das Paragraph-Kommando. - Notab [Yes] Eingebene <tab>s werden zu n Blanks expandiert. - Only view [No] An- und Abschalten der Betriebsart "viewOnly". - Radix [Decimal] Zahlenbasis, mit der die numerischen Calc-Variablen (n0 - n9) in den Text eingesetzt werden (Insert / Exchange Mode) - 'A': Ascii - 'B': Binary - 'O': Octal - 'D': Decimal - 'H': Hex - Showfind [No] Bei Aufruf des "Find"- oder "Replace"-Kommandos mit Wiederholfaktor werden die Zeilen, in denen der Suchstring gefunden wurde, nicht zusammen angezeigt. Yes: Ergebnisse einer Mehrfach-Suche werden zusammen auf einer Bildschirm- seite angezeigt. - Tabs [8] Die Anzahl der Blanks, zu denen ein eingegebenes <tab> expandiert wird (wenn "Set Notab Yes"). - Viewrow [5] Nach Eingabe des View-Kommandos wird der Bildschirm neu ausgegeben und der Cursor steht anschließend in dieser Zeile. - Warning [2] Warning Beep Level, Steuerung der Hupe: - 0: nie hupen - 1: nur bei Bedienfehler hupen - 2: bei Fehlermeldungen und Bedienfehler hupen - sYntax higlighting [7,index] Anzeige mit speziellen Farben für Kommentare und/oder Keywords (Sprache c): - parameter 1: Bit-Kombinationen von - 1: Kommentare - 2: Keywords - 4: Zeichenketten Der Default-Wert für diesen Status hängt von der Filename-Extension ab: Alle bekannten Extensions werden behandelt mit sYntax-flag = 7. Eine weitere Voraussetzung for die Aktivierung dieser Möglichkeit ist die Existenz der entsprechenden Farb-Einträge im Macro-File (AFCV, AFKV, AFSV, SYn). - parameter 2: - index des file type (c, cpp, asm, ada, htm, ...) Die aktuell gültigen Indizes können mit 'M'acro 'L'ist angesehen werden. - *Wildcards [No] Wildcards (d.h. "Joker"-Zeichen) im Suchstring gibt es nicht, '?' und '*' werden behandelt wie alle anderen Zeichen auch. Yes: Ein Fragezeichen '?' im Such-String ersetzt jedes Zeichen, ein Stern '*' im Such-String ersetzt jeden String (auch einen leeren). - ~HomeDir [No] Ersetze '~' mit User-Home-Directory (bei Eingabe in Status-Zeile 2)