*usr_20.txt* Für Vim version 8.1. Letzte Änderung: 24.Apr.2006 VIM BENUTZERHANDBUCH - von Bram Moolenaar Befehle auf der Befehlszeile schnell tippen Vim hat ein Paar generische Fähigkeiten, die es einfacher machen, Befehle einzugeben. Doppelpunkt-Befehle können abgekürzt, editiert und wiederholt werden. Vervollständigung ist für fast alles verfügbar. |20.1| Editieren der Befehlszeile |20.2| Abkürzungen auf der Befehlszeile |20.3| Vervollständigung auf der Befehlszeile |20.4| Geschichte der Befehlszeile |20.5| Befehlszeilen-Fenster Nächstes Kapitel: |usr_21.txt| Weggehen und wiederkommen Vorheriges Kapitel: |usr_12.txt| Klevere Tricks Inhaltsübersicht: |usr_toc.txt| ============================================================================== *20.1* Editieren der Befehlszeile Wenn Sie einen Doppelpunkt-Befehl (mit :), oder eine Zeichenkette mit / oder ? suchen, bringt Vim den Cursor ans Ende des Bildschirms. Dort tippen Sie den Befehl oder das Suchmuster. Diese Zeile heißt die Befehlszeile. Auch wenn sie zum Eingeben eines Suchbefehls benutzt wird. Die offensichtlichste Art, den getippten Befehl zu editieren, ist das Drücken der Rückschritttaste. Dies löscht das Zeichen vor dem Cursor. Um ein anderes, früher getipptes Zeichen zu löschen, bewegen Sie zunächst den Cursor mit den Pfeiltasten. Sie haben zum Beispiel dies getippt: > :s/col/pig/ Bevor Sie drücken, bemerken Sie, dass »col« »cow« sein sollte. Um dies zu korrigieren, tippen Sie fünfmal . Der Cursor ist nun genau nach »col«. Tippen Sie und »w« um zu korrigieren: > :s/cow/pig/ Nun können Sie direkt drücken. Sie brauchen den Cursor nicht an das Zeilenende zu bewegen, bevor Sie den Befehl ausführen. Die am häufigsten benutzten Tasten, um in der Befehlszeile zu bewegen: Ein Zeichen links Ein Zeichen rechts oder Ein Wort links oder Ein Wort rechts CTRL-B oder zum Beginn der Befehlszeile CTRL-E oder zum Ende der Befehlszeile Anmerkung: (Cursor links mit Umschalttaste) und (Cursor links mit Steuerungstaste) funktionieren nicht auf allen Tastaturen. Dasselbe für die anderen Kombinationen mit Umschalt- und Steuerungs- Taste. Sie können auch die Maus benutzen, um den Cursor zu bewegen. LÖSCHEN Wie erwähnt, löscht das Zeichen vor dem Cursor.Um ein ganzes Wort zu löschen, benutzen Sie CTRL-W. /the fine pig ~ CTRL-W /the fine ~ CTRL-U entfernt allen Text, erlaubt Ihnen also, von Neuem zu beginnen. ÜBERSCHREIBEN Die Taste (Einfg) schaltet zwischen dem Einfügen von Zeichen und dem Ersetzen der bestehenden um. Beginnen Sie mit diesem Text: /the fine pig ~ Bewegen Sie den Cursor zum Beginn von »fine« mit zweimal (oder acht Mal , falls nicht funktioniert. Nun drücken Sie , um zu Überschreiben umzuschalten, und tippen Sie »great«: /the greatpig ~ Hoppla, wir haben das Leerzeichen verloren. Jetzt benutzen Sie nicht , weil das das »t« löschen würde (dies unterscheidet sich vom Ersetzungsmodus). Drücken Sie stattdessen , um vom Überschreiben zum Einfügen zu wechseln, und tippen Sie das Leerzeichen: /the great pig ~ ABBRECHEN Sie dachten daran, einen Befehl mit : oder / auszuführen, haben sich aber anders entschlossen. Um loszuwerden, was Sie bereits getippt haben, ohne es auszuführen, drücken Sie CTRL-C oder . Anmerkung: ist die universelle Taste um »herauszukommen«. Unglücklicherweise führt im guten alten Vi das Drücken von in einer Befehlszeile den Befehl aus! Weil das als Fehler betrachtet werden könnte, benutzt Vim , um den Befehl zurückzunehmen. Aber mit der Option 'cpoptions' kann es Vi-kompatibel gemacht werden. Und wenn eine Belegung verwendet wird (die möglicherweise für Vi geschrieben wurde), funktioniert ebenfalls Vi-kompatibel. Daher ist das Verwenden von CTRL-C eine Methode, die immer funktioniert. Falls Sie am Anfang der Befehlszeile sind, bricht das Drücken von den Befehl ab. Es ist gleich dem Löschen des »:« oder »/«, mit dem die Zeile beginnt. ============================================================================== *20.2* Abkürzungen auf der Befehlszeile Einige der »:«-Befehle sind wirklich lang. Wir haben bereits erwähnt, dass »:substitute« als »:s« abgekürzt werden kann. Dies ist ein generischer Mechanismus, alle »:«-Befehle können abgekürzt werden. Wie kurz kann ein Befehl werden? Es gibt 26 Buchstaben, und viel mehr Befehle. »:set« zum Beispiel beginnt auch mit »:s«, aber »:s« löst keinen »:set«-Befehl aus. Stattdessen kann »:set« als »:se« abgekürzt werden. Wenn die kürzere Form eines Befehls für zwei Befehle verwandt werden könnte, steht sie nur für einen von ihnen. Es gibt keine Logik dahinter, welche, Sie müssen sie lernen. In den Hilfedateien wird die kürzeste Form, die funktioniert, erwähnt. Zum Beispiel: > :s[ubstitute] Dies bedeutet, dass die kürzeste Form von »:substitute« »:s« ist. Die folgenden Zeichen sind optional. Also funktionieren auch »:su« und »:sub«. In dem Benutzerhandbuch benutzen wir entweder den vollen Namen eines Befehls, oder eine Kurzform, die noch lesbar ist. »:function« kann zum Beispiel als »:fu« abgekürzt werden. Aber weil die meisten Leute nicht verstehen, für was das steht, verwenden wir »:fun«. (Vim hat keinen Befehl »:funny«, ansonsten wäre auch »:fun« verwirrend.) Es empfiehlt sich, dass sie in Vim-Skripten den vollen Befehlsnamen schreiben. Das macht es leichter lesbar, wenn Sie später Änderungen machen. Außer für einige häufig verwandte Befehle wie »:w« (»:write«) und »:r« (»:read«). Ein besonders verwirrendes Exemplar ist »:end«, was für »:endif«, »:endwhile« oder »:endfunction« stehen könnte. Verwenden Sie deshalb immer den vollen Namen. KURZNAMEN FÜR OPTIONEN Im Benutzerhandbuch wird die lange Version von Optionsnamen verwandt. Viele Optionen haben auch einen Kurznamen. Anders als bei »:«-Befehlen gibt es nur einen Kurznamen, der funktioniert. Der Kurzname von 'autoindent' ist zum Beispiel 'ai'. Also machen diese beiden Befehle dasselbe: > :set autoindent :set ai Sie können die vollständige Liste von Lang- und Kurznamen hier |option-list| finden. ============================================================================== *20.3* Vervollständigung auf der Befehlszeile Dies ist eine von Vims Fähigkeiten, das durch sich selbst ein Grund ist, von Vi zu Vim zu wechseln. Wenn Sie sie einmal verwandt haben, können Sie nicht mehr ohne. Angenommen, Sie haben ein Verzeichnis, das diese Dateien enthält: info.txt intro.txt bodyofthepaper.txt Um die letzte zu editieren, benutzen Sie den Befehl: > :edit bodyofthepaper.txt Leicht tippt sich dies falsch. Eine viel schnellere Weise ist: > :edit b Was denselben Befehl ergibt. Was passiert? Die Taste vervollständigt das Wort vor dem Cursor. In diesem Falle »b«. Vim schaut in das Verzeichnis und findet nur eine Datei, die mit »b« beginnt. Das muss die Datei sein, nach der Sie suchen, also vervollständigt Vim den Dateinamen für Sie. Tippen Sie nun: > :edit i Vim macht einen Signalton und gibt Ihnen: > :edit info.txt Der Piepton bedeutet, dass Vim mehr als eine Übereinstimmung gefunden hat. Er verwendet dann die (alphabetisch) erste Übereinstimmung. Falls Sie nochmals drücken, erhalten Sie: > :edit intro.txt Falls Ihnen also das erste nicht die Datei gibt, nach der Sie suchen, drücken Sie sie nochmals. Falls es mehrere Übereinstimmungen gibt, sehen Sie sie alle, eine nach der anderen. Falls Sie auf dem letzten übereinstimmenden Eintrag drücken, kommen Sie zu dem zurück, was Sie als erstes getippt haben: > :edit i Dann beginnt es von neuem. Vim kreist also durch die Liste von Übereinstimmungen. Verwenden Sie CTRL-P, um in anderer Richtung durch die Liste zu gehen: <------------------- -------------------------+ | --> --> :edit i :edit info.txt :edit intro.txt <-- CTRL-P <-- CTRL-P | +---------------------- CTRL-P ------------------------> KONTEXT Wenn Sie »:set i« statt »:edit i« tippen und drücken, erhalten Sie: > :set icon Hey, warum haben Sie nicht »:set info.txt« bekommen? Das ist so, weil Vim kontextbezogene Vervollständigung hat. Die Art der Wörter, nach denen Vim sucht, hängt von dem Befehl vor ihm ab. Vim weiß, dass man nach dem Befehl »:set« keinen Dateinamen, aber einen Optionsnamen verwenden kann. Und wieder, falls Sie weiter tippen, kreist Vim durch alle Übereinstimmungen. Es gibt schon ein Paar, besser man tippt zuerst weitere Zeichen: > :set isk Gibt: > :set iskeyword Tippen Sie nun »=« und drücken Sie : > :set iskeyword=@,48-57,_,192-255 Was hier geschieht, ist, dass Vim den alten Wert der Option einfügt. Nun können Sie ihn editieren. Was mit vervollständigt wird, ist, was Vim an der Stelle erwartet. Probieren Sie es einfach aus, um zu sehen, wie es funktioniert. In manchen Situationen werden Sie nicht bekommen, was Sie wollen. Das ist entweder so, weil Vim nicht weiß, was Sie wollen, oder weil Vervollständigung für diese Situation nicht implementiert wurde. In dem Fall bekommen Sie ein eingefügt (angezeigt als ^I) ÜBEREINSTIMMUNGEN AUFLISTEN Wenn es viele Übereinstimmungen gibt, würden Sie gerne einen Überblick sehen. Machen Sie dies, indem Sie CTRL-D drücken. Zum Beispiel ergibt das Drücken von CTRL-D nach: > :set is dies: > :set is incsearch isfname isident iskeyword isprint :set is Vim listet die Übereinstimmungen auf und zeigt dann wieder den Text an, den Sie getippt haben. Nun können Sie die Liste nach dem Element durchsuchen, das Sie wollten. Falls es nicht da ist, können Sie benutzen, um das Wort zu korrigieren. Falls es viele Übereinstimmungen gibt, tippen Sie ein Paar Zeichen mehr, bevor Sie drücken, um den Rest zu vervollständigen. Falls Sie achtsam geschaut haben, haben Sie bemerkt, das »incsearch« nicht mit »is« beginnt. In diesem Fall steht »is« für den Kurznamen von »incsearch«. (Viele Optionen haben einen kurzen und einen langen Namen.) Vim ist schlau genug zu wissen, dass Sie möglicherweise den Kurznamen der Option in den langen Namen erweitern wollten. ES GIBT MEHR Der Befehl CTRL-L vervollständigt das Wort zu der längsten eindeutigen Zeichenkette. Falls Sie »:edit i« tippen, und es gibt die Dateien »info.txt« und »info_backup.txt«, bekommen Sie »:edit info«. Die Option 'wildmode' kann benutzt werden, um die Weise zu ändern, wie Vervollständigung arbeitet. Die Option 'wildmenu' kann benutzt werden, um eine Menü-ähnliche Liste von Übereinstimmungen zu bekommen. Benutzen Sie die Option 'suffixes', um Dateien anzugeben, die weniger wichtig sind und am Ende der Dateiliste erscheinen. Die Option 'wildignore' gibt Dateien an, die überhaupt nicht aufgelistet werden. Mehr über all dies hier: |cmdline-completion| ============================================================================== *20.4* Geschichte der Befehlszeile In Kapitel 3 haben wir kurz den Verlauf erwähnt. Grundsätzlich können Sie die Taste verwenden, um eine ältere Befehlszeile zurückzuholen. bringt Sie dann zu den neueren Befehlen zurück. Es gibt tatsächlich vier Verläufe. Die, die wir hier erwähnen, sind für »:«-Befehle und für die Suchbefehle »/« und »?«. Die Befehle »/« und »?« teilen eine Geschichte, weil Sie beide Suchbefehle sind. Die beiden anderen Verläufe sind für Ausdrücke und Eingabezeilen für die Funktion input(). |cmdline-history| Angenommen, Sie haben einen Befehl »:set« gegeben, zehn weitere Doppelpunkt-Befehle getippt, und wollen nun diesen »:set«-Befehl wiederholen. Sie könnten »:« drücken und dann zehn Mal . Es gibt einen schnelleren Weg: > :se Vim geht nun zu dem vorigen Befehl zurück, der mit »se« begann. Sie haben eine gute Chance, dass dies der »:set«-Befehl ist, nach dem Sie suchen. Zumindest sollten Sie nicht sehr oft drücken müssen (solange Sie nicht nur »:set«-Befehle gegeben haben). Die Taste verwendet den bis dahin getippten Text und vergleicht ihn mit den Zeilen in der Geschichte. Nur übereinstimmende Zeilen werden verwandt. Falls Sie die Zeile, nach der Sie suchen, nicht finden, verwenden Sie , um zu dem, was Sie getippt haben, zurückzugehen, und korrigieren Sie es. Oder verwenden Sie CTRL-U, um ganz von Neuem zu beginnen. Um alle Zeilen im Verlauf zu sehen: > :history Das ist der Verlauf der »:«-Befehle. Der Suchverlauf wird mit diesem Befehl angezeigt: > :history / CTRL-P funktioniert wie , außer dass es nicht entscheidend ist, was Sie bereits getippt haben. Ähnlich für CTRL-N und . CTRL-P steht für »previous« (vorheriges), CTRL-N für »nächstes«. ============================================================================== *20.5* Befehlszeilen-Fenster Text in der Befehlszeile tippen funktioniert anders als im Einfüge-Modus. Es erlaubt nicht viele Befehle, um den Text zu ändern. Für die meisten Befehle ist das in Ordnung, aber manchmal müssen Sie einen komplizierten Befehl tippen. Dann ist das Befehlszeilenfenster nützlich. Öffnen Sie das Befehlszeilenfenster mit diesem Befehl: > q: Vim öffnet nun ein (kleines) Fenster am unteren Bildschirmrand. Es enthält den Verlauf der Befehlszeile und am Ende eine leere Zeile: +-------------------------------------+ |other window | |~ | |file.txt=============================| |:e c | |:e config.h.in | |:set path=.,/usr/include,, | |:set iskeyword=@,48-57,_,192-255 | |:set is | |:q | |: | |command-line=========================| | | +-------------------------------------+ Sie sind nun im Normalmodus. Sie können die Tasten »hjkl« verwenden, um umherzubewegen. Gehen Sie zum Beispiel mit »5k« hoch zu der Zeile »:e config.h.in«. Tippen Sie »$h«, um zu dem »i« von »in« zu gehen, und tippen Sie »cwout«. Nun haben Sie die Zeile zu folgendem verändert: :e config.h.out ~ Nun drücken Sie und dieser Befehl wird ausgeführt. Das Befehlszeilenfenster schließt sich. Der Befehl führt die Zeile unter dem Cursor aus. Es ist nicht entscheidend, ob Vim im Einfüge- oder im Normalmodus ist. Änderungen im Befehlszeilenfenster gehen verloren. Sie ergeben keine Änderungen im Verlauf. Außer dass die ausgeführten Befehle an das Ende des Verlaufs angefügt werden, wie mit allen ausgeführten Befehlen. Das Befehlszeilenfenster ist sehr nützlich, wenn Sie Übersicht über den Verlauf haben, nach einem ähnlichen Befehl suchen, ihn ein Bisschen verändern und ihn ausführen wollen. Ein Suchbefehl kann verwandt werden, um etwas zu finden. Im vorigen Beispiel hätte der Suchbefehl »?config« verwandt werden können, um den vorherigen Befehl zu finden, der »config« enthält. Es ist ein Bisschen komisch, weil Sie eine Befehlszeile benutzen, um im Befehlszeilenfenster zu suchen. Während Sie den Suchbefehl tippen, können Sie kein anderes Befehlszeilen-Fenster öffnen, es kann nur eins geben. ============================================================================== Nächstes Kapitel: |usr_21.txt| Weggehen und wiederkommen Copyright: siehe |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl: