
22.10.2007, 18:32
|
|
|
286er
Status: Offline
Beiträge: 24
Registriert seit: 29.11.2005
Alter: 49
|
Überarbeitete Version des deutschen Vim- bzw. gVim-Tutorials
Nachdem man gVim installiert hat, findet man die Datei 'Programme\Vim\vim71\tutor\tutor.de', die ein erster Schnellkurs auf deutsch für diesen Editor ist. Diesen habe ich durchgearbeitet und völlig neu überarbeitet. Diese überarbeitete Version ist aber noch nicht ganz fertig, denn ich will noch eine Anleitung zum Erstellen, Bearbeiten und Ausführen von Makros hinzufügen. Übrigens erreicht man unter den unter Windows angegebenen ersten Downloadlink eine um ein Vielfaches größere Datei, als die anderen.
Trotzdem veröffentliche ich diese hiermit schon mal: Klick! Abspeichern dieser TXT-Datei mit Rechtsmaustastenklick und 'Ziel speichern unter...' auf diesen Link. Diese Datei ist dafür bestimmt, dass man sie mit dem Editor Vim öffnet, um diese Datei gleich zu benutzen, um die dortigen Übungsbeispiele auszuführen. Diese Datei alternativ mit dem Notepad von Windows zu öffnen, funktioniert nicht gut. Besser geeignet ist (natürlich neben Vim) Wordpad von Windows, Word und der Internet Explorer.
Das Wichtigste, was man von Makros wissen sollte, habe ich übrigens schon in diesem Thread geschrieben: Klick! Das Original-Tutorial hat übrigens nach jeder Haupt-Lektion eine kurze Zusammenfassung, die ich jeweils wegließ; weil ich diese zum einen für eher unnötig halte und ich mir nicht die Mühe machen wollte, diese jeweils um die jeweiligen Ergänzungen zu erweitern, die durch meine Hinzufügungen erforderlich gewesen wären.
Man findet zwar ziemlich viele Beschreibungen zu Vim auf deutsch, aber richtig umfangreiche leider nur auf englisch. Im Buchhandel habe ich nur zwei Bücher auf deutsch zum Editor Vim gefunden:
vi-Editor. Kurz und gut. (OReillys Taschenbibliothek) (Taschenbuch) von Arnold Robbins (Autor)
vim Ge-Packt. vi improved (Broschiert) von Reinhard Wobst (Autor)
Eine sehr interessante Webseite neben vielen anderen ist übrigens nachfolgende. Leider nicht sehr ausführlich erklärt, aber mit viel Geduld und gutem Willen letztlich doch ganz gut zu verstehen.
Reguläre Ausdrücke bei VIM - www-user.tu-chemnitz.de
Code:
===============================================================================
W i l l k o m m e n im V I M T u t o r - Version 1.7D - überarbeitet
===============================================================================
Vim ist ein sehr mächtiger Editor, der viele Befehle bereitstellt; zu viele,
um alle in einem Tutor wie diesem zu erklären. Das macht diesen Editor beson-
ders zum Programmieren geeignet. Dieser Tutor ist so gestaltet, um genug
Befehle vorzustellen, dass Du die Fähigkeit erlangst, Vim mit Leichtigkeit
als einen Allzweck-Editor zu benutzen.
ACHTUNG: Die in den Lektionen angewendeten Kommandos werden diesen Text modi-
fizieren. Erstelle gegebenenfalls eine Kopie dieser Datei
(Programme\Vim\vim71\tutor\tutor.de), in der Du üben willst, indem Du bspw.
diese Datei in einem anderen Ordner abspeicherst oder in demselben Ordner
unter einem anderen Namen abspeicherst mit >Datei - Speichern als< oder mit
:w DATEINAME, wie in Lektion 5.2 beschrieben ist.
Es ist wichtig, sich zu vergegenwärtigen, dass dieser Tutor für das Anwenden
konzipiert ist. Das bedeutet, dass Du die Befehle ausführen musst, um sie
richtig zu lernen. Wenn Du nur den Text liest, vergisst Du die Befehle.
Einschub: Um den Text nach unten zu scrollen, drücke die Taste j . Falls das
nicht funktionieren sollte, gehe zuvor in den Normal-Modus mit <Esc>.
Um dir die Befehle besser merken zu können, und um die jeweils grundsätzliche
Wirkungsweise der verwendeten Zeichen bei Textveränderungen zu verstehen;
kann es behilflich sein, nebenbei jeweils nachfolgende Auflistung zu beachten,
die Du dir am besten einprägen solltest. Groß geschrieben haben diese Zeichen
jeweils eine ähnliche umfassendere Bedeutung.
a append - Anfügemodus
c change - ähnlich d, aber mit gleichzeitigem Wechsel in den Einfügemodus i
d delete - ähnlich x, nur mit zusätzlicher Angabe eines Bewegungsoperators
i insert - Einfügemodus
r replace - Überschreibemodus
j join - zusammenfassen
o open - neue Zeile eröffnen
p put - Text aus einem Vim-Register einfügen
s substitute - ersetzen von Wörtern mit der Suchfunktion
x delete - zeichenweise löschen
y yank - kopieren, Text in ein Vim-Register einfügen
Vim arbeitet in diesen 7 Betriebsarten (Modi). Nach dem Start des Programms
befindet sich Vim im Normal-Modus. Dieser ist die Basis. Vor jeder Lektion
in den Normal-Modus schalten durch betätigen der Taste <Esc>. Bei den ersten
6 Modi ist das auf diese Weise möglich.
Sollte ein anderer Modus, als der Normal-Modus, aktiviert sein, wird das in
der untersten Zeile angezeigt, links neben der Anzeige der Cursorposition
(bspw. 47,20 2%).
Falls die Makro-Aufzeichnung qa, qb, qc ... qz aktiviert wurde, kann man
ihn mit q beenden. Der UNIX-Zeilen-Editor-Modus (Ex-Mode) kann wahlweise
mit :vi oder :visual beendet werden. Zudem kann auch noch der Vi-Kompa-
tibilitätsmodus aktiviert sein. Diesen kann man mit :set nocp beenden.
Normal-Modus (Kommando- oder Befehls-Modus) - Esc
Einfüge-Modus (Insert-Mode) - i und a
Überschreibe-Modus (Replace-Mode) - r und R
Textmarkier-Modus (Visual-Mode) - v und V
Kommandozeilen-Modus (Command-line-Mode) - : / ?
Auswahl-Modus (Select-Mode) - aus dem Visual-Modus Strg g
UNIX-Zeilen-Editor-Modus (Ex-Mode) - Q
Diese Information dient erst mal nur zur grundsätzlichen Orientierung, ohne
dass bei dem nachfolgenden Lektionen unbedingt jeweils darauf geachtet wer-
den muss, in welchem Modus man sich jeweils befindet. Duch Eingabe der je-
weiligen Kommandos schaltet Vim jeweils automatisch in den richtigen Modus.
Wichtig ist nur, dass man sich bei Eingabe irgendeines Kommandos im Normal-
Modus befindet. Gegebenenfalls erreicht man das durch Betätigen der Taste
Esc . Der zuletzt aufgeführte Modus hat grundsätzlich erst mal keine Bedeu-
tung, weil Vim dann nur dessen Vorläufer bzw. den von Vi immitiert.
Der Cursor kann drei verschiedene Formen annehmen:
Normal-Modus - der Cursor ist rechteckig bzw. blockförmig.
Einfüge-Modus - der Cursor hat strichform.
Überschreibe-Modus - der Cursor hat Unterstrichform.
Wenn du die GUI-Version gVim installiert hast, kannst du mit der linken
Maustaste den Cursor an eine bestimmte Position bringen und/oder markieren.
1 Klick - Cursor an die gewählte Position setzen
2 Klicks - Wort hinter dem Cursor markieren
3 Klicks - Zeile hinter dem Cursor markieren
4 Klicks - Blockmarkierung einschalten
Jetzt stelle sicher, dass Deine Umstelltaste (für Großbuchstaben) NICHT ge-
drückt ist und betätige die Taste j genügend Male, um den Cursor nach
unten zu bewegen, sodass die Lektion 1.1 vollständig auf dem Bildschirm an-
gezeigt wird.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.1: BEWEGEN DES CURSORS
** Um den Cursor zu bewegen, drücke die h,j,k,l Tasten wie unten gezeigt. **
K Die Taste K befindet sich oben und bewegt nach oben.
< H L > Die Tasten H und L befinden sich links bzw. rechts
J und bewegen nach links bzw. rechts.
Die Taste J ähnelt einem Pfeil nach unten.
1. Bewege den Cursor auf dem Bildschirm umher, bis Du Dich sicher fühlst.
2. Halte die Nach-Unten-Taste (J) gedrückt, bis sie sich wiederholt.
Jetzt weißt Du, wie Du Dich zur nächsten Lektion bewegen kannst.
3. Benutze die Nach-Unten-Taste, um Dich zu Lektion 1.2 zu bewegen.
Bemerkung: Die bewegung über die Tasten H J K L funktioniert nur im Normal-
modus. Um ggf. in diesen zu gelangen, drücke die Taste Esc . Immer,
wenn Du Dir unsicher bist über das, was Du getippt hast, drücke die
Taste ESC , um Dich in den Normalmodus zu begeben. Dann gib das
gewünschte Kommando noch einmal ein.
Die Cursor-Tasten sollten ebenfalls funktionieren. Aber wenn Du
die Tasten HJKL benutzt, wirst Du in der Lage sein, Dich sehr
viel schneller umherzubewegen, wenn Du Dich einmal daran gewöhnt
hast.
Auch kann es sein, dass eine über die Cursor-Tasten (Pfeiltasten)
hervorgerufene Bewegung nicht die gewünschte Funktion bewirkt, wie
bspw. das Markieren im Visualmodus mit dem Befehl v .
Wenn du die GUI-Version gVim benutzt, kannst Du natürlich auch
rechts den Laufbalken benutzen, um einen anderen Textabschnitt an-
zuzeigen. Auch kannst du die beiden Tasten Bild verwenden, um
bildweise oder besonders schnell nach oben oder unten zu scrollen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.2: VIM BEENDEN
** Drücke :q! um Vim zu beenden, ohne dass der Text abgespeichert wird **
!! ACHTUNG: Bevor Du einen der unten aufgeführten Schritte ausführst, lies
diese gesamte Lektion!!
1. Drücke die <ESC> Taste (um sicherzustellen, dass Du im Normalmodus bist).
2. Tippe :q! <ENTER> .
Dies beendet den Editor und VERWIRFT alle Änderungen, die Du gemacht hast.
Bemerkung: Wenn Du die GUI-Version gVim benutzt, kannst Du Vim auch mit den
sonst gewohnten Möglichkeiten beenden, bspw. mit <Alt> + <F4> ,
mit der Maus unter >Datei - Schließen< oder rechts oben auf das Sym-
bol X (für Schließen) klicken. Die Abfrage dann mit No bestätigen.
3. Wenn Du die Eingabeaufforderung siehst, gib das Kommando ein, das Dich zu
diesem Tutor geführt hat. Dies wäre: vimtutor <ENTER>
4. Wenn Du Dir diese Schritte eingeprägt hast und Du Dich sicher fühlst,
führe Schritte 1 bis 3 aus, um den Editor zu verlassen und wieder
hineinzugelangen.
Bemerkung: :q! <ENTER> verwirft alle Änderungen, die Du gemacht hast. In eini-
gen Lektionen lernst Du , die Änderungen in einer Datei zu speichern.
5. Bewege den Cursor mit der Taste j abwärts zu Lektion 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.3: TEXT EDITIEREN - LÖSCHEN
** Drücke x um im Normal-Modus das Zeichen hinter dem Cursor und weitere
Zeichen nach rechts gehend zu löschen. **
** Drücke X (Großbuchstabe) um im Normal-Modus das Zeichen links neben dem
Cursor und weitere Zeichen nach links gehend zu löschen. **
1. Bewege den Cursor zu der mit ---> markierten Zeile unten.
2. Um die Fehler zu beheben, bewege den Cursor, bis er auf dem Zeichen steht,
das gelöscht werden soll.
3. Drücke die Taste x , um das überflüssige Zeichen zu löschen.
4. Wiederhole die Schritte 2 bis 3, bis der Satz korrekt ist.
Bemerkung: Bei wiederholtem oder dauerhaftem Drücken werden weitere Zeichen
gelöscht, die sich jeweils rechts neben dem Cursor befinden. Durch
Drücken von X (groß) werden jeweils die Zeichen links neben dem
Cursor gelöscht.
---> Die Kkuh sprangg übber deeen Moooond.
Anmerkung: Zum Löschen kann auch die auf der Tastatur dafür vorgesehenen Taste
<Entf> bzw. <Del> benutzt werden. Und wenn man sich im Einfüge-,
Überschreibe- oder Select-Modus befindet, kann zudem auch die Rück-
taste (befindet sich über der Absatz- bzw. Returntaste) zum löschen
benutzt werden.
5. Wenn nun die Zeile korrekt ist, gehe weiter zur Lektion 1.4.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.4: TEXT EDITIEREN - EINFÜGEN
** Drücke i (insert) , um Text einzufügen. **
1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.
2. Um die erste Zeile mit der zweiten gleichzumachen, bewege den Cursor auf
das erste Zeichen (also auf das t ) rechts neben der Stelle, wo der Text
eingefügt werden soll.
3. Drücke i und gib die notwendige Ergänzung ein.
4. Wenn jeweils ein Fehler beseitigt ist, drücke <ESC> , um zum Normalmodus
zurückzukehren. Wiederhole die Schritte 2 bis 4, um im Satz die fehlenden
Zeichen einzufügen.
Bemerkung: In diesem Fall würde es sich zwar nicht lohnen, die Taste <ESC> nach
jeder Korrektur erneut zu drücken, um jeweils in den Normal-Modus zu
gelangen. Aber bei erheblich längeren Zeilen, können im Normal-Modus
Bewegungsoperatoren und andere Funktionen genutzt werden, um möglichst
schnell die zu korrigierenden Positionen zu erreichen und möglichst
effektiv korrigieren zu können.
---> In dieser Zeile ft etwas .
---> In dieser Zeile fehlt etwas Text.
5. Wenn Du Dich mit dem Einfügen von Text sicher fühlst, gehe zu Lektion 1.5.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.5: TEXT EDITIEREN - TEXT ANFÜGEN (APPEND)
** Tippe a (append), um Text rechts neben dem Cursor einzufügen. **
1. Bewege den Cursor zum Anfang der ersten Übungszeile mit ---> unten.
2. Drücke e , bis der Cursor am Ende von Zei steht.
3. Tippe ein kleines a , um Text rechts neben dem Cursor anzufügen.
4. Vervollständige das Wort so wie in der Zeile darunter. Drücke <ESC> ,
um den Einfügemodus zu verlassen.
5. Bewege Dich mit e zum nächsten unvollständigen Wort und wiederhole
Schritte 3 und 4.
---> Diese Zei bietet Gelegen , Text in einer Zeile anzufü.
---> Diese Zeile bietet Gelegenheit, Text in einer Zeile anzufügen.
Bemerkung: Beim Drücken von i (insert - Einfügen) wird der rechteckige Cursor
strichförmig und befindet sich dann links neben dem Zeichen, auf dem
der Cursor vorher war. Bei a befindet er sich dann rechts daneben.
Du gelangst auch in den Einfüge-Modus (insert), indem Du die Taste
Einfg drückst. Bei wiederholtem Drücken dieser Taste wechselst du
zwischen Einfüge- und Überschreibe-Modus (replace) hin und her. Durch
Betägen der Taste <Esc> gelangst Du wieder in den Normal-Modus.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.6: TEXT EDITIEREN - ANFÜGEN AM ZEILENENDE ODER -ANFANG
** Drücke A oder I , um Text am Zeilenende oder Zeilenanfang anzufügen. **
1. Bewege den Cursor zur unten stehenden mit ---> markierten Textzeile.
Es ist gleichgültig, auf welchem Zeichen der Zeile der Cursor steht.
2. Drücke A (groß) und gib die nötigen Ergänzungen ein.
3. Wenn das Anfügen abgeschlossen ist, drücke <ESC>, um in den Normalmodus
zurückzukehren.
4. Bewege den Cursor zur unten stehenden mit <--- markierten Zeile,
drücke I (groß) und füge den fehlenden Text am Anfang der Zeile ein.
---> In dieser Zeile feh
In dieser Zeile fehlt etwas Text.
etwas Unvollständiges <---
Auch hier steht etwas Unvollständiges.
5. Wenn Du dich mit dem Anfügen von Text sicher fühlst, gehe zu Lektion 1.6.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 1.7: EINE DATEI ABSPEICHERN
** Benutze :w , um eine Datei nur zu speichern. **
** Benutze :wq , um eine Datei zu speichern und Vim zu verlassen. **
!! ACHTUNG: Bevor Du einen der unten aufgeführten Schritte ausführst, lies
diese gesamte Lektion!!
1. Verlasse den Editor so wie in Lektion 1.2. mit :q! <ENTER> .
2. Gib dieses Kommando in die Eingabeaufforderung ein: vim tutor <ENTER>
'vim' ist der Aufruf des Editors, 'tutor' ist die zu editierende Datei.
Benutze aber eine Datei, die geändert werden kann. Falls Du die Datei
tutor nicht ändern willst, gib den Namen einer anderen Datei an.
3. Füge Text ein oder lösche ihn, wie Du in den vorigen Lektionen gelernt
hast.
4. Speichere die geänderte Datei und verlasse Vim mit: :wq <ENTER> .
5. Starte den vimtutor neu und bewege Dich zu der folgenden Zusammenfassung.
Bemerkung: w bedeutet hier Speichern. Und q bedeutet, dass das Programm
beendet werden soll. Demzufolge ist das Kommando für Abspeichern
ohne Programmbeendigung :w <ENTER> . Mehr dazu in der Lektion 5.2.
Wenn Du die GUI-Version gVim benutzt, kannst Du den Text (im Puffer)
auch mit den sonst gewohnten Möglichkeiten abspeichern und ggf. auch
beenden. Bspw. mit <Alt> + <F4> , oder unter >Datei - Speichern< ,
oder links obem im Menü auf das Symbol für Speichern klicken, oder
rechts oben auf das Symbol X (für Schließen). Die Abfrage dann
mit Yes bestätigen.
Auch das Öffnen einer Datei kann ggf. wie gewohnt durch Doppelklick
mit der Maus auf das Symbol dieser datei im Explorers geöffnet werden.
Um es mit Vim zu öffnen, mit der rechten Maustaste anklicken und
>Edith with Vim< wählen.
Beim Öffnen einer datei kann es sein, dass man diese Optionen zur
Auswahl hat: Read-Only (nur lesen), Edit Anyway (Verändern), Recover
(Wiederherstellen), Delete it (Löschen), Quit (Beendet) und Abord
(Abbruch). Ein Öffnen im Modus 'Read-Only' führt dann später beim
Editieren zu Warnmeldungen. Öffnet man im Modus 'Edit Anyway' kann
es sein, dass man sich erst mal im Einfüge-Modus befindet; mit <Esc>
kann man aber in den Normal-Modus wechseln.
Wurde das Zusatzprogramm Cream installiert, dass aus Vim einen
leichter zu bedienenden Editor machen soll, und wenn eine Datei mit
der Vim-Erweiterung Cream geöffnet werden soll, kann diese Datei mit
Doppelklick auf das Symbol im Explorer geöffnet werden.
Übrigens ist die Anwendung von Tabulatoreinrückungen problematisch,
weil diese jeweils unterschiedlich lang angezeigt werden können bei
verschiedenen Editoren. Bspw. beim Aufruf von Vim über Cream werden
Tabulatoreinrückungen mit einer anderen Länge im Text angezeigt.
6. Nun fahre mit Lektion 2 fort.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.1: LÖSCHKOMMANDOS - Wort oder Wortende löschen
** Tippe dw , um ein Wort/Wortteil bis zum Wortende zu löschen. **
1. Drücke <ESC> um sicherzustellen, dass Du im Normalmodus bist.
2. Bewege den Cursor zu der mit ---> markierten Zeile.
3. Bewege den Cursor auf den 1. Buchstaben eines Wortes, das gelöscht werden
soll.
4. Tippe dw , um dieses Wort zu entfernen.
5. Bewege den Cursor auf den 1. Buchstaben des nächsten Wortes, das gelöscht
werden soll und tippe wieder dw , um dieses Wort zu löschen.
Bemerkung: Wenn du den Buchstaben d (delete) angegeben hast, erscheint
er in der letzten Zeile des Bildschirms. Vim wartet darauf, dass Du
einen Bewegungsparameter eingibst, der hier w ist.
---> Einige Wörter lustig gehören nicht Papier in diesen Satz.
Bemerkung: Wenn du die GUI-Version gVim installiert hast, kannst du ein ein-
zelnes Wort auch löschen, indem du es doppelt anklickst.
Dadurch ist es markiert und kann dann auch mit den beiden normalen
Löschtasten (<Entf> bzw. <Del> und Rücktaste) entfernt werden. Dann
aber die Löschtaste noch ein weiters mal drücken, damit nicht zwei
Leerstellen an dieser Stelle verbleiben.
Anstatt eine Löschtaste zu drücken, kann an dieser Stelle auch ein
anderes Wort oder mehrere neue Wörter Text eingefügt werden, weil
man sich dann automatisch im Select- bzw. Einfügemodus befindet.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.2: WEITERE LÖSCHKOMMANDOS
** Tippe d$ , um bis zum Ende der Zeile zu löschen. **
** Tippe d0 , um bis zum Anfang der Zeile zu löschen. **
** Tippe d^^ , um bis zum ersten Zeichen einer Zeile zu löschen.**
1. Drücke <ESC> , um sicherzustellen, dass Du im Normalmodus bist.
2. Bewege den Cursor zu der mit ---> markierten Textzeile unten.
3. Bewege den Cursor zum Ende der korrekten Zeile (nach dem ersten Punkt).
4. Tippe d$ , um bis zum Ende der Textzeile zu löschen.
5. Bewege den Cursor zur ersten der mit <--- markierten Textzeile auf das
erste Zeichen des Wortes, vor dem alles gelöscht werden soll.
6. Tippe d0 , um bis zum Anfang der Zeile zu löschen.
7. Bewege den Cursor zur zweiten der mit <--- markierten Textzeile auf das
erste Zeichen des Wortes, vor dem alle Wörter, außer den ersten Leerstellen
gelöscht werden soll.
8. Tippe d^^ , um bis zum einschließlich ersten Buchstaben dieser Zeile zu
löschen.
---> Jemand hat das Ende der Zeile doppelt eingegeben. doppelt eingegeben.
Jemand hat Jemand hat den Anfang der Zeile doppelt eingegeben. <---
Jemand hat Jemand hat den Anfang der Zeile doppelt eingegeben. <---
Bemerkung: Anstatt des Zeichens ^^ kannst Du auch ^ <Leerstelle> tippen,
um ein alleinstehedes ^ zu erzeugen; was dasselbe bewirkt,
wie ein doppeltes ^ .
9. Gehe weiter zur Lektion 2.3, um zu erfahren, was hierbei passiert.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.3: ÜBER OPERATOREN UND BEWEGUNGSZÜGE
Viele Kommandos, die Text ändern, setzen sich aus einem Operator und einer
Bewegung zusammen. Das Format für ein Löschkommando (eigentlich ist es ein
Ausschneidekommando) mit dem Löschoperator d lautet wie folgt:
d [Bewegung]
wobei
d - der Löschoperator ist und
[Bewegung] - der Bewegungsoperator ist, der auf den Löschoperator angewandt
wird (unten aufgelistet).
Eine kleine Auflistung von Bewegungsoperatoren und deren Bewegungserklärung:
w - Bewegung des Cursors bis zum nächsten ersten Buchstaben eines Wortes.
e - Bewegung des Cursors bis zum nächsten letzten Zeichen eines Wortes.
$ - Bewegung des Cursors bis zum letzen Zeichen einer Textzeile.
0 - Bewegung des Cursors bis zum Anfang der Textzeile.
^^ - Bewegung des Cursors bis zum ersten Zeichen einer Zeile.
Bemerkung: Die alleinige Eingabe des Bewegungsteils im Normalmodus bewegt den
Cursor entsprechend.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.4: ANWENDUNG EINES ZÄHLERS FÜR EINEN BEWEGUNGSSCHRITT
** Die Eingabe einer Zahl vor einem Bewegungsschritt w oder e wiederholt diesen. **
1. Bewege den Cursor zum Beginn der mit ---> markierten Zeile unten.
2. Tippe 2w , um den Cursor zwei Wörter vorwärts zu bewegen.
3. Tippe 3e , um den Cursor zum Ende des dritten Wortes zu bewegen.
4. Wiederhole die Schritte 2 und 3 mit verschiedenen Zählern.
---> Dies ist nur eine Zeile aus Wörten um sich darin herumzubewegen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.5: ANWENDUNG EINES ZÄHLERS FÜR MEHRERE LÖSCHVORGÄNGE
** Die Eingabe einer Zahl vor dem Bewegungs-Operator w wiederholt diesen mehrfach. **
Für die Kombination des Löschoperators d und einem Bewegungsschritt (siehe
oben) stellt man dem Bewegungsschritt einen Zähler voran, um mehr zu löschen:
d [Nummer] w
1. Bewege den Cursor zum ersten Wort in GROSSBUCHSTABEN in der mit --->
markieren Zeile.
2. Tippe d2w , um die zwei Wörter in GROSSBUCHSTABEN zu löschen.
3. Wiederhole die Schritte 1 und 2 mit einem anderen Zähler, um die
darauffolgenden Wörter in GROSSBUCHSTABEN mit einem einzigen Kommando
zu löschen.
---> Diese ABC DE Zeile FGHI JK LMN OP mit Wörtern ist Q RS TUV bereinigt.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.6: ARBEITEN AUF ZEILEN
** Tippe dd , um eine ganze Zeile zu löschen. **
** Tippe 2dd , um diese Zeile und die darunter zu löschen. **
Wegen der Häufigkeit, dass man ganze Zeilen löscht, kamen die Entwickler von
Vi darauf, dass es leichter wäre, einfach zwei d's einzugeben, um eine Zeile
zu löschen.
1. Bewege den Cursor zur zweiten Zeile in der unten stehenden Redewendung.
2. Tippe dd , um die Zeile zu löschen.
3. Nun bewege Dich zur Zeile 4).
4. Tippe 2dd , um diese Zeile und die Zeile darunter zu löschen.
---> 1) Rosen sind rot,
---> 2) Matsch ist lustig,
---> 3) Veilchen sind blau,
---> 4) Ich habe ein Auto,
---> 5) Die Uhr sagt die Zeit,
---> 6) Zucker ist süß,
---> 7) So wie Du auch.
Bemerkung: Bei Eingabe einer Zahl, um zugleich mehrere Zeilen zu löschen, wird
die Zeile gelöscht, in der sich der Cursor befindet, und die Zeilen,
die jeweils darunter sind.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 2.7: RÜCKGÄNGIG MACHEN (UNDO)
** Tippe u , um Kommandos jeweils einzeln rückgängig zu machen **
** Tippe U , um die letzten Veränderungen in dieser Zeile rückgängig zu machen. **
Bemerkung: Die nachfolgenden Schritte müssen nacheinander vorgenommen werden,
ohne dass zwischendurch was an einer anderen Zeile verändert wird,
sonst würde das beschriebene Verhalten ein anderes sein,
insbesondere das von U (groß).
1. Bewege den Cursor zu der ersten mit ---> markierten Zeile .
Diese Zeile 1 befindet sich im Ausgangszustand A.
2. Beseitige den Fehler im ersten Wort mit dem Löschkommando x .
Die Zeile 1 befindet sich nun im Zustand B.
3. Bewege den Cursor zu der ZWEITEN mit ---> gekennzeichneten Zeile
und behebe den Fehler im ersten Wort mit dem Löschkommando x .
4. Bewege den Cursor wieder zu der ERSTEN mit ---> gekennzeichneten Zeile
und beseitige den Fehler im zweiten Wort mit dem Löschkommando x .
Die Zeile 1 befindet sich nun im Zustand C.
5. Tippe u (klein) ein mal, um nur die Fehlerbeseitigung im zweiten Wort
rückgängig zu machen. Die Zeile 1 ist jetzt wieder im Zustand B.
6. Jetzt behebe den Fehler im 3. Wort mit Hilfe des Löschkommandos x .
Die Zeile 1 befindet sich jetzt im Zustand D.
7. Nun tippe ein großes U , um diese Zeile in den Zustand zu versetzen,
nachdem das letzte mal was in einer anderen Zeile korrigiert wurde.
Die Zeile 1 ist jetzt wieder im Zustand B.
8. Nun tippe u (klein) so oft, um alle zwischengespeicherten Zustände
einzeln nacheinander wiederherzustellen (einzelne Rückwärtsschritte).
- Das U rückgängig machen (Punkt 7). Die Zeile 1 hat wieder Zustand D.
- Die Fehlerbeseitigung im 3. Wort rückgängig machen (Punkt 6).
Die Zeile 1 befindet sich jetzt wieder im Zustand B.
- Die Behebung des Fehlers in Zeile 2 rückgängig machen.
- Die Behebung des Fehlers im ersten Wort rückgängig machen.
Die Zeile 1 befindet sich jetzt wieder im Ausgangszustand A.
Bemerkung: Es ist in diesem Fall nicht möglich den Zustand C wiederherzustellen,
weil nach dem Rückwärtsschritt (Punkt 5) korrigiert wurde (Punkt 6).
Auch ist es nicht möglich mit U (groß) die Zeile in ihren Ausgangs-
zustand A zurückzuversetzen, weil sich diese Zeile im Zustand B befand,
nachdem das letzte mal was in einer anderen Zeile korrigiert wurde.
9. Nun tippe CTRL-R (halte <Ctrl> bzw. <Strg> gedrückt) und drücke r so oft
(einzelne Vorwärtsschritte), um alle zwischengespeicherten Zustände wie
möglich einzeln nacheinander in der Gegenrichtung wiederherzustellen.
Auf diese Weise machst Du alle in Punkt 8 gemachten Veränderungen wieder
rückgängig, sodass sich beide Zeilen wieder in dem Zustand befinden,
nachdem Punkt 7 ausgeführt wurde (Zustand B).
---> Beehebe diee Feehler dieser Zeile und stelle sie mit 'undo' wieder her.
---> Beehebe den Fehler dieser Zeile und stelle ihn mit 'undo' wieder her.
Bemerkung: Gundsätzlich wirken die beiden Undo-Operatoren u und STRG-R als
Duett, die jeweils zueinander entgegengesetzt wirken in ihrer Funktion.
Während man mit u rückwärts geht, geht man mit STRG-R vorwärts.
Dabei ist aber zu beachten, dass dabei unter Umständen Zustände
verloren gehen können. Man kann beliebig viele Schritte zurückgehen
und wieder vorwärts, ohne dass dabei zwischengespeicherte Zustände
verloren gehen, wenn man nicht inmitten der Schritte Text verändert.
Wenn man bspw. drei Schritte zurückgeht und Text korrigiert, kann
man von diesem Moment an nicht mehr vorwärts gehen, weil man was
verändert hatte. Man kann aber weiter zurück gehen, um die soeben
gemachte Textveränderung rückgängig zu machen. Auch kann man noch
weiter zurückgehen bis ggf. sogar zum Anfangszustand des Dokumentes,
als man dieses öffnete, falls es nicht mehr als 1000 Schritte sind.
Das rückgängig machen einer ganzen Zeile mit U (groß) ist der an-
deren Wiederherstellungsfunktion mit u und STRG-R unterordnet.
Wenn man also mit U sämtliche Veränderungen einer Zeile rückgängig
macht und dann Veränderungen vornimmt, können durch Benutzung dieser
Funktion keine Zustände verloren gehen; denn mit u und STRG-R
kann man dann ggf. in jedem Fall zurück und/oder vorwärts gehen.
Nun eine Beschreibung zum Operator U , um eine Textzeile komplett
wiederherzustellen. Nachdem man eine neue Textzeile erstellt hat,
oder wenn man irgendwo mindestens eine Veränderung vorgenommen hat
und man dann den Cursor auf eine (andere) Zeile gebracht hat, ist
der Zustand A dieser Zeile in der Zeilenwiederherstellungsfunktion
U als Basis gespeichert. Wenn man nun was an dieser Zeile verändert
hat, die Zeile befindet sich dadurch im Zustand B, kann man diese
Veränderungen mit U komplett rückgängig machen, um wieder in den
Zustand A zu gelangen.
Nachdem man das getan hat, gibt es drei Möglichkeiten.
- Entweder man macht diese Rückgängigmachung unmittelbar nach der
Rückgängigmachung wieder rückgängig, um wieder in den Zustand B
zu gelangen.
- Oder man bleibt im Zustand A und nimmt weitere Veränderungen an
dieser Zeile vor. Dann ist aber ab dem ersten veränderten Zeichen
für U die neue Basis der Zustand B. Wenn man das nicht will,
aber trotzdem an dieser Zeile ausgehend vom Zustand A den Text
dieser Zeile ergänzen bzw. ändern will, kann man sich für die
dritte Möglichkeit entscheiden, was gewissermaßen ein Trick ist.
- Anstatt diese Zeile zu verändern, täuscht man eine Veränderung
in einer anderen Zeile vor, in dem man bspw. mit r irgendein
Zeichen mit demselben Zeichen überschreibt und dann wieder zu
der zu bearbeitenden Zeile zurückkehrt. Durch diesen Trick bleibt
für U der Zustand A die Basis und man kann jetzt in dieser Zeile
Text verändern, ohne dass sich die Basis ändert.
Unabhängig von diesen beschriebenen Möglichkeiten kann man, wie weiter
oben schon beschrieben, die übergeordnete andere Wiederherstellungs-
weise mit u (klein) auch anstatt der Zeilenwiederherstellung U
nutzen. Auch ist eine Kombination aus beiden Verfahrensweisen möglich.
Wenn man bspw. im weiter oben beschriebenen Beispiel mit der Zeilen-
wiederherstellung U eine Zeile nach einer Veränderung wieder in den
Zustand A versetzte; und man möchte, dass der Zustand A weiterhin die
Basis sein soll, damit man ggf. mit U in den Zustand zurückgehen
kann (abgesehen davon, dass man das mit u (klein) sowieso kann);
müsste man in einer anderen Zeile eine Veränderung vortäuschen, bevor
man was an der Zeile verändert hat.
Hatte man aber versehentlich schon was an der Zeile verändert, ist
das nicht mehr möglich. Man kann aber in dieser prekären Situation
mit der normalen übergeordneten Wiederherstellungsgfunktion u (klein)
so viele Schritte zurück gehen, bis sich diese Zeile wieder im Zustand
A ist. Dann müsste man nur noch in einer anderen Zeile eine Veränderung
vortäuschen, damit der Zustand A zur Basis wird.
Die Zeilenwiederherstellung U hat also diese zwei Eigenschaften.
Zum einen kann man mit einem Klick eine Zeile wieder in ihren ursprüng-
lichen Zustand versetzen, wenn man U zum ersten mal in dieser Zeile
anwendet. Dadurch wird aber auch der in diesem Moment vorherrschende
Zustand als neue Basis für U zwischengespeichert, den man von diesem
Moment an jederzeit wieder aufrufen kann, so lange sich der Cursor noch
in dieser Zeile befindet.
Wenn du die GUI-Version gVim installiert hast, kannst du auch durch
klicken auf die beiden Symbole mit den runden Pfeilen jeweils
schrittweise frühere Zustände des Dokumentes wiederherstellen in
Richtung rückwärts und vorwärts. Diese Optionen findet man auch in
der Menüleiste unter >Editieren<. Diese funktionieren auch im
Einfüge-Modus (insert). Diese haben aber im Gegensatz zu den entspre-
chenden Tastenkombinationen u (rückwärts) und STRG-R (vorwärts)
den Nachteil, dass man für jeden Schritt einen Klick machen muss.
Im Untermenü >Editiern< sind auch die Tastenkombinationen angegeben,
um jeweils vorwärts oder rückwärts zu gehen. Mit der Taste u kann
man, wie schon beschrieben, schrittweise rückwärts gehen, und mit
der Tastenkombination STRG-R schrittweise vorwärts. Diese beiden
Tastenkombinationen funktionieren aber nur im Normal-Modus. Diese
haben aber den Vorteil, dass man durch dauerhaftes Drücken sehr schnell
sehr viele Schritte abarbeiten kann.
9. Nun gehe weiter zur Lektion 3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 3.1: EINFÜGEN AUS DEM VIM-REGISTER (PUT)
** Tippe p , um eine gelöschte Zeile unter einer Zeile einzufügen. **
1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.
2. Tippe dd , um die Zeile zu löschen und im Vim-Register vorübergehend
abzulegen.
3. Bewege den Cursor zur Zeile c); also zu derjenigen, unter der die zuvor
gelöschte Zeile eingefügt werden soll.
4. Tippe p , um die Zeile unterhalb des Cursors einzufügen.
5. Wiederhole die Schritte 2 bis 4, um alle Zeilen in die richtige
Reihenfolge zu bringen.
---> d) Kannst Du das auch?
---> b) Veilchen sind blau.
---> c) Intelligenz ist erlernbar.
---> a) Rosen sind rot.
Bemerkung: Das Vim-Register entspricht im Prinzip ungefähr dem Zwischenspeicher
bzw. der Zwischenablage des Betriebssystems, um Text zu kopieren oder
auszuschneiden, um diesen jeweils woanders wieder einfügen zu können.
Trotzdem sind aber das Vim-Register und der Zwischenspeicher bzw. die
Zwischenablage zwei verschiedene Sachverhalte, die in ihrer Wirkung
bei manchen Vorgängen unterschiedlich reagieren.
Bei Benutzung des Programms Vim wird ausgeschnittener oder gelöschter
Text immer im Vim-Register vorübergehend abgelegt; aber mit der Aus-
nahme, dass, wenn man mit der Taste <Entf> bzw. <Del> oder der Rück-
taste (über der Return- bzw. Absatztaste) UNMARKIERTE Zeichen nach-
einander löscht, so gelöschter Text nirgends abgelegt wird. (Löscht
man aber MARKIERTEN Text mit einer dieser beiden Lösch-Tasten, so wird
auch in diesem Fall der so gelöschte Text im Vim-Register abgelegt.)
Wenn ich Text mit einem der beiden Löschoperatoren (d, D, x und X),
oder MARKIERTEN Text mit einer der beiden Löschtasten, oder bei der
GUI-Version gVim über das Menü >Editieren - Löschen< oder über das
Kontextmenü der rechten Maustaste mit der Option >Löschen< entferne,
so wird der Text nur im Vim-Register abgelegt, sodass dadurch dann
in diesem ein anderer Text zwischengespeichert sein kann, als im
Zwischenspeicher des Betriebssystems.
Wenn man aber markierten Text mit der Windows-Tastenkombination
<STRG-X> bzw. <CTRL-X> ausschneidet (dabei wird der Text kopiert
und gelöscht), oder mit der Windows-Tastenkombination <STRG-C> bzw.
<CTRL-C> kopiert; oder das gleiche bei der GUI-Version gVim über das
Menü >Editieren - Ausschneiden/Kopieren< oder über das Kontextmenü
der rechten Maustaste mit der Option >Ausschneiden/Kopieren< ausführt;
so wird der Text im Zwischenspeicher UND im Vim-Register abgelegt.
Text kann man übrigens beim Betriebssystem Windows aus dem Zwischen-
speicher mit der Tastenkombination <STRG-V> bzw. <CTRL-V> einfügen,
sowie über das Menü >Editieren - Einfügen< und über das Kontextmenü
der rechten Maustaste mit >Einfügen<. Text aus dem Vim-Register fügt
man mit p (put) an der jeweils gewünschten Position ein.
Praktisch hat man also zwei verschiedene Zwischenablagen bzw. Zwischen-
register zur Verfügung, wobei man jeweils die Wahl hat zwischen diesen
drei Möglichkeiten,
- entweder Text nur zu löschen (unmarkierten Text mit <Entf> bzw.
<Del> oder der Rücktaste zeichenweise löschen),
- oder ihn beim Löschen nur ins Vim-Register abzulegen (mit den
Vim-Operatoren x oder d , oder MARKIERTEM Text mit den beiden
Löschtasten <Entf> bzw. <Del> oder der Rücktaste löschen),
- oder Text ausschneidet oder kopiert (ausschneiden mit <STRG-X>
bzw. <CTRL-X>, kopieren mit <STRG-C> bzw. <CTRL-C, ausschneiden
oder kopieren über das Menü >Editieren< oder das Kontextmenü).
Ausschneiden (Löschen + Zwischenspeichern) mit den Löschoperatoren
wird deswegen nicht als 'Ausschneiden' bezeichnet, sondern als 'Löschen',
obwohl es in Wirklichkeit ein Ausschneiden ist, damit diese Art des
Löschens nicht mit dem Ausschneiden über die sonst als 'Ausschneiden'
bezeichneten Funktionen verwechselt wird. Bei letzterem Ausschneiden
wird der Text in beiden Zwischenablagen bzw. Registern abgelegt; wogegen
Text beim Löschen mit den Vim-Operatoren ( x und d ) nur im Vim-Register
abgelegt wird.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 3.2: ERSETZEN (REPLACE)
** Tippe rx , um das Zeichen hinter dem Cursor durch x zu ersetzen. **
1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.
2. Bewege den Cursor, bis er sich auf dem ersten Fehler befindet.
3. Tippe r und anschließend das Zeichen, welches dort stehen sollte.
4. Wiederhole Schritte 2 und 3, bis die erste Zeile gleich der zweiten ist.
---> Als diese Zeite eingegoben wurde, wurden einike falsche Tasten gelippt!
---> Als diese Zeile eingegeben wurde, wurden einige falsche Tasten getippt!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 3.3: ÄNDERN (CHANGE)
** Um eine Änderung bis zum Wortende durchzuführen, tippe ce . **
1. Bewege den Cursor zur ersten unten stehenden mit ---> markierten Zeile.
2. Platziere den Cursor auf das s von Wstwr.
3. Tippe ce und die Wortkorrektur (in diesem Fall tippe örter ).
4. Drücke <ESC> und bewege den Cursor zum nächsten zu ändernden Zeichen.
5. Wiederhole Schritte 3 und 4 bis der erste Satz gleich dem zweiten ist.
---> Einige Wstwr dieser Zlaww lasdjlaf mit dem Ändern-Operator gaaauu werden.
---> Einige Wörter dieser Zeile sollen mit dem Ändern-Operator geändert werden.
Bemerkung: Der Operator c ist quasi eine Kombination aus den Operatoren d
(löschen) und i (einfügen). Bei einer Kombination mit e ist
dieser Operator gut geeignet, Wörter komplett oder teilweise bis
zum Wortende zu korrigieren.
Der Operator C (groß) ist quasi eine Kombination aus dd (Zeile
löschen) und i (einfügen). Dieser ist sehr gut geeignet, Sätze
teilweise ab einer bestimmten Position bis zum Zeilenende zu korri-
gieren.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 3.4: MEHR ÄNDERUNGEN MITTELS c
** Um eine Änderung bis zum Zeilenende durchzuführen, tippe c$ oder C . **
1. Bewege Dich zur ersten unten stehenden mit ---> markierten Zeile.
2. Bewege den Cursor zum ersten Fehler.
3. Tippe c$ oder C .
4. Gib den Rest der Zeile wie in der zweiten ein, und drücke dann <ESC> .
---> Das Ende dieser Zeile soll an die zweite Zeile angeglichen werden.
---> Das Ende dieser Zeile soll mit dem c$ Kommando korrigiert werden.
Bemerkung: Das Change-Kommando c arbeitet mit denselben Bewegungen wie d
(delete-löschen).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 3.5: EINE ANDERE ART DES ERSETZENS (REPLACE)
** Tippe ein großes R , um mehr als ein Zeichen zu ersetzen. **
1. Bewege den Cursor zur ersten unten stehenden, mit ---> markierten Zeile.
Bewege den Cursor zum Anfang des ersten xxx .
2. Nun drücke R und tippe die Nummer, die darunter in der zweiten Zeile
steht, so das diese das xxx ersetzt.
3. Drücke <ESC> , um den Ersetzungsmodus zu verlassen. Bemerke, daß der Rest
der Zeile unverändert bleibt.
4. Wiederhole die Schritte, um das verbliebene xxx zu ersetzen.
---> Das Addieren von 123 zu xxx ergibt xxx.
---> Das Addieren von 123 zu 456 ergibt 579.
Bemerkung: Jedes mal, wenn du im Normal-Modus bist, kannst Du den Cursor auch
jeweils mit w von Wortanfang zu Wortanfang bewegen.
Der Ersetzungsmodus ist dem Einfügemodus ähnlich, aber jedes
eingetippte Zeichen löscht ein vorhandenes Zeichen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 4.1: CURSORPOSITION UND DATEISTATUS
** Tippe CTRL-G (bzw. STRG-G), um Dateiposition und den Dateistatus anzuzeigen **
** Tippe die Zeilennummer gefolgt von gg oder G , um zu dieser Zeile zu springen **
Bemerkung: Lies diese gesamte Lektion, bevor Du irgendeinen Schritt ausführst!!
1. Halte die Ctrl-Taste unten und drücke g . Dies nennen wir CTRL-G.
Eine Statusmeldung am Fuß der Seite erscheint mit dem Dateinamen und der
Position innerhalb der Datei. Merke Dir die Zeilennummer für Schritt 3.
Bemerkung: Möglicherweise siehst Du die Cursorposition in der unteren rechten
Bildschirmecke. Dies ist Folge der 'ruler' Option (siehe :help 'ruler').
Die Taste <Ctrl> kann auf deiner Tastatur auch 'Strg' heißen.
2. Drücke G , um Dich zum Ende der Datei zu begeben.
Tippe gg , um Dich zum Anfang der Datei zu begeben.
3. Gib die Nummer der Zeile ein, auf der Du vorher warst, gefolgt von gg
oder G . Dies bringt Dich zurück zu der Zeile mit dieser Zeilennummer.
4. Wenn Du Dir diese Schritte und die derzeitige Zeilennummer gut eingeprägt
hast, führe die Schritte 1 bis 3 aus.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 4.2: DAS SUCHEN - KOMMANDO
** Tippe / gefolgt von einem Ausdruck, um nach dem Ausdruck zu suchen. **
** Tippe CTRL-O (zurück) oder CTRL-I (vorwärts) um zu früheren Corsorpositionen zu gehen. **
1. Im Normalmodus, tippe das Zeichen / . Bemerke, dass das / und der
Cursor am Fuß des Schirms erscheinen; so, wie beim : Kommando.
2. Nun tippe 'Fehhler' <ENTER>. Dies ist das Wort, nach dem Du suchen willst.
3. Um nach demselben Ausdruck weiterzusuchen, tippe einfach n (für next).
Um nach demselben Ausdruck in der Gegenrichtung zu suchen, tippe N .
4. Um nach einem Ausdruck rückwärts zu suchen , benutze ? statt / .
5. Um (ggf. schrittweise) dahin zurückzukehren, von wo Du gekommen bist,
drücke CTRL-O (Halte Ctrl bzw. Strg unten und drücke den Buchstaben o).
Wiederhole dies, um weiter zurückzugehen. CTRL-I bringt dich vorwärts.
---> Fehler schreibt sich nicht "Fehhler"; Fehhler ist ein Fehler
Bemerkung: Wenn die Suche das Dateiende erreicht hat, wird sie am Anfang
fortgesetzt. Es sei denn, die 'wrapscan' Option wurde abgeschaltet.
Um ein ganzes Wort zu finden, dass also nicht Teil eines anderen
Wortes sein soll, füge davor \< und dahinter \> an.
Indem du bspw. nur \< vor diesem Wort setzt,
findest Du alle Wörter, die mit diesem Wort beginnen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 4.3: PASSENDE KLAMMERN FINDEN
** Tippe % , um eine korrespondierende Klammer ),], oder } zu finden. **
1. Platziere den Cursor auf irgendeines der Zeichen (, [, oder { in der unten
stehenden Zeile, die mit ---> markiert ist.
2. Nun tippe das Zeichen % .
3. Der Cursor bewegt sich zur passenden gegenüberliegenden Klammer.
4. Tippe % , um den Cursor zur anderen passenden Klammer zu bewegen.
5. Setze den Cursor auf eine andere Klammer ( , ) , [ , ] , { oder }
und probiere % aus.
---> Dies ( ist eine Testzeile ( mit [ verschiedenen ] { Klammern } darin. ))
Bemerkung: Diese Funktionalität ist sehr nützlich bei der Fehlersuche in einem
Programmtext, in dem passende Klammern fehlen; oder um jeweils
zueinander korrespondierende Klammern zu finden.
Falls Du ein Start-Skript erstellst, wird ggf. die farbliche Syntax-
Hervorhebung aktiviert sein. Siehe dazu Kapitel 7.2.
Wenn sich dann der Cursor vor einer Klammer befindet, oder jeweils
links oder rechts neben der Klammer, falls der Einfüge-Modus akti-
viert ist, ist dadurch automatisch die korrespondierende Klammer
farblich hervorgehoben.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 4.4: DAS ERSETZUNGSKOMMANDO (SUBSTITUTE)
** Tippe :%s/alt/neu/g , um im ganzen Text 'alt' durch 'neu' zu ersetzen. **
1. Bewege den Cursor zu der unten stehenden mit ---> markierten Zeile.
2. Tippe :s/diee/die <ENTER> . Bemerke, dass der Befehl nur das erste
Vorkommen von "diee" in dieser Zeile ersetzt.
3. Nun tippe :s/diee/die/g . Das Zufügen des Flags g bedeutet, eine
globale Ersetzung über die Zeile durchzuführen, was alle Vorkommen von
"diee" auf der Zeile ersetzt.
4. Um alle Vorkommen in der gesamten Datei zu ändern, tippe :%s/alt/neu/g .
5. Um alle Vorkommen einer Zeichenkette innerhalb zweier Zeilen zu ändern,
tippe :#,#s/alt/neu/g , wobei #,# die Zeilennummern des Zeilenbereichs
sind, in dem die Ersetzung durchgeführt werden soll.
6. Um alle Vorkommen in der gesamten Datei zu finden tippe :%s/alt/neu/g .
6. Um alle Vorkommen in der gesamten Datei zu finden mit jeweils einem Frage-
dialog, ob ersetzt werden soll oder nicht, tippe :%s/alt/neu/gc .
---> diee schönste Zeit, um diee Blumen anzuschauen, ist diee Frühlingszeit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 5.1: AUSFÜHREN EINES EXTERNEN KOMMANDOS
** Gib :! gefolgt von einem externen Kommando (bspw. ls oder dir). **
1. Tippe das vertraute Kommando : , um den Cursor auf den Fuß des Schirms
zu setzen. Dies erlaubt Dir, ein Kommandozeilen-Kommando einzugeben.
2. Nun tippe ein ! (Ausrufezeichen). Dies ermöglicht Dir, ein beliebiges
externes Shellkommando auszuführen, auch mit Argumenten.
3. Als Beispiel tippe ls nach dem ! und drücke <ENTER>. Dies zeigt
eine Auflistung Deines Verzeichnisses; genauso, als wenn Du auf der
Eingabeaufforderung wärst. Oder verwende :!dir , falls :!ls nicht geht.
Bemerkung: Um die durch dieses Kommando angezeigten Ordner und Dateien zu sehen,
kann man diese Liste auch mit den Kommando :r!ls oder :r!dir im
Text unter dem Cursor einzufügen, wie in der Lektion 5.4 erwähnt ist.
Bemerkung: Kommandos müssen immer durch Eingabe von <ENTER> abgeschlossen werden.
Von jetzt an erwähnen wir dies nicht jedes mal.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 5.2: MEHR ÜBER DAS ABSPEICHERN VON DATEIEN
** Um am Text durchgeführte Änderungen zu speichern, tippe :w DATEINAME. **
1. Tippe :!ls oder :!dir , um eine Auflistung Deines Verzeichnisses zu
erhalten. Du weißt nun bereits, dass Du danach <ENTER> drücken musst.
2. Wähle einen Dateinamen, der noch nicht existiert, z.B. TEST.
3. Nun tippe: :w TEST (wobei TEST der gewählte Dateiname ist).
4. Dies speichert die ganze Datei (den Vim Tutor) unter dem Namen TEST.
Um dies zu überprüfen, tippe nochmals :!ls bzw. !dir, um Deinen
Verzeichnisinhalt zu sehen.
Bemerkung: Würdest Du Vim jetzt beenden und danach wieder mit vim TEST
starten, dann wäre diese Datei eine exakte Kopie des Tutors zu dem
Zeitpunkt, als Du ihn gespeichert hast.
5. Nun entferne die Datei durch Eingabe von (MS-DOS): :!del TEST
oder (Unix): :!rm TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 5.3: AUSWÄHLEN VON TEXT ZUM SCHREIBEN
** Um einen Textabschnitt zu speichern, tippe v [Cursorbewegung] :w DATEINAME **
1. Bewege den Cursor zu dieser Zeile.
2. Tippe v (visual) und bewege den Cursor mit j zum fünften Auflistungs-
punkt unten. Der Text wird hervorgehoben (markiert). Falls Du zur Bewegung
die Cursortasten benutzt, funktioniert das Markieren nicht.
3. Drücke das Zeichen : . Am Fuß des Schirms erscheint :'<,'> .
4. Tippe w TEST , wobei TEST ein (hoffentlich) noch nicht vorhandener
Dateiname ist. Vergewissere Dich, daß Du :'<,'>w TEST siehst,
bevor Du Enter drückst.
5. Vim schreibt die ausgewählten Zeilen in die Datei TEST. Benutze :!dir
oder :!ls , um sie zu sehen. Lösche sie noch nicht! Wir werden sie in
der nächsten Lektion benutzen.
Bemerkung: Drücken von v startet die visuelle Auswahl. Du kannst den Cursor
umherbewegen, um die Auswahl größer oder kleiner zu machen.
Anschließend kann man einen Operator anwenden, um mit dem Text etwas
zu tun. Zum Beispiel löscht d und x jeweils den Text.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 5.4: EINLESEN UND ZUSAMMENFÜHREN VON DATEIEN
** Um den Inhalt einer Datei einzulesen, tippe :r DATEINAME **
1. Platziere den Cursor oberhalb dieser Zeile.
2. Nachdem Du Schritt 3 ausgeführt hast, wird der Inhalt der Datei TEST
unterhalb der Position eingefügt, an der du den Curser gesetzt hattest.
Dann bewege Dich wieder abwärts, um diese Lektion (wieder) zu sehen.
3. Nun lies Deine Datei TEST ein, indem Du das Kommando :r TEST ausführst,
wobei TEST der von Dir verwendete Dateiname ist.
Bemerkung: Du kannst auch die Ausgabe eines externen Kommandos einlesen. Zum
Beispiel liest :r !dir oder :r !ls die Ausgabe des Kommandos
dir oder ls ein und platziert sie unterhalb des Cursors.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 6.1: NEUE ZEILEN ERÖFFNEN (OPEN)
** Tippe o oder O , um eine neue Zeile unterhalb oder oberhalb des
Cursors zu öffnen und Dich in den Einfüge-Modus (insert) zu begeben **
1. Bewege den Cursor zu der ersten mit ---> markierten Zeile unten.
2. Tippe o (klein geschrieben), um eine Zeile UNTERHALB des Cursos zu öffnen
und Dich in den Einfügemodus zu begeben.
3. Nun tippe etwas Text und drücke <ESC> , um den Einfügemodus zu verlassen.
---> Öffne eine Zeile unter dieser mit o , wenn der Cursor auf dieser Zeile ist.
4. Um eine Zeile OBERHALB des Cursors aufzumachen, gib einfach ein großes O
statt einem kleinen o ein. Versuche dies auf der unten stehenden Zeile.
---> Öffne eine Zeile über dieser mit O , wenn der Cursor auf dieser Zeile ist.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 6.2: TEXT KOPIEREN UND EINFÜGEN
** Benutze den y Operator, um Text zu kopieren; p , um ihn einzufügen **
** Mit yw kopierst du ein Wort. **
1. Gehe zu der mit ---> markierten Zeile und setze den Cursor hinter 'Dies'.
2. Starte den Visuellen Modus mit v , bewege den Cursor mit l (und ggf.
auch mit h ) genau vor "erste".
3. Tippe y , um den hervorgehoben Text zu kopieren.
4. Bewege den Cursor zum Ende der nächsten Zeile: j$
5. Tippe p , um den Text einzufügen und anschließend: a zweite <ESC> .
6. Benutze den Visuellen Modus, um 'Terxtzeile.' auszuwählen, kopiere mittels
y , bewege Dich zum Ende der nächsten Zeile mit j$ und füge den Text
dort mit p an.
---> a) Dies ist die erste Textzeile.
b) Und das
Bemerkung: Du kannst y auch als Operator verwenden; yw kopiert ein Wort.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 6.3: OPTIONEN SETZEN
** Setze eine Option so, dass eine Suche oder eine Ersetzung Groß- und Kleinschreibung ignoriert **
1. Suche nach 'ignoriere', indem Du /ignoriere eingibst.
Wiederhole die Suche einige Male, indem Du die n - Taste drückst.
2. Setze die 'ic' (Ignore case) - Option, indem Du :set ic oder
:set ignorecase eingibst.
3. Nun suche wieder nach 'ignoriere', indem Du n tippst.
Bemerke, dass jetzt auch Ignoriere und IGNORIERE gefunden wird.
4. Um das Ignorieren von Groß/Kleinschreibung abzuschalten, tippe: :set noic
5. Um die Schreibweise für eine einzige Suche zu ignorieren,
benutze \c im Suchausdruck, also: /ignoriere\c <ENTER>
6. Setze die 'hlsearch' und 'incsearch' - Optionen: :set hls is
7. Wiederhole die Suche und beobachte, was passiert: /ignoriere <ENTER>
Bemerkung: Ergebnisse: Bei hlsearch (hls) werden die Suchergebnisse farbig
hervorgehoben. Bei incsearch (is) werden schon während des Schrei-
bens des Suchkommandos Suchergebnisse farblich hervorgehoben darge-
stellt. Anstatt der Langform der Kommandos können stattdessen jeweils
deren Kurzformen eingeben werden.
8. Um die farbliche Hervorhebung der Treffer zu enfernen, gib ein:
:nohls oder :nohlsearch oder :set nohls oder :set nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 7.1 : AUFRUFEN VON HILFE
** Nutze das eingebaute Hilfesystem **
Vim besitzt ein umfassendes eingebautes Hilfesystem. Für den Anfang probiere
eins der drei folgenden Dinge aus:
- Drücke die <Hilfe> - Taste (falls Du eine besitzt)
- Drücke die <F1> Taste (falls Du eine besitzt)
- Tippe :help <ENTER>
Lies den Text im Hilfefenster, um zu verstehen wie die Hilfe funktioniert.
Tippe CTRL-W CTRL-W , um von einem Fenster zum anderen zu springen.
Tippe :q <ENTER> , um das Hilfefenster zu schließen.
Du kannst Hilfe zu praktisch jedem Thema finden, indem Du dem ":help"-
Kommando ein Argument gibst. Probiere folgendes (<ENTER> nicht vergessen):
:help w
:help c_CTRL-D
:help insert-index
:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 7.2: ERSTELLE EIN START-SKRIPT
** Aktiviere die eingebauten Funktionalitäten von Vim **
Vim besitzt viele Funktionalitäten, die über Vi hinausgehen, aber die meisten
von ihnen sind standardmäßig deaktiviert. Um mehr Funktionalitäten zu nutzen,
musst Du eine "vimrc" - Datei erstellen.
1. Starte das Editieren der "vimrc"-Datei, abhängig von Deinem System:
:e ~/.vimrc für Unix
:e $VIM/_vimrc für MS-Windows
2. Nun lies den Inhalt der Beispiel-"vimrc"-Datei ein:
:r $VIMRUNTIME/vimrc_example.vim
3. Speichere die Datei mit:
:w
Beim nächsten Start von Vim wird die Syntaxhervorhebung aktiviert sein.
Du kannst all Deine bevorzugten Optionen zu dieser "vimrc"-Datei zufügen.
Für mehr Informationen tippe :help vimrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lektion 7.3: VERVOLLSTÄNDIGEN
** Kommandozeilenvervollständigung mit CTRL-D and <TAB> **
1. Stelle sicher, daß Vim nicht im vi-Kompatibilitätsmodus ist: :set nocp
2. Siehe nach, welche Dateien im Verzeichnis existieren: :!ls oder :dir
3. Tippe den Beginn eines Kommandos: :e
4. Drücke CTRL-D und Vim zeigt eine Liste mit "e" beginnender Kommandos.
5. Drücke <TAB> und Vim vervollständigt den Kommandonamen zu ":edit".
6. Nun füge ein Leerzeichen und den Beginn einer existierenden Datei an:
:edit DAT
7. Drücke <TAB>. Vim vervollständigt den Namen (falls er eindeutig ist).
Bemerkung: Vervollständigung funktioniert für viele Kommandos. Versuche einfach
CTRL-D und <TAB>. Dies ist insbesondere nützlich für :help .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Damit ist der Vim Tutor beendet. Die Intention war, einen kurzen und
bündigen Überblick über den Vim Editor zu liefern; gerade genug, um relativ
leicht mit ihm umgehen zu können. Der Vim Tutor hat nicht den geringsten
Anspruch auf Vollständigkeit; Vim hat noch weitaus mehr Kommandos. Lies als
nächstes das User Manual: ":help user-manual".
Für weiteres Lesen und Lernen ist folgendes Buch empfohlen :
Vim - Vi Improved - von Steve Oualline
Verlag: New Riders
Das erste Buch, welches durchgängig Vim gewidmet ist. Besonders nützlich
für Anfänger. Viele Beispiele und Bilder sind enthalten.
Siehe http://iccf-holland.org/click5.html
Folgendes Buch ist älter und mehr über Vi als Vim, aber auch empfehlenswert:
Textbearbeitung mit dem vi-Editor - von Linda Lamb und Arnold Robbins
Verlag O'Reilly - ISBN: 3897211262
In diesem Buch kann man fast alles finden, was man mit Vi tun möchte.
Die sechste Ausgabe enthält auch Informationen über Vim.
Als aktuelle Referenz für Version 6.2 und knappe Einführung dient das
folgende Buch:
vim ge-packt von Reinhard Wobst
mitp-Verlag, ISBN 3-8266-1425-9
Trotz der kompakten Darstellung ist es durch viele nützliche Beispiele auch
für Einsteiger empfehlenswert. Probekapitel und die Beispielskripte sind
online erhältlich. Siehe http://iccf-holland.org/click5.html
Dieses Tutorial wurde geschrieben von Michael C. Pierce and Robert K. Ware,
Colorado School of Mines. Es benutzt Ideen, die Charles Smith, Colorado State
University, zur Verfügung stellte. E-mail: bware@mines.colorado.edu.
Bearbeitet für Vim von Bram Moolenaar.
Deutsche Übersetzung von Joachim Hofmann 2007. E-mail: Joachim.Hof@gmx.de
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Geändert von dieweltist (25.10.2007 um 14:52 Uhr)
|
|
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 Uhr.
|
|
|