12. Editieren von Files ======================= ed, vi und andere Schäußlichkeiten Übersicht: ed - einfachster Editor im UNIX, zeilenorientiert, stellt keinerlei Anforderungen an das E/A-Gerät. Auch bei unbekanntem Terminal einsetzbar, wenn sonst nichts funktioniert. ed ist überall verfügbar. Man sollte wissen, daß es ihn gibt und sich im Notfall an die elementarsten Kommandos erinnern. Nicht geeignet für den täglichen Gebrauch. sed - Streameditor. Nicht für den Einsatz im Dialog geeignet. Nur für den Kommandozeileneinsatz geeignet. Die Editier- kommandos werden in der Kommandozeile angegeben. vi - Ältester bildschirmorientierter Editor im Unix. Sehr verbreitet. Es gibt kein Unix-System ohne vi. Das Unix muß den Bildschirmtyp kennen!! Gewöhungsbedürftige Nutzerschnittstelle. Es gibt vi-Fans und vi-Hasser. Für den täglichen Gebrauch geeignet. Für Leute die auf vielen verschiedenen Unix-Systemen zu Hause sind - ideal. Neuere Fassungen des vi vim - in Farbe und mit Syntaxunterstützung gvim - wie vim aber mit graphischer Unterstützung |
next | back | SS 2010 - 1 |
ex - Erweiterung von ed um vi emacs - Bildschirmorientierter Editor, der sowohl tastaturgesteuert (ursprüngliche Version ohne X-Unterstützung) als auch mausgesteuert (neue aktuelle Version mit X-Unterstütung - xemacs) arbeiten kann. Mächtigster Texteditor im Unix. Beliebig erweiterbar und programmierbar. Kann außer dem gleichzeitigem Editieren von mehreren Files noch Mail-Lesen, News-Lesen, Kompilieren u.s.w. Vielseitig einsetzbares Werkzeug. Leicht gewöhnungsbedürftig. Vorsicht!! Suchtgefahr, es soll Informatiker geben, die nicht mehr ohne emacs bzw. xemacs leben können. kwrite - Einfacher graphischer Editor (von kde). Nur bei X-Oberflächen einsetzbar (kedit). xedit - Einfacher graphischer Editor, oft verfügbar Mit weiteren Editoren ist zu rechnen. |
next | back | SS 2010 - 2 |
Der Editor xedit Motivation: Einfacher Editor für grafische Oberlächen. Wird von der Kommandozeile aus aufgerufen. Benötigt keinerlei Vorkenntnisse durch den Nutzer. nicht sehr leistungsstark. Aufruf: /usr/bin/xedit <Dateiname> # Linux /usr/openwin/bin/xedit <Dateiname> # Solaris Die Datei muß vorhanden sein!!!! Steuerkommandos: Kursorpositionierung über die Maus und Tastatur (Pfeiltastern, PgUp, PgDwn). Tastenkombinationen: Ctrl-a Zeilenanfang Ctrl-b ein Zeichen zurück Ctrl-d löschen Zeichen unter Kursor Ctrl-h löschen Zeichen vor Kursor Ctrl-k löschen vom Kursor bis Zeilenende Ctrl-m einfügen neue Zeile Ctrl-v eine Seite vorwärts Beispiel: xedit xxxxx |
next | back | SS 2010 - 3 |
Der Editor ed Motivation: Universelle Einsatzmöglichkeiten Leistungsstark durch reguläre Ausdrücke extrem einfach, aber umständlich. Aufruf: ed [-s] [-p<promptzeichen> | -p <promptzeichen>] [<Dateiname>] -s - silent - Unterdrückung von Ausschriften einiger Editier- Kommandos -p <promptzeichen> -p<promptzeichen> - Definition eines eigenen ED-Prompts Standard ist die leere Zeichenkette. Beispiele: ed ed -p "--->" ed "-p--->" ed xxx ed "-p--->" xxx Nach dem Aufruf gibt ED eine Zahl aus - Anzahl der Zeichen im File - oder eine Fehlermitteilung: xxxx: No such file or directory falls die Datei nicht existiert. In jedem Fall kann der im Editier-Puffer befindliche Text editiert werden. |
next | back | SS 2010 - 4 |
Arbeitsmodi des ED ED kennt zwei Arbeitszustände: 1. Kommandomodus 2. Eingabemodus Nach dem Start befindet sich ED immer im Kommandomodus, was durch die Ausgabe des Promptzeichen (standardmäßig leer) angezeigt wird. Die Datei ist in einen Arbeitspuffer eingelesen. Alle Operationen finden über dem Puffer statt. Wird ein falsches Kommando eingegeben, so quittiert ED dies mit der Ausgabe von "?" ohne das irgendetwas verändert wird. Eingabemodus Der Wechsel von Kommandomodus zu Eingabemodus erfolgt durch die Kommandos: i - insert - einfügen vor der aktuellen Zeile a - append - einfügen nach der aktuellen Zeile c - change - ändern der aktuellen Zeile, mehrere Zeilen können eingesetzt werden. Im Eingabemodus kann man nur in der aktuellen Zeile Korrekturen vornehmen. Bereits abgeschickte Zeilen können nicht verändert werden. In der aktuellen Zeile kann man durch ^U (kill) - die aktuelle Zeile löschen ^? (erase) - das letzte Zeichen in der aktuellen Zeile löschen Der Eingabemodus wird durch Eingabe eines einzelnen Punktes auf einer Zeile beendet. |
next | back | SS 2010 - 5 |
Kommandomodus Editierkommandos können nur im Kommandomodus ausgeführt werden!!! Allgemeine Aufbau eines Edit-Kommandos: [adresse1[,adresse2]] [edit-kommando [parameter]] adresse1 und adresse2 sind Adressen innerhalb der Datei Folgende Angaben sind für Adressen zulässig: . - Aktuelle Zeile $ - letzte Zeile der Datei <Zeilennummer> - Zeile mit der Zeilennummer <Zeilennummer> /regulärer Ausdruck/ - Adressiert die erste Zeile nach der aktuellen Zeile, die den regulären Ausdruch enthält (round robin), vorwärts suchen in der Datei ?regulärer Ausdruck? - Adressiert die erste Zeile vor der aktuellen Zeile, die den regulären Ausdruck enthält (round robin), rückwärts suchen in der Datei |
next | back | SS 2010 - 6 |
Schreibweisen für Adressen: [A1[,A2]] - zwei Adressen angebbar. Das Edit-Kommando wirkt für den Bereich von A1 bis A2. Es darf aber auch nur eine Adresse oder keine Adresse angegeben werden. Dann wirkt das Edit-Kommando nur auf die angegebene bzw. aktuelle Zeile. [A1] - eine Adresse angebbar. Das Edit-Kommando wirkt nur für die angegebene Zeile. Wenn keine Adresse angegeben ist, wirkt das Edit-Kommando auf die aktuelle Zeile. - - Keine Adressangabe, nur für Edit-Kommandos zum verlassen des ED. Editierkommandos zur Orientierung <NL> - die nächste Zeile wird angezeigt [A1[,A2]]p - anzeigen der Zeilen im Adressbereich [A1[,A2]]l - anzeigen der Zeilen im Adressbereich mit Zeilenendezeichen [A1[,A2]]n - anzeigen der Zeilen im Adressbereich mit vorangestellter Zeilennummern |
next | back | SS 2010 - 7 |
Kurzer Ausflug zu den regulären Ausdrücken Reguläre Ausdrücke werden von vielen Programmen im Unix benutzt um Zeichen- ketten zu beschreiben. Dabei sollen nicht nur einzelne Zeichenketten beschrieben werden, sondern Mengen von Zeichenketten. Reguläre Ausdrücke sind also Muster für Zeichenketten. Sie bestehen aus: normalen Zeichen des Alphabets, z.B. 0-9, a-z, A-Z, Sonderzeichen ungleich Metazeichen und Metazeichen: . * ^ $ [ ] \ Ein einfacher regulären Ausdruck besteht aus: - ein normales Zeichen des Alphabets - dem Metazeichen "\" gefolgt von einem weiteren Metazeichen dadurch wird das Metazeichen selbst Zeichen des Ausdrucks (ein Zeichen) - Metazeichen "^" - stellt den Zeilenanfang dar - Metazeichen "$" - stellt das Zeilenende dar - Metazeichen "." - stellt ein beliebiges Zeichen dar |
next | back | SS 2010 - 8 |
- Metazeichen: [...] - stellt ein Zeichen aus der Menge, der durch "[" und "]" eingeschlossenen Zeichen dar Abkürzung ist zulässig, z.B. [a-z] - alle Kleinbuchstaben [a-zA-Z] - alle Buchstaben [0-9] - alle Ziffern [m-s] - die Buchstaben mnopqrs - Metazeiche: [^...] - stellt ein Zeichen aus der Komplementmenge von [...] dar. [^a-z] - alle Zeichen außer Kleinbuch- staben Operatoren über einfache reguläre Ausdrücke - Konkatenation (Verkettung): <Z1><Z2> Z1 unmittelbar gefolgt von Z2. Z1, Z2 sind Zeichen oder Metazeichen "an" beschreibt also eine Zeichenkette, die die Buchstaben "a" und "n" unmittelbar hintereinander enthaelt, also: "an", "anmachen", "Kanne" - Gruppierungen: \(<regulaerer-Ausdruck>\) bedeuten das Gleiche wie <regulaerer-Ausdruck> also: "\(abc\)" entspricht "abc" |
next | back | SS 2010 - 9 |
- Häufigkeiten: <Z1>* : kein, einmaliges oder mehrmaliges Auftreten des Zeichens <Z1> "al*es entspricht "aes", "ales", "alles", "allles", "alllllles", ... <Z1>\{m\}: m-maliges Auftreten des Zeichens <Z1> "al\{2\}es" entspricht nur "alles" <Z1>\{m,\}: mindestens m-maliges Auftreten des Zeichens <Z1> "al\{2,\}es" entspricht "alles", "allles", .... <Z1>\{m,n\}: m- bis n-maliges Auftreten des Zeichens <Z1> "al\{2,3\}es" entspricht genau "alles" und "allles" |
next | back | SS 2010 - 10 |
Einige Beispiele: 1,$p /^meins/p /^$/n /^[ ]*$/n /ales/,/al*/p /ales/,/all*/p /ale*/p /ale*/n /ale./ /al.les/p /al.*les/p /a[lb]*es/p /.al/p /al\{3\}es/p /al\{2,3\}es/p /a[bl]\{2,3\}es/p /\(alles\)/p /\(alles \)*/p /\(alles \)\{2\}/p /\(alles \)\{1,\}/p /\(alles \)\{1,2\}/p noch eine Steigerung /\(alles\) \1/p /\([a-zA-z]\{1,\}\) \1/p |
next | back | SS 2010 - 11 |
Edit-Kommandos [A1]a - append Anfügen von Text nach der adressierten Zeile 0a ist erlaubt, bedeutet vor der ersten Zeile einfügen Beenden des Eingabemodus mit ".". [A1]c - change Ändern der adressierten Zeile. Eingabe von mehreren Zeilen erlaubt Beenden des Eingabemodus mit ".". [A1[,A2]]d - delete Streichen der adressierten Zeilen e <dateiname> - edit Editieren des angegebenen Files. Die Editierung des aktuellen Files wird beendet. Fall ungesicherte Änderungen vorhanden waren gibt es eine Fehlernachricht. Wird des E-Kommando sofort wiederholt, gehen die ungesicherten Änderungen verloren und das neue File wird editiert. |
next | back | SS 2010 - 12 |
f <dateiname> - file Neudefinition des Dateinamen für Schreiboperation. h - help Kommentierung des letzten Fehlers H - help-Modus Es werden immer Fehlertexte anstelle des "?" ausgegeben. [A1]i - insert Einfügen nach der adressierten Zeile. Es können beliebig viele Zeilen eingefügt werden. Beenden des Eingabemodus mit ".". [A1,A2]j - join Zusammenfügen der adressierten Zeilen zu einer Zeile (NL wird entfernt). Es muß mehr als eine Zeile adressiert sein. [A1[,A2]]m<Adresse> - move Transportieren der adressierten Zeilen hinter die Adresse <Adresse>. <Adresse> ist eine Zeilennummer. Die ursprünglichen Zeilen werden gelöscht. |
next | back | SS 2010 - 13 |
P - promt Standardmäßig arbeitet ED ohne Prompt. Das Edit-Kommando "P" schaltet den Prompt "*" ein. Erneute Eingabe von P schaltet den Prompt wieder aus. q - quit Beeden von ED. Erzeugt einen Fehler, wenn vorher die Änderungen nicht mit dem Edit-Kommando "w" geschrieben wurden. Zweimal "q" hintereinander ignoriert den Fehler. Q - quit Wie Edit-Kommando "q" nur ohne Fehlerausschrift. [A1]r <dateiname> - read Lesen der Datei <dateiname> hinter die adressierte Zeile. den Prompt wieder aus. |
next | back | SS 2010 - 14 |
[A1[,A2]]s/<regulärer ausdruck>/<string>/ - substitute [A1[,A2]]s/<regulärer ausdruck>/<string>/g [A1[,A2]]s/<regulärer ausdruck>/<string>/<nn> Ersetzen des regulären Ausdrucks xregulärer ausdruck> in den adressierten Zeilen durch den angegebenen String <string>. Standardmäßig erfolgt nur eine Ersetzung pro Zeile. Wird "g" spezifiziert werden alle möglichen Ersetzungen pro Zeile durchgeführt. Wird eine Nummer (1 <= <nn> <= 512) spezifiziert, so werden maximal <nn> Ersetzungen pro Zeile durchgeführt. Ersetzungen können sich über mehrere Zeilen erstrecken. Das abschließende <NL>-Zeichen sind durch "\" zu maskieren. [A1[,A2]]t<Adresse> - transport Kopieren der adressierten Zeilen hinter die Adresse <Adresse>. <Adresse> ist eine Zeilennummer. Die ursprünglichen Zeilen bleiben erhalten. u - undo Die letzte Änderung wird rückgängig gemacht. |
next | back | SS 2010 - 15 |
[A1[,A2]w [<dateiname>] - write Schreiben der adressierten Zeilen in die Datei <dateiname>. Ist kein Dateiname angegeben, wird der Name der zuletzt gelesenen Datei benutzt. Ist keine Adresse angegeben, werden alle Zeilen geschrieben. !<unix-kommando> - exec Unix-Kommando Ausführen des Unix-Kommandos <unix-kommando>. [[+]<nn>] - next Positionieren auf die neue Zeile. Keine Adressangabe - nächste Zeile <nn> als Adressangabe - Angegebene Zeilennummer +<nn> als Adressangabe - aktuelle Zeilennummer plus angegebene Nummer ist neue aktuelle Zeilennummer |
next | back | SS 2010 - 16 |
Kommandos, die das Leben leichter machen: <nn1>,<nn2>m<A1> - Verschieben der angegebenen Zeilen nn1 bis nn2 an die Adresse A1 <nn1>,<nn2>t<A1> - Kopieren der angegebenen Zeilen nn1 bis nn2 an die Adresse A1 m+ - aktuelle Zeile mit der nachfolgenden Zeile vertauschen m-- - aktuelle Zeile mit der vorangehenden Zeile vertauschen m$ - aktuelle Zeile ans Dateiende verschieben m0 - aktuelle Zeile an den Dateianfang verschieben t. - aktuelle Zeile doppeln g/^/m0 - File umdrehen |
next | back | SS 2010 - 17 |
Der Bildschirmeditor vi Varianten des vi: vim, gvim, elvis, xvi Ist ein Standardeditor des UNIX-Systems Arbeitet wie der ED pufferorientiert, d.H. die Daten werden in einen Puffer gelesen und beim Beenden der Editierarbeiten in das File zurückgeschrieben. Während der Editierarbeiten wird eine Kopie angelegt, die einen fast aktuellen Stand der Editierarbeiten enthält. Der VI ist vom Terminaltyp abhängig!!!!!!! Umgebungsvariable TERM muß richtig gesetzt sein, d.h. muß dem Typ des benutzten Terminals entsprechen. Anschauen der Umgebungsvariablen TERM: echo $TERM Prüfen ob das Terminal vom System unterstützt wird: tput -T <Terminalname> longname z.B. tput -T xterm longname xterm terminal emulator (X Window System) tput -T vt100 longname dec vt100 (w/advanced video) |
next | back | SS 2010 - 18 |
Datenbasis für Terminalinformationen: /etc/termcap ( /usr/share/misc/termcap ) - Alte Datenbasis Enthält alle Beschreibungsinformationen in einem File - lesbar /usr/share/terminfo - Neue Datenbasis Enthält pro Anfangsbuchstabe oder Anfangsziffer von Terminalnamen ein Directory. In diesen Directories ist dann für jedes Terminal ein File mit Beschreibungsdaten enthalten (nicht lesbar). Anzeigen von terminfo-Dateien: infocmp z.B. infocmp vt100 infocmp infocmp $TERM Erzeugen einer terminfo-Datei aus einer Quelle: tic Initialisieren, Prüfen eines Terminals tput tput -T <Terminalname> longname - s.o. tput [-T <Terminalname>] init - initialisieren tput [-T <Terminalname>] reset - rücksetzen |
next | back | SS 2010 - 19 |
Prüfen der Umgebungsvarialben TERM echo $TERM printenv TERM env | grep TERM Setzen der Umgebungsvariablen TERM sh-Umgebung (bash-Umgebung) TERM=xterm export TERM tput init csh-Umgebung (tcsh-Umgebung) setenv TERM xterm tput init |
next | back | SS 2010 - 20 |
VI besitzt zwei Darstellungsmodi: 1. vi-Modus - bildschirmorientiert 2. ex-Modus - zeilenorientiert zwischen den Modies kann gewechselt werden: vi-Modus --> ex-Modus - Q für mehrere ex-Kommandos : für ein ex-Kommando ex-Modus --> vi-Modus - vi Der Leistungsumfang und der Kommandoaufbau im ex-Modus entspricht im wesentlichen den Arbeitsmöglichkeiten des ED. Aufruf des VI vi [-r <datei>] [-w<nn>] [-R] [-L] [-c <kommando> [<datei1>] [<datei2>] ... -r <datei> - recover - Editieren der Datei <datei>, deren Änderung vorher nicht beendet wurde (Systemabsturz, vi-Abbruch) -w <nn> - window size - <nn> Anzahl der Zeilen im Fenster -R - read only - der VI eröffnet das File nur zum Lesen (view) -c <kommando> - ausführen des EX-Kommandos <kommando> beim Start des VI -L - list - auflisten aller "abgestürzten" VI-Files <datei1> - zu editierendes File z.B. vi b1 view b1 vi -L vi -r cb3 |
next | back | SS 2010 - 21 |
Arbeitszustände des VI direkter Kommandomodus (Kommandomodus) Eingabemodus Zeilen-Kommandomodus Nach dem Starten befindet sich der VI im Kommandomodus. Der Wechsel in den Eingabemodus erfolgt durch eines der folgenden Kommandos: i - einfügen vor dem Cursor (insert) I - einfügen am Zeilenanfang der aktuellen Zeile a - einfügen nach dem Cursor (append) A - einfügen am Zeilenende der aktuellen Zeile o - einfügen vor der aktuellen Zeile (open) O - einfügen nach der aktuellen Zeile c - ersetzen eines Textobjektes z.B. cw - eines Worte C - ersetzen in der aktuellen Zeile bis Zeilenende s - ersetzen des Zeichens unter dem Cursor S - ersetzen der ganzen Zeile unter dem Cursor R - Überschreiben des Textes unter dem Cursor |
next | back | SS 2010 - 22 |
Im Eingabemodus können Korrekturen nur an der aktuell eingegeben Zeile vorgenommen werden: erase - löschen des letzen Zeiches (DEL-Taste) kill - löschen der zuletzt eingegebenen Zeile (<cntl>+U) <cntl>+W - löschen des zuletzt eingegeben Wortes (mehrfach) Der Wechsel vom Eingabemodus in den Kommandomodus (beenden des Eingabemodus) erfolgt durch: ESC-Taste Folgende Tasten haben mehrfache Funktionen: ESC-Taste: Eingabemodus: Eingabeende Zeilen-Kommandomodus: Abbruch des Kommandos sonst: Fehlersignal <cntl>+C - beenden der momentan laufenden Aktion - immer <NL> - Zeilen-Kommandomodus: Abschluß einer Kommandoeingabe und Wechsel in den Kommandomodus EX-Modus: Abschluß einer Kommandoeingabe Eingabemodus: neue Zeile erzeugen, alte Zeile in den Puffer Kommandomodus: Positionieren des Cursors am nächsten Zeilen- anfang. |
next | back | SS 2010 - 23 |
Wichtige VI-Kommandos Cursor positionieren durch Suchen: /<string> - suche String vorwärts ?<string> - suche String rückwärts n - wiederholen des letzten Suchkommandos N - wiederholen des letzten Suchkommandos rückwärts Cursor positionieren: (Kommando wird nicht angezeigt): h - Cursor ein Zeichen nach links (Cursor-Taste erlaubt) j - Cursor eine Zeile runter (Cursor-Taste erlaubt) k - Cursor eine Zeile hoch (Cursor-Taste erlaubt) l - Cursor ein Zeichen nach rechts (Cursor-Taste erlaubt) w - Cursor ein Wort nach rechts (über Zeilenende hinaus) G - Cursor auf letzte Zeile positonieren <nn>G - Cursor auf <nn>-te Zeile positionieren. 0 - Cursor am Zeilenanfang positionieren $ - Cursor am Zeilenende positionieren |
next | back | SS 2010 - 24 |
File verändern: (Kommando wird nicht angezeigt): x - Zeichen unter Cursor löschen dw - Wort ab Cursor bis Wortende löschen dd - Zeile unter Cursor löschen r<Zeichen> - Zeichen unter Cursor löschen J - nachfolgende Zeile wird an die aktuelle Zeile angehangen u - undo - letzte Änderung rückgängig machen eventuell mehrfach anwendbar a<Text><ESC> - einfügen des Textes <Text> nach dem Cursor (auch mehrere Zeilen) A<Text><ESC> - einfügen des Textes <Text> am Ende der Zeile (auch mehrere Zeilen) i<Text><ESC> - einfügen des Textes <Text> vor dem Cursor (auch mehrere Zeilen) I<Text><ESC> - einfügen des Textes <Text> am Anfang der Zeile (auch mehrere Zeilen) o<Text><ESC> - einfügen des Textes <Text> vor der aktuellen Zeile (auch mehrere Zeilen) O<Text><ESC> - einfügen des Textes <Text> nach der aktullen Zeile (auch mehrere Zeilen) c<Text><ESC> - Wort ab Cursor durch Text <Text> ersetzen (auch mehrere Zeilen) |
next | back | SS 2010 - 25 |
Änderung speichern und VI verlassen: ZZ - File schreiben und VI verlassen :wq - File schreiben und VI verlassen :w - File schreiben :q - VI verlassen (wenn nichts geändert wurde) :q! - VI immer verlassen ohne Speicherung der Änderungen |
next | back | SS 2010 - 26 |
Weiter sinnvolle VI-Kommandos s<Text><ESC> - Zeichen an der Cursorposition duch Text <Text> ersetzen (auch mehrere Zeilen) <nn>s<Text><ESC> - <nn> Zeichen an der Cursorposition duch Text <Text> ersetzen (auch mehrere Zeilen) S<Text><ESC> - aktuelle Zeile duch Text <Text> ersetzen (auch mehrere Zeilen) :s/<alt>/<neu> - in der aktuellen Zeile Zeichenkette <alt> durch Zeichenkette <neu> ersetzen (einmalig) :s/<alt>/<neu>/g - in der aktuellen Zeile Zeichenkette <alt> durch Zeichenkette <neu> ersetzen (mehrmalig) :1,$s/<alt>/<neu> - im gesammten File Zeichenkette <alt> durch Zeichenkette <neu> maximal einmal pro Zeile ersetzen. :1,$s/<alt>/<neu>/g - im gesammten File Zeichenkette <alt> durch Zeichenkette <neu> ersetzen (mehrmalig) :r <Dateiname> - Einlese der Datei <Dateiname> hinter die aktuelle Zeile :e <Dateiname> - Editieren des Files <Dateiname> . - Ausführen der letzten Änderung im File an der aktuellen Position des Cursors :<nn> - Gehe zur <nn>-ten Zeile |
next | back | SS 2010 - 27 |
Weiter Positionierkommandos zum Blättern <cntrl>f - Eine Bildschirm vorwärts blättern <cntrl>b - Eine Bildschirm rückwärts blättern <cntrl>d - Eine halben Bildschirm vorwärts blättern <cntrl>u - Eine halben Bildschirm rückwärts blättern |
next | back | SS 2010 - 28 |
Pufferverwaltung Der VI benutzt Puffer, um sich einzelne oder mehrere Zeilen zu merken. Es gibt einen allgemeinen Puffer, der bei bestimmten Kommandos automatisch gefüllt wird und die nutzerspezifischen Puffer mit den Namen a,b,c,d,...,z. Kommandos für die Pufferverwaltung des allgemeinen Puffers yy oder Y - aktuelle Cursorzeile in den allgemeinen Puffer kopieren <nn>yy oder <nn>Y - <nn> Zeilen einschließlich der aktuellen Cursozeile in den allgemeinen Puffer kopieren dd - aktuelle Cursorzeile löschen und in den allgemeinen Puffer übernehmen <nn>dd - <nn> Zeilen einschließlich der aktuellen Cursorzeile löschen und in den allgemeinen Puffer übernehmen p (kleines p) - (put) allgemeinen Puffer hinter die aktuelle Cursorzeile kopieren P (großes P) - (Put) allgemeinen Puffer vor die aktuelle Cursorzeile kopieren |
next | back | SS 2010 - 29 |
Textobjekte im VI Textobjekte müssen für folgende VI-Kommandos spezifziert werden: c - ändern d - löschen y - sichern Folgende Textobjekte werden unterstützt: Worte, Sätze, Absätze, Abschnitte Worte - Folge von Buchstaben, Ziffern und Unterstreichungsstrichen Wort-Textobjekte: w - Wort ab Cursorposition bis Interpunktionszeichen nach rechts (ausschließlich) W - Wort ab Cursorposition bis Interpunktionszeichen nach rechts (einschließlich) b - Wort ab Cursorposition bis Interpunktionszeichen nach links (ausschließlich) B - Wort ab Cursorposition bis Interpunktionszeichen nach links (einschließlich) e - Ende eines Worts ab Cursorposition nach rechts ohne Interpunktionszeichen E - Ende eines Worts ab Cursorposition nach rechts mit Interpunktionszeichen |
next | back | SS 2010 - 30 |
Sonstiges ^ - rückwärts bis Zeilenanfang $ - vorwäts bis Zeilenende G - vorwärts bis Dateiende <nn>G - vorwärts bzw. rückwärts bis zur <nn>-ten Zeile Einiger Hilfskommandos :!<UNIX-Kommando> - Ausführen des UNIX-Kommandos <UNIX-Kommando> <cntl>l - Bildschirm neu aufbauen z <NL> - Aktuelle Cursorzeile wird an den oberen Bildschirmrand verschoben (scrollen) z. - Aktuelle Cursorzeile wird in die Mitte des Bildschirms verschoben (scrollen) z+,z- - aktuelle Cursorzeile vorwärts und rückwärts scrollen |
next | back | SS 2010 - 31 |
set-Optionen Durch Optionen werden die Eigenschaften des VI beeinflußt. Die Optionen können im File ~/.exrc oder ~/.vimrc abgelegt werden, so daß sie beim Starten des VI sofort gesetzt sind. Optionen könenn durch ":set" manipuliert werden. :set <option>=<Wert> - Wert eintragen :set <option> - Option einschalten :set <no-option> - Option ausschalten :set <option>? - Option anzeigen :set all - Alle Optionen anzeigen :set - geänderte Optionen anzeigen :syntax on - Syntaxprüfung einschalten :gui - grafische Oberfläche einschalten Abkürzungen für Optionsnamen sind zulässig. <option> autoident (ai,noai) - Automatisches einrücken autowrite (aw,noaw) - Automatisches sichern (verstärkt) ignorecase (ic,noic) - Groß- und Kleinbuchstaben beim Suchen ignorieren list (list,nolist) - Anzeigen von Tabulatorenzeichen magic (magic,nomagic) - Bedeutung von Metazeichen für reguläre Ausdrücke einschalten, sonst nur ^ und $ unterstützt number (nu,nonu) - Zeilennummerierung einschalten shiftwidth (sw=,sw=8) - Länge derSoftwaretabulatoren bestimmen |
next | back | SS 2010 - 32 |
Zum Üben für jeden zu Hause: vimtutor |
next | back | SS 2010 - 33 |
Der Editor emacs / xemacs emacs ist einer der mächtigsten Editoren im UNIX. Er ist beliebig erweiterbar und programmierbar. Erfinder: R.Stallmann (Free Software Foundation) xemacs Ableitung von emacs mit gleicher Funktionalität. emacs befindet sich nach dem Start immer im Eingabemodus Kursortasten, Scroll-Tasten und Maus können zur Positionierung benutztwerden. Steuerkommandos beginnen mit: <CNTL> <ALT> <CNTL>+<SHIFT> <ALT>+<SHIFT> emacs-Kommandos gibt es zwei Eingabemöglichkeiten: 1. Steuerkommando-Anfang + Kommandobuchstabe 2. <ALT>+X <Kommandoname> <Enter> z.B. streichen eines Zeichens: <CNTL>D <ALT>+X delete-char Sollte <ALT>+X nicht unterstützt werden, so funktioniert <ESC>+X |
next | back | SS 2010 - 34 |
Starten und Beenden des emacs starten: emacs <dateiname> beenden: <CNTL>X<CNTL>C emacs fragt nach, ob gespeichert werden soll Laden und Speichern von Dateien <CNTL>X<CNTL>F <dateiname> - Laden einer Datei <CNTL>X<CNTL>W <dateiname> - Schreiben einer Datei <CNTL>X<CNTL>S - Schreiben aller Dateien <CNTL>X S - Schreiben aller Dateien <CNTL>X I - Datei einfügen <CNTL>Z - emacs in den Hintergrund Cursor positionieren Cursortasten, Seite vorwärts, Seite rückwärts <ALT> < - Dateianfang <ALT> > - Dateiende <ALT>X gotoline <enter> nn - gehe zu Zeile nn ( <ALT>M? ) <ALT>X line-number-mode - Zeilennummerierung ein-/ausschalten |
next | back | SS 2010 - 35 |
Löschen <Backspace-Taste> - Zeichen löschen <CNTL>D - Zeichen löschen <ALT>D - Wort löschen <CNTL>K - bis Zeilenende löschen <ALT>0<CNTL>K - bis Zeilenanfang löschen (<ALT> NULL <CNTL>K) Suchen <CNTL>S <Suchtext> - vorwärts suchen <CNTL>S <ALT>N - weiter vorwärts suchen <CNTL>R <Suchtext> - rückwärts suchen <CNTL>S <ALT>P - weiter rückwärts suchen Suchtext ist String <CNTL><ALT>S <Suchtext> - vorwärts suchen <CNTL><ALT>R <Suchtext> - rückwärts suchen Suchtext ist regulärer Ausdruck |
next | back | SS 2010 - 36 |
Editierkommandos <ALT>X overwrite-mode - umschalten zwischen Overwrite- und Insert- Modus <ALT>C - Buchstabe unter Kursor groß, den Rest des Wortes klein <ALT>L - Buchstabe unter Kursor klein, den Rest des Wortes klein <CNTL>T - Vertauschen von zwei Buchstaben <ALT>T - Vertauschen von zwei Wörtern Online-Hilfe <F1> - F1-Taste <F1><F1> - Übersicht über Hilfsmemü <F1> a <Schlüsselwort> - Hilfstexte zum Thema des Schlüsselwortes <F1> b - Übersicht Tastenkürzel <F1> f <Kommando> - Übersicht zum Kommando <Kommando> |
next | back | SS 2010 - 37 |
Aufruf von UNIX-Kommandos <ESC>!<kommando> - Ausführen des Kommandos <Kommando> Ergebnis wird in einem anderen Fenster angezeigt Fenster kann mit <CNTL>X0 gelöscht werden. <ALT>x shell - Starten einer Shell im Fenster und vieles Andere mehr |
back | SS 2010 - 38 |