SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

GUIDES UND TUTORIAL

Bildschirmeditor vi

Der Editor vi ("vi" steht für "visual") ist ein bildschirmorientierter Editor, d. h. der Text ist in seiner aktuellen Version auf dem Bildschirm zu sehen. Es erfolgt hier nur ein Überblick der Möglichkeiten des vi. Programmaufruf:

vi Dateiname

Ist die Datei vorhanden, wird sie in den Editorpuffer geladen, andernfalls wird sie neu angelegt. Nach dem Aufruf des vi befindet sich der Benutzer im Kommandomodus. Die Arbeit spielt sich wie beim ed immer in zwei Ebenen ab:
  • Kommandomodus: Freies Positionieren innerhalb des Textes, Umsetzen von Textblöcken,
    Schreiben und Lesen von Dateien, Löschen von Textblöcken und Aufruf von UNIX-Kommandos.
  • Eingabemodus: Einfügen von Text oder Überschreiben vorhandener Textpassagen.

    Das Umschalten zwischen den Modi erfolgt mit der ESC-Taste ([ESC]). Die Handhabung des Kommandomodus des vi macht die Bedienung für den Anfänger etwas ungewohnt. Die Cursorpositionierung erfolgt mit verschiedenen Tasten, für die Eingabe von Dateibefehlen oder anderen Funktionen (z. B. Suchen/ersetzen) ist die Eingabe eines Doppelpunktes nötig. Man befindet sich dann in ex-Modus, der ähnliche Eigenschaften hat, wie der ed.

    Bleiben wir gleich bei den ex-Befehlen. Nach der Eingabe des : springt der Cursor in die letzte Zeile und erlaubt die Eingabe eines ex-Befehls, der mit der Return-Taste abgeschlossen wird. Es sind nach dem Doppelpunkt alle ed-Befehle möglich.Für den Einstieg genügen:

    :wText auf die Platte schreiben
    :w!Text auf die Platte schreiben, Schreibschutz ignorieren
    :wqText auf die Platte schreiben und vi beenden
    [ESC] Z Zwie :wq
    :xwie :wq
    :w DateiText auf die angegebene (andere) Datei schreiben
    w >> DateiText an die angegebene Datei anhängen
    :qAbbrechen, ohne den Text auf Platte zu schreiben.
    Bei Änderungen im Text erfolgt eine Warnung und kein Abbruch.
    :q! Abbrechen, ohne den Text auf Platte zu schreiben.
    :r DateiText aus der angegebenen Datei nach der momentanen Zeile einfügen.
    :e DateiNeue Datei bearbeiten (der Textpuffer wird überschrieben). Ist die aktuelle Datei noch nicht gespeichert worden, erfolgt eine Warnung.
    :e! DateiNeue Datei bearbeiten (der Textpuffer wird immer überschrieben).
    :nwechselt zur nächsten geladenen Datei (falls beim Aufruf mehr als eine Datei angegeben wurde).

    Umschalten in den Eingabemodus

    a(append) Eingabe rechts vom Cursor
    A Eingabe am Zeilenende
    i(insert) Engabe links vom Cursor
    IEingaben am Zeilenanfang
    oEingabe ab der aktuellen Zeile, d.h. in der folgenden Zeile, Spalte 1.
    OEingabe in der vorhergehenden Zeile, Spalte 1.

    Wenn es die Hardware ermöglicht, ändert sich die Form des Cursors beim Wechsel zwischen Eingabe- und Kommandomodus. Bei vielen vi-Versionen wird der Eingabemodus unten rechts am Bildschirm angezeigt ('append mode', 'input mode');

    Umschalten in den Kommandomodus

    Der Eingabemodus wird durch Drücken der ESC-Taste verlassen und somit der Kommandomodus aktiv.

    Blättern auf dem Bildschirm

    CTRL-FEine Bildschirmseite vorwärts
    CTRL-BEine Bildschirmseite rückwärts
    CTRL-DEine halbe Bildschirmseite vorwärts
    CTRL-LBildschirm neu aufbauen

    Cursorpositionierung (im Kommandomodus)

    Normalerweise ist der vi an die Pfeiltasten der Tastatur richtig angepaßt. Das muß aber nicht immer so sein. Deshalb helfen manchmal nur die folgenden Möglichkeiten (Auswahl):

    hZeichen links (auch Backspace)
    l Zeichen rechts (auch blank)
    k Spalte höher
    jSpalte tiefer
    b Wortanfang
    eWortende
    wAnfang nächstes Wort
    HAnfang erste Zeile des Bildschirms
    LAnfang letzten Zeile des Bildschirms
    0(Null) Zeilenanfang
    $Zeilenende
    RETURNnächste Zeile
    nG(Go) Gehe zu Zeile n. n ist eine Zeilennummer. Fehlt die Zahl, wird zur letzten Zeile der Datei gesprungen.
    %sucht zur aktuellen Klammer die korrespondierende öffnende bzw. schließende Klammer

    Löschen von Text (im Kommandomodus)

    xZeichen unter dem Cursor löschen
    XZeichen vor dem Cursor löschen
    dwab Cursorposition bis Wortende löschen
    dbab Cursorposition bis Wortanfang lö
    [n] ddn ganze Zeilen löschen. Falls n fehlt, wird eine Zeile gelöscht.
    Dab Cursorposition bis Zeilenende löschen

    Text ändern:

    Änderungskommandos wechseln automatisch in den Eingabemodus, der mit der ESC-Taste verlassen werden muß.

    rZeichen ersetzen (kein Abschluß mit ESC)
    ~Wechsel Groß-/Kleinbuschst. (kein Abschluß mit ESC)
    RMehrere Zeichen ersetzen
    sEin Zeichen ersetzen und zusätzliche Zeichen anschließend einfügen
    ccGesamte Zeile ändern
    cwWort ändern
    Cab Cursorposition bis Zeilenende ändern

    Suchen nach Zeichen oder Strings

    fxZeichen "x" in der momentanen Zeile suchen (vorwärts)
    FxZeichen "x" in der momentanen Zeile suchen (rückwärts)
    Die folgenden Suchkommandos müssen mit der Return-Taste abgeschlossen werden
    /strString "str" vorwärts in der Datei suchen
    ?strString "str" rückwärts in der Datei suchen
    //Letzten Suchbefehl wiederholen (vorwärts)
    ??Letzten Suchbefehl wiederholen (rückwärts)

    Sonstige Kommandos

    .Letztes Kommando wiederholen
    JZeilen verbinden (nächste Zeile anhängen)
    uLetzten Befehl rückgängig machen
    UAktuelle Zeile wiederherstellen
    CTRL-gZeilennummer und Dateiinfo zeigen
    CTRL-vNächstes Zeichen transparent eingeben (z. B. Steuerzeichen)
    :! cmdVerläßt vi temporär und führt das Kommando cmd aus (ggf. Rückkehr mit exit).
    :r! cmdFügt die Ausgabe von cmd ab Cursorposition ein.
    !! cmdbenutzt aktuelle Zeile als Eingabe für cmd und ersetzt durch dessen Ausgabe.

    Zum Kopieren dient der y-Befehl (yank), mit dem Textteile in einen Puffer kopiert werden. "y" wird in der Regel mit einem zweiten Steuerbuchstaben kombiniert, der angibt, wieviel Text gepuffert wird (z. B. "yw", "y$"). Eine ganze Zeile wird mit "yy" oder "Y" kopiert. Vor "yy" kann noch die Anzahl der zu kopierenden Zeilen stehen (z. B. 12yy). Das Einfügen des Kopierten Textes geht dann mit p (vor dem Cursor) oder P (nach dem Cursor).

    Zusätzlich bietet der vi weitere Steuerungsfunktionen für den Editor und einen Makromechanismus. Kommandofolgen können damit durch ein einziges Befehlswort abgerufen werden. Weitere Infos auf den vi-Manualpages.

    Weitere Techniken:

    • Zeile verschieben:
      Zeile mit dd löschen
      Zur neuen Position wechseln
      Zeile mit p (vor dem Cursor)
      oder P (nach dem Cursor) einfügen

    • Zeile kopieren:
      Zeile mit yy in den Puffer kopieren
      Zur neuen Position wechseln
      Zeile mit p (vor dem Cursor)
      oder P (nach dem Cursor) einfügen

    • Ein paar einfache Tricks:
      zwei aufeinanderfolgende Zeichen vertauschen: xp
      zwei aufeinanderfolgende Zeilen vertauschen: ddp
      eine Zeile duplizieren: yyp
    • Mehrere Zeilen verschieben oder kopieren:
      Mehrere Zeilen werden durch Voranstellen der Zeilenzahl vor "dd" oder "yy" in den Puffer gebracht. Alles weitere wie oben.

    • Weitere Puffer:
      Neben dem anonymen Puffer können 26 weitere Pufferbereiche verwendet werden, die durch einen Buchstaben ("a" - "z") bezeichnet werden. Dazu wird ein Doppelapostroph und der Puffername vor den Befehl gestellt, z. B.:

      "ayykopiere Zeile in Puffer a
      "b6yykopiere die nächsten 6 Zeilen in Puffer b
      "apInhalt Puffer a nach dem Cursor einfügen

    • Blöcke von einer Datei in die andere übertragen:
      Mit dem Kommando :e <dateiname> kann eine neue Datei bearbeitet werden, ohne den vi zu verlassen.
      vi mit der ersten Datei aufrufen, z. B.:
      vi foo.txt
      Textblock mit den Yank-Kommando in einen Puffer schreiben:
      "f10yy (10 Zeilen in Puffer f)
      neue Datei holen, z. B.:
      :e bar.txt
      an die gewünschte Stelle gehen und Puffer einfügen:
      "fp

    • Weitere Steuerfunktionen für reguläre Ausdrücke:
      Im vi gibt es noch zwei Steuerfunktionen für RA, die sich auf den Anfang oder das Ende eines Wortes beziehen (Wortanfang/-Ende wird durch Leerzeichen oder Satzzeichen identifiziert).

      \<Markiert den Wortanfang bei der Mustersuche
      \>Markiert das Wortende bei der Mustersuche

    • Blöcke selektieren:
      Da bei allen ex-Kommandos reg. Ausdrücke als Positionsbestimmung möglich sind, können auch Blöcke über Suchbegriffe selektiert werden. Sei beispielsweise folgender Text gegeben:

      Das Betriebssystem UNIX blickt auf eine lange Vergangenheit
      zurück. Ursprünglich wurde es für PDP-Rechner der
      Firma DEC entwickelt und sollte hauptsächlich die Bedürfnisse
      von professionellen Softwareentwicklern befriedigen. Heute ist UNIX auf
      Workstations mit 64-Bit-Prozessoren zugeschnitten. Zu den Neuerungen
      gehören die Einführung von Threads, mit denen ein Programm
      mehrere Funktionen gleichzeitig ausführen kann. Ebenfalls neu
      sind Echtzeitfunktionen mit denen Programmlaufzeiten vorhersagbar sind.
      Insbesondere für Datenbanken ist die Möglichkeit, sehr große
      Dateien verarbeiten zu können, von nicht unerheblicher Bedeutung.

      Die beiden letzten Zeilen sollen nach vorne verschoben werden.
      :/Echtzeitfunktionen/,/Bedeutung/ mo /UNIX/

    • Weitere Beispiele für globales Suchen und Ersetzen:
      Das Leerzeichen wird in den Beispielen als "_" dargestellt. Das Prozentzeichen (%) ist eine Abkürzung für 1,$ - also für die Bearbeitung der ganzen Datei.
      1. Ersetzen Punkt durch Semikolon in den ersten 10 Zeilen:
        :1,10s/\./;/g
      2. Alle Worte "Hilfe" oder "hilfe" durch "HILFE" ersetzen:
        :%s/[Hh]ilfe/HILFE/g
      3. aufeinanderfolgende Leerzeichen durch ein einziges ersetzen
        :%s/_ _*/_/g
      4. alle Leerzeilen löschen:
        :g/^$/d
      5. alle Zeilen löschen, die entweder leer sind oder nur Leerzeichen enthalten:
        :g/^_*$/d
      6. Wie wir gesehen haben, können geklammerte Terme durch Backslash und die Nummer des Ausdrucks referiert werden. Der folgende Ausdruck ersetzt alle führenden Leerzeichen aller Zeilen:
        %s/^_ _*\(.*\)/\1/
      7. Einfügen von 3 Leerzeichen am Anfang jeder Zeile:
        :%s/^/_ _ _/
      8. Die Reihenfolge zweier Texte in einer Zeile vertauschen, die durch einen Gedankenstrich getrennt sind; so soll aus more - Dateien anzeigen die Zeile Dateien anzeigen - more entstehen. Zur besseren Verständlichkeit ist der Ausdruck durch Leerstellen strukturiert, die man bei der Eingabe natürlich weglassen muß (das Leerzeichen wird hier durch "_" dargestellt):
        %s / \(.*\) _-_ \(.*\) / \2 _-_ \1 /

    Makros

    Makros sind nichts weiter, als die Zusammenfassung von vi-Kommandos unter einer Taste. Man kann so häufig benutzte Tastenbetätigungen augf eine Taste legen. Bei der Definition von Makros sollten Sie immer davon Ausgehen, daß sich der vi im Kommandomodus befindet. Die Makros lassen sich auch dauerhaft in der Datei .exrc im eigenen Homedirectory speichern. Sie werden dann immer beim Aufruf des vi geladen. In .exrc lassen sich auch andere vi-Voreinstellungen vornehmen (siehe vi-Manualpage, set-Kommando). Die Definition eines Makros ist recht einfach (entweder als Zeile in .exrc oder im ex-Modus, also eingeleitet durch Doppelpunkt:

    map <Makroname> <Kommandofolge>

    MIt map ohne Parameter gibt es eine Liste der Makros und mit unmap kann ein Makro gelöscht werden. Steuerzeichen (RETURN, ESC, BACKSPACE, etc.) können nat%uuml;rlich nicht direkt eingegeben werden, sondern als CTRL-V <Stuerzeichen>. In den Beispielen unten werden die Steuerzeichen beispielsweise als <CTRL-X> dargestellt. Zum Beispiel kann man den Text "Mit freundlichen Grüßen" auf den Tastencode "fg" legen, indem man mit "i" in den Eingabemodus wechselt, den Text angibt und dann wieder in den Kommandomodus geht:

    map fg iMit freundlichen Grüßen<ESC>

    Um das ESC-Zeichen einzugeben, tippt man <CTR-V><ESC>. Man könnte auf diese Weise auch die gewohnten PC-Tasten (in der entsprechenden Terminal-Emulation) auf die vi-Kommandos legen.

    " Taste einf
    map <ESC>[2~ i
    " Taste del
    map <ESC>[3~ x
    " Taste pos1
    map <ESC>[1~ ^
    " Taste end
    map <ESC>[4~ $
    " Taste PgUp
    map <ESC>[5~ <CTRL-B>
    " Taste PgDown
    map <ESC>[6~ <CTRL-F>

    Literaturhinweise

    L. Lamb:
    Learning the vi Editor
    O'Reilly & Ass. (1990)

    S. von Bomhard:
    Hartes Brot - vi-Tips für Neugierige
    iX, 4/92, S. 115-119, Heise Verlag

    Manualpage zum vi (man vi)

    Im Anhang finden Sie noch eine vi-Kurzreferenz.

  • DIPLOMARBEITEN UND BÜCHER

    Diplomarbeiten zum Runterladen:

    Suche im Katalog:
    Architektur / Raumplanung
    Betriebswirtschaft - Funktional
    Erziehungswissenschaften
    Geowissenschaften
    Geschichtswissenschaften
    Informatik
    Kulturwissenschaften
    Medien- und Kommunikationswissenschaften
    Medizin
    Psychologie
    Physik
    Rechtswissenschaft
    Soziale Arbeit
    Sozialwissenschaften


    JOBS
    HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
    Virtual University in: Italiano - Français - English - Español
    VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

    Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere