Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Über die Autoren
Über dieses Buch
Linux vs. BSD
1 Der Kernel
2 Die Grundlagen aus Anwendersicht
3 Die Shell
4 Reguläre Ausdrücke
5 Tools zur Dateibearbeitung
6 Die Editoren
7 Shellskriptprogrammierung
8 Benutzerverwaltung
9 Grundlegende Verwaltungsaufgaben
10 Netzwerk-Grundlagen
11 Anwendersoftware für das Netzwerk
12 Netzwerkdienste
13 Mailserver unter Linux
14 LAMP
15 DNS-Server
16 Secure Shell
17 Die grafische Oberfläche
18 Window-Manager und Desktops
19 X11-Programme
20 Multimedia und Spiele
21 Softwareentwicklung
22 Crashkurs in C und Perl
23 Sicherheit
24 Prozesse und IPC
25 Bootstrap und Shutdown
26 Dateisysteme
27 Virtualisierung und Emulatoren
A Die Installation
B Lösungen zu den einzelnen Aufgaben
C Kommandoreferenz
D X11-InputDevices
E MBR
F Die Buch-DVDs
G Glossar
H Literatur

Download:
- ZIP, ca. 6,3 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Plötner, Steffen Wendzel
Das distributionsunabhängige Handbuch
Buch: Linux

Linux
2., aktualisierte und erweiterte Auflage
1119 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1090-4
gp 6 Die Editoren
  gp 6.1 Anforderungen an Editoren
    gp 6.1.1 Zeilenorientiert versus bildschirmorientiert
  gp 6.2 vi
    gp 6.2.1 Den vi starten
    gp 6.2.2 Kommando- und Eingabemodus
    gp 6.2.3 Dateien speichern
    gp 6.2.4 Arbeiten mit dem Eingabemodus
    gp 6.2.5 Navigation
    gp 6.2.6 Löschen von Textstellen
    gp 6.2.7 Textbereiche ersetzen
    gp 6.2.8 Kopieren von Textbereichen
    gp 6.2.9 Shiften
    gp 6.2.10 Die Suchfunktion
    gp 6.2.11 Konfiguration
  gp 6.3 vim
    gp 6.3.1 gvim
  gp 6.4 Emacs
    gp 6.4.1 Konzepte
    gp 6.4.2 Grundlegende Kommandos
    gp 6.4.3 Arbeiten mit Puffern und Fenstern
    gp 6.4.4 Arbeiten mit Mark und Region
    gp 6.4.5 Das Menü nutzen
    gp 6.4.6 Den Emacs konfigurieren
  gp 6.5 Editoren in der Shell
    gp 6.5.1 Mausunterstützung
  gp 6.6 Zusammenfassung
  gp 6.7 Aufgaben


Galileo Computing

6.2 vi  downtop

Auch wenn der vi-Editor nicht alle der obigen Features abdecken kann, so ist er doch – hat man ihn einmal verstanden – recht einfach zu bedienen, und vor allen Dingen ist er klein, schnell und überall verfügbar.

Abbildung 6.1    Der vi-Editor mit geladener httpd.conf


Galileo Computing

6.2.1 Den vi starten  downtop

Der Editor wird über die Kommandozeile aufgerufen. Dabei wird optional ein zu editierender bzw. neu zu erstellender Dateiname <Dieser wird erst beim Abspeichern der Textdatei tatsächlich erstellt.> übergeben.

Status-Zeile

Nachdem der Editor geladen worden ist, bekommt man ein fast leeres Terminalfenster <Der vi-Editor läuft nicht auf allen Terminals ganz perfekt. Ein vt100- oder vt220-Terminal sollte jedoch problemlos seinen Dienst tun.> zu sehen. Die Tilde-Zeilen stehen für leere Zeilen. Die unterste Zeile wird als Statuszeile genutzt und gibt Ihnen den Dateinamen sowie die Zeilenanzahl und die Dateigröße in Zeichen respektive Bytes an:

# Statuszeile bei einer neuen Datei: 
/tmp/file: new file: line 1 
 
# Statuszeile bei einer bereits gesicherten Datei: 
/tmp/file: 1 lines, 5 characters.

Listing 6.1    Statuszeile


Galileo Computing

6.2.2 Kommando- und Eingabemodus  downtop

Um mit dem vi arbeiten zu können, muss man zunächst wissen, dass er über zwei Modi verfügt: den Eingabe- und den Kommandomodus.

Im Eingabemodus wird Text eingefügt, ersetzt oder gelöscht. Im Kommandomodus lässt sich der Editor konfigurieren. Zudem werden die wichtigen Operationen wie das Abspeichern einer Datei oder das Suchen von Textstellen in diesem Modus abgewickelt.

Wie kommt man denn überhaupt ...

... wieder heraus? Ganz einfach: Zunächst wird mit der Escape-Taste in den Kommandomodus gewechselt. Anschließend kann in der Statuszeile (die nun zur Kommandozeile geworden ist) der Befehl zum Beenden eingegeben werden. Da Steuerbefehle mit einem Doppelpunkt beginnen und zum Beenden der Quit-Befehl (q) verwendet wird, muss nun folglich :q eingegeben werden.


Galileo Computing

6.2.3 Dateien speichern  downtop

Dateien werden im Kommandomodus gespeichert. Das dafür notwendige Kommando »write« (w) schreibt die Datei unter dem geöffneten Namen auf das Speichermedium. Allerdings kann auch ein Dateiname für die Datei als Parameter für w übergeben werden: :w /home/user/test. Möchte man speichern und gleichzeitig den Editor beenden, so können die Befehle kombiniert werden: :wq [Dateiname].

Soll ohne Rücksicht auf Verluste von veränderten Daten (also ohne sie zu speichern) ein »Quit« durchgeführt werden bzw. sollen Veränderungen an einer schreibgeschützten Datei – auf die man natürlich Änderungsrechte an den Dateiattributen besitzen muss – durchgeführt werden, muss dem Kommando ein Ausrufezeichen übergeben werden: :q! bzw. :w! oder :wq!.


Galileo Computing

6.2.4 Arbeiten mit dem Eingabemodus  downtop

Nach dem Start des vi-Editors befindet man sich im Kommandomodus. Möchte man Text schreiben, muss zunächst in den Eingabemodus gewechselt werden. Je nachdem, in welchen Eingabemodus Sie wechseln möchten, ist dafür eine bestimmte Funktionstaste anzuwenden.


Tabelle 6.1    Eingabemodi
Kommando Wirkung
i (insert) Text vor dem aktuellen Zeichen einfügen
I Text am Anfang der Zeile einfügen
a (append) Text hinter dem aktuellen Zeichen einfügen
A Text am Ende der Zeile einfügen
o (open) Text in einer neuen Zeile unterhalb der aktuellen Zeile einfügen
O Text in einer neuen Zeile oberhalb der aktuellen Zeile einfügen

Am besten probieren Sie alle obigen Kommandos einmal mit einer Beispieldatei aus. Schreiben Sie sich doch eine Mail im vi, und senden Sie sich diese dann via Eingabeumlenkung mit dem mail-Programm.


Galileo Computing

6.2.5 Navigation  downtop

Um sich im Text zu bewegen, greift man in der Regel auf die Cursor-Tasten zurück. Mit diesen allein werden leider oftmals längere Scroll-Abenteuer unvermeidlich sein. Aus diesem Grund haben sich die Entwickler des Editors einige Features überlegt, um sich effizient und schnell im Text bewegen zu können.


Tabelle 6.2    Navigationskommandos
Kommando Wirkung
$ Ende der aktuellen Zeile
^ und 0 Zum Anfang der aktuellen Zeile
w Ein Wort vorwärts
b Ein Wort rückwärts
Strg+F Eine Seite vorwärts blättern (geht manchmal auch mit der Bild-Ab-Taste)
Strg+B Eine Seite rückwärts blättern (geht manchmal auch mit der Bild-Auf-Taste)
G Zur letzten Zeile der Datei bewegen
f[n] Zum nächsten Vorkommen des Zeichens n in der aktuellen Zeile gehen (Achtung: case-sensitive)
:[n] und [n]G Zur Zeile n bewegen. Eignet sich gut, um Kompilierfehlern im Quellcode nachzugehen.

An älteren Unix-Terminals standen oftmals keine Cursor-Tasten zur Verfügung.

Daher kann auch mit den Tasten h (rechts), j (runter), k (rauf) und l (rechts) navigiert werden. Dazu muss allerdings in den Kommandomodus gewechselt werden.


Galileo Computing

6.2.6 Löschen von Textstellen  downtop

Sofern Sie an Editoren grafischer Oberflächen wie etwa aus der Windows-Welt gewöhnt sind, ist Ihnen bekannt, dass mit der Backshift-Taste ein geschriebenes Zeichen wieder gelöscht werden kann. Im vi-Editor steht diese Funktionalität nicht zur Verfügung. Ein Löschvorgang muss – wie immer – über den Kommandomodus mit entsprechenden Anweisungen bewerkstelligt werden.

Die nachstehende Tabelle fasst die vi-Kommandos zum Löschen von Textstellen zusammen:


Tabelle 6.3    Löschkommandos
Kommando Wirkung
dw Löscht das aktuelle Wort.
d$ und D Löschen vom aktuellen Zeichen bis zum Ende der Zeile
d0 und d^ Löschen vom aktuellen Zeichen bis zum Zeilenanfang
df[c] Löscht vom aktuellen Zeichen bis zum Vorkommen von c in der aktuellen Zeile.
dG Löscht alles von der aktuellen bis zur einschließlich letzten Zeile des Buffers.
d1G Löscht alles von der aktuellen bis zur einschließlich ersten Zeile des Buffers.
dd Löscht die aktuelle Zeile.

Sollten Sie einmal aus Versehen eine Aktion durchgeführt haben, die wieder rückgängig gemacht werden soll (etwa unbeabsichtigtes Überschreiben oder Löschen), kann dieser Vorgang mit dem Kommando u (undo) rückgängig gemacht werden. Doch beachten Sie, dass diese Möglichkeit nur für den letzten Vorgang besteht. Sobald Sie ein neues Wort geschrieben haben, ist Ihnen diese Möglichkeit also verbaut. Da hilft nur das vorher erstellte Backup bzw. das Beenden, ohne zu speichern (:q!).


Galileo Computing

6.2.7 Textbereiche ersetzen  downtop

Oftmals möchten Sie ein Wort nicht einfach nur löschen, sondern überschreiben, einzelne Zeichen eines Wortes ersetzen oder Ähnliches. Dies wird mit den c-Kommandos bewerkstelligt.


Tabelle 6.4    Ersetzen-Kommandos
Kommando Wirkung
cw Überschreibt ein ganzes Wort.
c$ und D Überschreiben vom aktuellen Punkt bis zum Ende der Zeile
c0 und c^ Überschreiben vom aktuellen Punkt bis zum Anfang der Zeile
cf[c] Überschreiben bis zum nächsten Zeichen »c« der aktuellen Zeile

Nehmen wir einmal an, der Inhalt einer Datei text.txt beinhaltet den String »Das ist der Inhalt von 'text.txt'.«. Nun soll das Wort »ist«, in »wird« geändert werden. Bewegen Sie den Cursor dazu auf den Buchstaben »i« des Wortes »ist«, und drücken Sie zunächst die Taste c und anschließend w.

Daraufhin wandelt sich der letzte Buchstabe des Wortes in ein Dollarzeichen ($) um und signalisiert damit das Ende des Textbereichs, den Sie nun ersetzen können. Alles, was nun eingetippt wird, setzt der vi-Editor vor den String »der Inhalt ...«:

# nach Aktivierung von 'cw': 
Das is$ der Inhalt von 'test.txt'. 
# daraus wird: 
Das wird der Inhalt von 'text.txt'.

Listing 6.2    So ändert man Textstellen.


Galileo Computing

6.2.8 Kopieren von Textbereichen  downtop

Der Kopiervorgang im vi-Editor gestaltet sich ein wenig kompliziert.

Zunächst einmal muss zwischen dem Verschieben und dem tatsächlichen Kopieren von Textbereichen unterschieden werden.

Löscht man einen Textbereich mit dem dX-Kommando (etwa dd, um eine ganze Zeile zu löschen), so wird dieser in den Zwischenspeicher kopiert und kann an beliebiger Stelle wieder eingefügt werden. Dazu muss lediglich die Taste p betätigt werden. Ein kleines p fügt den Text vor der Cursor-Position ein – ein großes P hinter dieser Position.

Möchte man den Text jedoch tatsächlich Kopieren

kopieren, so muss man das y-Kommando verwenden.

Die Handhabung entspricht der des oben genannten Kommandos. Der Unterschied besteht lediglich darin, dass der Text nicht gelöscht wird.


Galileo Computing

6.2.9 Shiften  downtop

Mithilfe von zwei Größer- bzw. Kleiner-als-Zeichen () und () kann eine Zeile um eine Shift-Einheit nach links bzw. rechts gerückt werden. Dieses Feature eignet sich hervorragend bei programmiertechnischen Anwendungen des Editors, etwa wenn es darum geht, eine Schleife um einen Kommandoblock zu setzen.

Die Shift-Einheit kann über die Option :set shiftwidth=x gesetzt werden, wobei x die Anzahl der Zeichen ist, um die verschoben werden soll.


Galileo Computing

6.2.10 Die Suchfunktion  downtop

In den vi-Editor wurde eine exzellente Suchfunktion implementiert. Sie gestattet neben den normalen Suchvorgängen auch die Suche mittels regulärer Ausdrücke. Reguläre Ausdrücke haben Sie bereits in den vorangegangenen Kapiteln kennen gelernt.

Generell wird eine Suche mit einem Slash im Kommandomodus des Editors eingeleitet. Diesem Slash folgt anschließend der Suchbegriff, etwa

/Bewerbung.

Mithilfe von regulären Ausdrücken kann auch nach dem Zeilenanfang bzw. -ende, dem Wortanfang und -ende oder nach Strings mit beliebigen Zeichen etc. gesucht werden.

# Nach dem Wort ' awk ' suchen: 
/\ awk\ 
 
# Nach einer Zeile suchen, die mit 'Eine' beginnt: 
/^Eine 
 
# Suchen nach Wörtern, die auf 'h' enden. Dabei kann 
# hinter dem 'h' ein Leerzeichen, Punkt oder 
# Ausrufezeichen stehen: 
/?*h[\ .!]

Listing 6.3    Suchen nach Textstellen

Um zum nächsten Suchergebnis zu springen, muss lediglich erneut ein Slash im Kommandomodus eingetippt werden.


Galileo Computing

6.2.11 Konfiguration  toptop

Natürlich lässt sich der vi-Editor auch konfigurieren. Dies geschieht mit dem set-Kommando. Über einen Aufruf von :set all erhalten Sie eine Liste möglicher optionaler Einstellungen. Die folgende Auflistung enthält die wichtigsten davon: <Dabei ist zu beachten, dass einige Optionen durch »no« abgeschaltet werden. »noautoindent« stellt beispielsweise »autoindent« ab.>

  • (no)autoindent
  • Diese Option bewirkt, dass Einrückungen auch in Folgezeilen fortgeführt werden. Das ist sehr praktisch, wenn es um Programmierung geht.
  • (no)number
  • Diese Option schaltet die Zeilenzahlen an. Sie werden dabei am linken Rand des Editors angezeigt. Der Nachteil besteht im schwindenden Editierplatz.
  • shiftwidth & tabstop
  • shiftwidth wurde bereits weiter oben erläutert. Ähnlich wie shiftwidth legt tabstop eine Zeichen-Weite fest. Während shiftwidth die Shift-Weite, also die Einrück-Einheit festlegt, tut tabstop dies für die Tabulator-Einheit: :set tabstop/shiftwidth=x
  • (no)showmatch
  • Diese Option lässt Klammerpaare bei der Schließung aufblinken. Dies kann sich bei der Softwareentwicklung ebenfalls als sehr praktisch erweisen.
  • (no)showmode
  • Diese Option zeigt in der unteren rechten Ecke der Statuszeile den Modus an, in dem sich der Editor momentan befindet (etwa »append«, »command« oder »insert«).

Um diese Einstellungen dauerhaft zu setzen, sollte man diese in die Datei /.exrc eintragen:

set autoindent 
set number 
set showmode

Listing 6.4    Eine Beispiel .exrc-Datei



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Linux






 Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Einstieg in Linux






 Einstieg in Linux


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-
 Programmierung


Zum Katalog: Praxisbuch Netzwerk-Sicherheit






 Praxisbuch
 Netzwerk-Sicherheit


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de