Das funktioniert mit vi, nvi und Vim, aber nicht mit elvis oder vile.
Substitution und regulre Ausdrcke | 15
\< \>
Entspricht Zeichen am Anfang (\<) oder Ende (\>) eines
Wortes. Das Ende oder der Anfang eines Wortes ist ent-
weder durch ein Interpunktionszeichen oder durch ein
Leerzeichen festgelegt. Im Gegensatz zu \(...\) mssen
sie nicht in passenden Paaren benutzt werden.
POSIX-Klammerausdrcke
POSIX- Klammerausdrcke knnen Folgendes enthalten:
Zeichenklassen
Eine POSIX- Zeichenklasse besteht aus Stichwrtern, die
in [: und :] eingeschlossen sind. Die Stichwrter
beschreiben unterschiedliche Zeichenklassen, z. B. alpha-
betische Zeichen, Steuerzeichen usw. (siehe die folgende
Tabelle).
Sortiersymbole
Ein Sortiersymbol ist eine Folge aus mehreren Zeichen,
die als Einheit betrachtet werden mssen. Es besteht aus
den Zeichen, die zwischen [. und .] eingeschlossen sind.
quivalenzklassen
Eine quivalenzklasse listet eine Gruppe von Zeichen auf,
die als quivalent betrachtet werden sollen, etwa e und
. Sie besteht aus einem benannten Element aus der Loka-
lisierung, eingeschlossen zwischen [= und =].
Alle drei Konstrukte mssen innerhalb der eckigen Klammern
eines Klammerausdrucks stehen.
POSIX-Zeichenklassen
Klasse Entsprechende Zeichen
[:alnum:] Alphanumerische Zeichen
[:alpha:] Alphabetische Zeichen
[:blank:] Leerzeichen und Tabulatoren
[:cntrl:] Steuerzeichen
16 | vi und Vim kurz & gut
Klasse Entsprechende Zeichen
[:digit:] Numerische Zeichen
[:graph:] Druckbare und sichtbare (Nicht-Leer-)Zeichen
[:lower:] Kleinbuchstaben
[:print:] Druckbare Zeichen (einschlielich Whitespace)
[:punct:] Interpunktionszeichen
[:space:] Whitespace-Zeichen
[:upper:] Grobuchstaben
[:xdigit:] Hexadezimalzahlen
Metazeichen in Ersetzungsstrings
\n Wird ersetzt durch den Text, der dem n-ten Muster ent-
spricht, das vorher durch \( und \) gesichert wurde,
wobei n eine Zahl zwischen eins und neun ist. Zuvor gesi-
cherte Muster (die sich in Haltepuffern befinden) werden
von links auf der Zeile gezhlt.
\ Behandelt das folgende Sonderzeichen als normales Zei-
chen. Um einen echten Backslash anzugeben, tippen Sie
zwei hintereinander ein (\\).
& Wird ersetzt durch den gesamten Text, der dem Such-
muster in einem Ersetzungsstring entspricht. Das ist ntz-
lich, wenn man Text nicht noch einmal eintippen mchte.
~ Der gefundene String wird durch den Ersetzungstext
ersetzt, der im letzten Substitute-Befehl angegeben wurde.
Das ist ntzlich, wenn man eine Bearbeitung wiederholen
mchte.
\u oder \l
ndert das nchste Zeichen im Ersetzungsstring in einen
Grobuchstaben bzw. Kleinbuchstaben.
\U oder \L und \e oder \E
\U und \L sind vergleichbar mit \u und \l, aber alle fol-
genden Zeichen werden bis zum Ende des Ersetzungsst-
rings oder bis \e oder \E erreicht werden in Gro- oder
Substitution und regulre Ausdrcke | 17
Kleinbuchstaben konvertiert. Wenn es kein \e oder \E
gibt, werden alle Zeichen des Ersetzungstextes durch \U
oder \L erfasst.
Weitere Substitutionstricks
Sie knnen vi anweisen, die Gro- und Kleinschreibung
zu ignorieren, indem Sie :set ic eintippen.
Ein einfaches :s ist das gleiche wie :s//~/.
:& ist das gleiche wie :s. Sie knnen hinter das & noch ein
g schreiben, um die Substitution global auf der Zeile wirk-
sam werden zu lassen, und es sogar in einem Zeilenbereich
benutzen.
Sie knnen den &-Schlssel als vi-Befehl benutzen, um
den :&-Befehl auszufhren, d.h. um die letzte Substitution
zu wiederholen.
Der :~-Befehl ist vergleichbar mit dem :&-Befehl, aller-
dings mit einem feinen Unterschied: Das verwendete
Suchmuster ist der letzte regulre Ausdruck, der in irgend-
einem Befehl benutzt wurde, nicht unbedingt der aus dem
letzten Substitute-Befehl.
Neben dem /-Zeichen knnen Sie ein beliebiges nichtnal-
phanumerisches, Nicht-Whitespace-Zeichen als Trenner
benutzen. Ausgenommen sind Backslash, doppelte
Anfhrungszeichen und der senkrechte Strich (\, " und |).
Wenn die Option edcompatible aktiviert ist, erinnert sich
vi an die Flags (g fr global und c fr Besttigung), die in
der letzten Substitution benutzt wurden, und wendet sie
auf die nchste an.
ex-Befehle
Dieser Abschnitt fasst die ex-Befehle zusammen , die am Dop-
pelpunkt-Prompt in vi verwendet werden.
18 | vi und Vim kurz & gut
Befehlssyntax
:[Adresse] Befehl [Optionen]
Adresssymbole
Adresse Enthlt
1,$ Alle Zeichen in der Datei
x,y Zeilen x bis y
x;y Zeilen x bis y, wobei die aktuelle Zeile auf
x zurckgesetzt wird
0 Anfang der Datei
. Aktuelle Zeile
n Absolute Zeilennummer n
$ Letzte Zeile
% Alle Zeilen; identisch mit 1,$
x-n n Zeilen vor x
x+n n Zeilen hinter x
-[n] Eine oder n Zeilen vorher
+[n] Eine oder n Zeilen weiter
x Zeile markiert mit x (einfaches Anfhrungs-
zeichen)
Vorherige Marke (zwei einfache Anfh-
rungszeichen)
/Muster/ oder ?Muster? Weiter oder zurck zur Zeile, in der Mus-
ter passt
Befehlsoptionssymbole
Symbol Bedeutung
! Eine Variante des Befehls
Zahl Wiederholt den Befehl Zahl Male
Datei Dateiname: % ist aktuelle Datei, # ist vorhergehende Datei
ex-Befehle | 19
Alphabetische Liste der Befehle
Die folgende Tabelle der ex-Befehle behandelt sowohl Stan-
dard-ex-Befehle als auch ausgewhlte Befehle, die spezifisch
fr Vim sind. Befehle, die in Vim verbessertes vi behandelt
werden, wurden hier weggelassen.
Kompletter Name Befehl Nur Vim
Abbrev ab [Stringtext]
Append [Adresse] a[!]
Text
.
Args ar
Args args Dateien
Bdelete [Zahl] bd[!] [Zahl]
Buffer [Zahl] b[!] [Zahl]
Buffers [Zahl] buffers[!]
Center [Adresse] ce [Breite]
Change [Adresse]c[!]
Text
.
Chdir cd Verzeichnis
Copy [Adresse] co Ziel
Delete [Adresse] d [Puffer]
Edit e [!][+n] [Dateiname]
File f [Dateiname]
Global [Adresse]g[!]/Muster/[Befehle]
Insert [Adresse]i[!]
Text
.
Join [Adresse]j[!][Zahl]
K (mark) [Adresse] k Zeichen
Left [Adresse] le [Zahl]
20 | vi und Vim kurz & gut
Kompletter Name Befehl Nur Vim
List [Adresse] l [Zahl]
Map map Zeichen Befehle
Mark [Adresse] ma Zeichen
Mkexrc mk[!] Datei
Move [Adresse] m Ziel
Next n[!] [[+Befehl] Dateiliste]
Number [Adresse] nu [Zahl]
Open [Adresse] o [/Muster/]
Preserve pre
Previous prev[!]
Print [Adresse] p [Zahl]
[Adresse] P [Zahl]
Put [Adresse] pu [Zeichen]
Quit q[!]
Read [Adresse] r Dateiname
Read [Adresse] r ! Befehl
Recover rec [Dateiname]
Rewind rew[!]
Right [Adresse] ri [Zahl]
Set set
set Option
set noOption
set Option=Wert
set Option?
Shell sh
Source so Dateiname
Stop st
Substitute [Adresse] s [/Muster/Ersetzung/]
[Optionen]
Suspend su
ex-Befehle | 21
Kompletter Name Befehl Nur Vim
T (to) [Adresse]t Ziel
Tag [Adresse] ta Tag
Unabbreviate una Wort
Undo u
Unmap unm Zeichen
V (global exclude) [Adresse] v/Muster/[Befehle]
Version ve
Visual [Adresse] vi [Typ] [Zahl]
Visual vi [+n] [Dateiname]
Write [Adresse] w[!] [[>>]Dateiname]
Write [Adresse] w !Befehl
Wall (write all) wa[!]
Wq (write + quit) wq[!]
Wqall (write all + quit) wqa[!]
Xit x
Yank [Adresse] y [Zeichen] [Zahl]
Z (Position der Zeile) [Adresse] z[Typ] [Zahl]
Typ kann sein:
+ Platziert Zeile am Anfang des Fensters
(Standard)
- Platziert Zeile am Ende des Fensters
. Platziert Zeile in der Mitte des Fensters
^ Gibt das vorhergehende Fenster aus
= Platziert Zeile in der Mitte des Fensters
und lsst die aktuelle Zeile auf dieser
Zeile
! (Ausfhrungsbefehl) [Adresse] !Befehl
@ (Ausfhrungsregister) [Adresse] @ [Zeichen]
= (Zeilennummer) [Adresse] =
22 | vi und Vim kurz & gut
Kompletter Name Befehl Nur Vim
< > (Verschieben) [Adresse] < [Zahl]
[Adresse] > [Zahl]
& (Substitution wieder-
holen)
[Adresse] & [Optionen] [Zahl]
~ [Adresse]~[Zahl]
Wie &, allerdings mit dem zuletzt benutzten
regulren Ausdruck; Details siehe Kapitel 6 von
Learning the vi and Vim Editors
Return (nchste Zeile) ENTER
Address Adresse
Initialisierung
vi fhrt die folgenden Initialisierungsschritte aus:
1. Wenn die EXINIT-Umgebungsvariable existiert, werden
die Befehle ausgefhrt, die in ihr stehen. Mehrere Befehle
werden durch ein Pipe-Symbol (|) getrennt.
2. Wenn EXINIT nicht existiert, nach der Datei
$HOME/.exrc suchen. Falls diese existiert, wird sie gele-
sen und ausgefhrt.
3. Wenn weder EXINIT noch $HOME/.exrc existieren, wird
die Option exrc aktiviert und die Datei ./.exrc gelesen
und ausgefhrt, falls sie existiert.
4. Fhrt Such- oder Goto-Befehle aus, die mit +/Muster
oder +n-Kommandzeilenoptionen angegeben werden
(POSIX: -c Option).
Bei den .exrc- Dateien handelt es sich um einfache Skripten mit
ex-Befehlen; die Befehle in ihnen bentigen keinen vorange-
stellten Doppelpunkt. Kommentare in den Skripten stehen auf
Zeilen, die mit einem doppelten Anfhrungszeichen beginnen
("). Das wird empfohlen.
Initialisierung | 23
Wiederherstellung
Die Befehle ex -r und vi -r listen alle Dateien auf, die man
wiederherstellen kann. Man kann dann den Befehl
$ vi -r Datei
einsetzen, um eine bestimmte Datei wiederherzustellen.
Selbst ohne einen Absturz kann man das System zwingen, den
Puffer aufzubewahren, und zwar mit dem Befehl :pre (preser-
ve).
vi-Einstellungsoptionen
Option Vorgabe
autoindent (ai) noai
autoprint (ap) ap
autowrite (aw) noaw
beautify (bf) nobf
directory (dir) /tmp
edcompatible noedcompatible
errorbells (eb) errorbells
exrc (ex) noexrc
hardtabs (ht) 8
ignorecase (ic) noic
lisp nolisp
list nolist
magic magic
mesg mesg
novice nonovice
number (nu) nonu
open open
24 | vi und Vim kurz & gut
Option Vorgabe
optimize (opt) noopt
paragraphs (para) IPLPPPQP LIpplpipbp
prompt prompt
readonly (ro) noro
redraw (re)
remap remap
report 5
scroll halbes Fenster
sections (sect) SHNHH HU
shell (sh) /bin/sh
shiftwidth (sw) 8
showmatch (sm) nosm
showmode noshowmode
slowopen (slow)
tabstop (ts) 8
taglength (tl) 0
tags tags /usr/lib/tags
tagstack tagstack
term (aus $TERM)
terse noterse
timeout (to) timeout
ttytype (aus $TERM)
warn warn
window (w)
wrapscan (ws) ws
wrapmargin (wm) 0
writeany (wa) nowa
vi-Einstellungsoptionen | 25
Nichts ist wie das Original
Viele Jahre lang war der Quellcode fr den Original-vi nur
verfgbar, wenn man auch eine Unix-Quellcodelizenz hatte.
Diese Tatsache fhrte zur Entwicklung der ganzen vi-Klone,
die in dieser Referenz beschrieben werden.
Im Januar 2002 wurden die Quellen fr die Original-ex und -
vi unter einer Open Source-Lizenz zur Verfgung gestellt.
Dieser Code lsst sich nicht einfach so kompilieren, und eine
Portierung ist schwierig. Glcklicherweise hat sich schon
jemand diese Arbeit gemacht. Wenn Sie den ursprnglichen,
echten vi benutzen wollen, laden Sie den Quellcode herunter
und kompilieren Sie ihn selbst. Mehr Informationen unter http:
//ex-vi.sourceforge.net/.
Verbesserte Tags und Tag-Stacks
Vim und die meisten anderen vi-Klone bieten verbesserte Tag-
ging-Mglichkeiten. Man kann Orte in einem Tag-Stack sta-
peln und mit Exuberant ctags mehr Elemente taggen als nur
Funktionen.
Exuberant ctags
Das Exuberant ctags- Programm wurde von Darren
Hiebert (Website: http://ctags.sourceforge.net/) geschrieben.
Momentan ist die aktuelle Version 5.8.
Dieses erweiterte tags-Dateiformat enthlt drei tabseparierte
Felder: den Tag-Namen (typischerweise ein Identifikator), die
Quelldatei, die den Tag enthlt, und den Ort des Identifikators.
Erweiterte Attribute kommen nach einem trennenden ;". Jedes
Attribut wird vom nchsten durch ein Tabulatorzeichen abge-
trennt und besteht aus zwei durch Doppelpunkte getrennten
Teilfeldern. Das erste Teilfeld ist ein Stichwort, das das Attri-
but beschreibt; das zweite ist der eigentliche Wert.
26 | vi und Vim kurz & gut
Erweiterte ctags-Stichwrter
Stichwort Bedeutung
arity Fr Funktionen
class Fr C++-Member-Funktionen und Variablen
enum Fr Werte in einem enum-Datentyp
file Fr statische Tags, d. h. lokal zur Datei
function Fr lokale Tags
kind Der Wert ist ein einzelner Buchstabe, der den lexikalischen Typ des
Tags anzeigt
scope Hauptschlich gedacht fr C++-Klassenmember-Funktionen
struct Fr Felder in einem struct
Wenn das Feld keinen Doppelpunkt enthlt, wird angenom-
men, dass es vom Typ kind ist.
Innerhalb des Wertteils eines Attributs sollten Backslash-,
Tab-, Carriage Return- und Newline-Zeichen als \\, \t, \r bzw.
\n kodiert werden.
Solaris-vi-Tag-Stacking
vi bietet ex- und vi-Befehle zum Verwalten des Tag-Stacks.
Tag-Befehle ex
Befehl Funktion
ta[g][!] Tagstring Bearbeitet die Datei, die Tagstring enthlt,
wie in der tags-Datei definiert
po[p][!] Nimmt ein Element vom Tag-Stack herun-
ter
Verbesserte Tags und Tag-Stacks | 27
Tag-Befehle vi
Befehl Funktion
^] Sucht nach dem Ort des Identifikators unter
dem Cursor in der tags-Datei und geht an
diesen Ort; wenn Tag-Stacking aktiviert ist,
wird der aktuelle Ort automatisch auf den
Tag-Stack geschoben
^T Kehrt zum vorherigen Ort im Tag-Stack
zurck, nimmt also ein Element herunter
Tag-Verwaltungsoptionen
Option Funktion
taglength, tl Kontrolliert die Anzahl der signifikanten
Zeichen in einem Tag, die nachgeschaut
werden sollen; der Standardwert null zeigt
an, dass alle Zeichen signifikant sind.
tags, tagpath Der Wert ist eine Liste mit Dateinamen, in
denen nach Tags gesucht werden soll;
Standardwert ist "tags /usr/lib/
tags".
tagstack Ist die Option auf true gesetzt, stapelt vi
alle Orte auf den Tag-Stack.
Vim verbessertes vi
Vim ist der leistungsstrkste und beliebteste der vi-Klone, die
derzeit benutzt werden. Es ist auf den meisten GNU/Linux-
Systemen die Standardversion von vi.
Wichtige Kommandozeilenoptionen
-b Startet im Binrmodus.
28 | vi und Vim kurz & gut
-c Befehl
Fhrt beim Start Befehl aus (POSIX-Version des histori-
schen +Befehl).
-C Luft im vi-Kompatibilittsmodus.
-f Fr die GUI-Version: Diese bleibt im Vordergrund.
-g Startet die GUI-Version von Vim, wenn Vim mit GUI-
Untersttzung kompiliert wurde.
-i viminfo
Liest die angegebene viminfo-Datei bei der Initialisierung
anstelle der vorgegebenen viminfo-Datei.
-o [N]
Falls angegeben, werden N Fenster geffnet; ansonsten
wird ein Fenster pro Datei geffnet.
-O [N]
Wie -o, allerdings werden die Fenster vertikal geteilt.
-n Es wird keine Swap-Datei angelegt; eine Wiederherstel-
lung ist nicht mglich.
-p ffnet einen neuen Tab fr jede Datei, die auf der Kom-
mandozeile genannt wird.
-q Dateiname
Behandelt Dateiname als quick fix-Datei.
-R Startet im schreibgeschtzten Modus, wobei die Option
readonly gesetzt wird.
-s Startet den Batch-(Skript-)Modus. Das gilt nur fr ex und
ist dafr gedacht, Bearbeitungsskripten auszufhren
(POSIX-Version des historischen -Arguments).
-u vimrc
Liest die angegebene .vimrc-Datei zur Initialisierung und
berspringt alle anderen normalen Initialisierungsschrit-
te.
Vim verbessertes vi | 29
-U gvimrc
Liest die angegebene .gvimrc-Datei fr die GUI-Initialisie-
rung und berspringt alle anderen normalen GUI-Initial-
isierungsschritte.
-y Startet den easy-Modus, der ein intuitiveres Verhalten
fr Anfnger bietet.
-Z Startet den eingeschrnkten Modus (als htte man ein
fhrendes r im Namen).
Vim-Fensterverwaltung
Vim erlaubt Ihnen, den Bildschirm in mehrere Fenster aufzu-
teilen und deren Gre und Platzierung zu steuern.
Befehle zur Fensterverwaltung ex
Befehl Funktion
clo[se][!] Schliet das aktuelle Fenster; Verhalten
wird von der Option hidden beeinflusst
hid[e] Schliet das aktuelle Fenster, falls es nicht
das letzte Fenster auf dem Bildschirm ist
[N]new [Position] [Datei] Legt ein neues Fenster an, wobei ein leerer
Puffer bearbeitet wird
on[ly] Macht dieses Fenster zum einzigen auf dem
Bildschirm
qa[ll][!] Beendet Vim
q[uit][!] Schliet das aktuelle Fenster (beendet das
Programm, falls im letzten Fenster ange-
geben)
res[ize] [n] Vergrert oder verkleinert die aktuelle
Fensterhhe um n
res[ize] [n] Setzt die aktuelle Fensterhhe auf n, falls
angegeben, ansonsten setzt es sie auf die
grtmgliche Gre, ohne die anderen
Fenster zu verbergen
30 | vi und Vim kurz & gut
Befehl Funktion
[N]sn[ext] Teilt das Fenster und geht zur nchsten
Datei in der Argumentliste oder zur N-ten
Datei weiter, falls eine Zahl angegeben ist
[N]sp[lit] [Position] [Datei] Teilt das aktuelle Fenster in zwei Hlften
sta[g] [Tagname] Teilt das Fenster und fhrt den :tag-
Befehl im neuen Fenster aus
[N]sv[iew] [Position] Datei Identisch mit :split, setzt allerdings die
readonly-Option fr den Puffer
wa[ll][!] Schreibt alle modifizierten Puffer, die
Dateinamen haben
wqa[ll][!] Schreibt alle genderten Puffer und been-
det das Programm
xa[ll][!] Identisch mit wqall
Befehle zur Fensterverwaltung vi
Befehl Funktion
^W s
^W S
^W ^S
Identisch mit :split ohne Datei-Argu-
ment; ^W ^S funktioniert mglicherweise
nicht auf allen Terminals.
^W n
^W ^N
Identisch mit :new ohne Datei-Argument.
^W ^
^W ^^
Fhrt :split # aus, teilt das Fenster und
bearbeitet die alternative Datei.
^W q
^W ^Q
Identisch mit dem :quit-Befehl; ^W
^Q funktioniert mglicherweise nicht auf
allen Terminals.
^W c Identisch mit dem :close-Befehl.
^W o
^W ^O
Identisch mit dem :only-Befehl.
^W
^W j
^W ^J
Verschiebt den Cursor zum n-ten Fenster
unter dem aktuellen.
Vim verbessertes vi | 31
Befehl Funktion
^W
^W k
^W ^K
Verschiebt den Cursor zum n-ten Fenster
ber dem aktuellen.
^W w
^W ^W
Mit Zahl geh zum n-ten Fenster; ansonsten
geh zum Fenster unter dem aktuellen. Ist
man im untersten Fenster, geh zum ober-
sten.
^W W Mit Zahl geh zum n-ten Fenster; ansonsten
geh zum Fenster ber dem aktuellen. Ist
man im obersten Fenster, geh zum unters-
ten.
^W t
^W ^T
Verschiebt den Cursor zum obersten Fens-
ter.
^W b
^W ^B
Verschiebt den Cursor zum untersten Fens-
ter.
^W p
^W ^P
Geht zum (vorherigen) Fenster, auf das
zuletzt zugegriffen wurde.
^W r
^W ^R
Rotiert alle Fenster nach unten; der Cursor
bleibt im selben Fenster.
^W R Rotiert alle Fenster nach oben; der Cursor
bleibt im selben Fenster.
^W x
^W ^X
Ohne Zahl tausche das aktuelle Fenster
gegen das nchste aus; wenn es kein nchs-
tes Fenster gibt, vertausche es mit dem
vorhergehenden. Mit Zahl tausche das
aktuelle Fenster gegen das n-te Fenster aus
(erstes Fenster ist eins, der Cursor wird in
das andere Fenster gesetzt).
^W = Stellt fr alle Fenster die gleiche Hhe ein.
^W - Verringert die aktuelle Fensterhhe.
^W + Vergrert die aktuelle Fensterhhe.
^W _
^W ^_
Setzt die aktuelle Fenstergre auf den
Wert, der in einer vorangegangenen Zahl
angegeben wurde.
32 | vi und Vim kurz & gut
Befehl Funktion
z N ENTER Setzt die aktuelle Fensterhhe auf N.
^W ]
^W ^]
Teilt das aktuelle Fenster; im neuen oberen
Fenster wird der Identifikator unter dem
Cursor als Tag benutzt und zu ihm gegan-
gen.
^W f
^W ^F
Teilt das aktuelle Fenster und bearbeitet
den Dateinamen unter dem Cursor im neu-
en Fenster.
^W i
^W ^I
ffnet ein neues Fenster; verschiebt den
Cursor auf die erste Zeile, die dem Stichwort
unter dem Cursor entspricht.
^W d
^W ^D
ffnet ein neues Fenster; verschiebt den
Cursor auf die Makrodefinition, die das
Stichwort unter dem Cursor enthlt.
Bearbeitung mit Tabs
hnlich wie moderne Webbrowser erlaubt Ihnen Vim, meh-
rere Tabs anzulegen und zu verwalten. Innerhalb jedes Tabs
kann es mehrere Fenster geben. Man kann zwischen den Tabs
wechseln. Auf diese Weise ist es einfach, mehrere voneinander
unabhngige Bearbeitungen durchzufhren, ohne den Bild-
schirm zu verstopfen. Tabs werden sowohl in der zeichenori-
entierten als auch in der GUI-Version von Vim untersttzt.
Tabs verwalten ex
Tabs werden von eins an durchnummeriert.
Befehl Funktion
[Zahl] tab Befehl Fhrt Befehl aus, aber ffnet dafr einen
neuen Tab, wenn ansonsten ein neues
Fenster geffnet wrde; z. B. benutzt :tab
split, um den aktuellen Puffer in einen
neuen Tab aufzuteilen.
tabc[lose][!] [Zahl] Schliet die aktuelle Tabseite. Mit Zahl wird
die Seite geschlossen, die in Zahl angege-
Vim verbessertes vi | 33
Befehl Funktion
ben ist. Benutzen Sie !, um das Schlieen
zu erzwingen, selbst wenn der Dateiinhalt
nicht gesichert wurde (der Inhalt der Puffer
geht nicht verloren).
tabdo Befehl Fhrt fr jeden Tab Befehl aus.
tabe[dit] [Option] [Befehl]
[Datei]
ffnet eine neue Seite mit einem Fenster,
in dem Datei bearbeitet wird. Ohne Argu-
mente wird eine leere Seite geffnet.
tabf[ind] [Option] [Befehl] Datei ffnet eine neue Seite und sucht nach
Datei im Wert der path-Option,
wie :find.
tabf[irst] Geht zum ersten Tab.
tabl[ast] Geht zum letzten Tab.
tabm[ove] [N] Verschiebt die aktuelle Tabseite hinter Tab-
seite N (ndert die Anordnung der Tabsei-
ten selbst, nicht den Tab, in dem Sie gerade
arbeiten). Ohne Argument wird der aktu-
elle Tab zum letzten Tab.
tabnew [Option] [Befehl] [Datei] Identisch mit :tabedit.
tabn[ext] [Zahl] Geht zum nchsten Tab oder zum Tab Zahl.
tabN[ext] [Zahl] Identisch mit :tabprevious.
tabo[nly][!] Schliet alle anderen Tab-Seiten.
tabp[revious] [Zahl] Geht zum vorherigen Tab oder geht Zahl
Tabs zurck. Das geht im Kreis.
tabr[ewind] Geht zum ersten Tab (identisch mit :tab-
first).
Tabs verwalten vi
Die Steuersequenzen funktionieren sowohl im Befehlsmodus
als auch im Einfgemodus.
Befehl Funktion
gt
STRG Bild runter
Identisch mit :tabnext
34 | vi und Vim kurz & gut
Befehl Funktion
gT
STRG Bild hoch
Identisch mit :tabprevious
^W gf Bearbeitet den Dateinamen unter dem Cur-
sor in einer neuen Tabseite
^W gF Bearbeitet den Dateinamen unter dem Cur-
sor in einer neuen Tabseite, beginnend bei
der Zeilennummer, die dem Dateinamen
folgt
Tab-Bearbeitungsoptionen
Option Standard
t:cmdheight (t:ch) (pro Tab-Seite) 1
guitablabel (gtl)
guitabtooltip (gtt)
showtabline (stal) 1
tabline (tal)
tabpagemax (tpm) 10
Erweiterte regulre Ausdrcke in Vim
\| Kennzeichnet Alternatieren.
\+ Entspricht einem oder mehreren der vorangegangenen
regulren Ausdrcke.
\= Entspricht keinem oder einem der vorangegangenen regu-
lren Ausdrcke.
\{...}
Definiert einen Intervallausdruck. Intervallausdrcke
beschreiben bestimmte Anzahlen von Wiederholungen.
In der folgenden Beschreibung reprsentieren n und m
Integer-Konstanten:
\{n} Entspricht exakt n Wiederholungen des
vorangegangenen regulren Ausdrucks.
Vim verbessertes vi | 35
\{n,} Entspricht n oder mehr Wiederholungen des
vorangegangenen regulren Ausdrucks, und
zwar so vielen wie mglich.
\{n,m} Entspricht n bis m Wiederholungen.
Fr Vim knnen sich n und m im Bereich von 0 bis 32.000
bewegen. Vim verlangt den Backslash nur bei { und nicht
bei }. Vim erweitert die traditionellen Intervallausdrcke
mit zustzlichen passenden Notationen:
\{,m} Entspricht 0 bis m der vorangegangenen regu-
lren Ausdrcke, und zwar so vielen wie mg-
lich.
\{} Entspricht 0 oder mehr der vorangegangenen
regulren Ausdrcke, und zwar so vielen wie
mglich (identisch mit *).
\{-n,m} Entspricht n bis m der vorangegangenen regu-
lren Ausdrcke, und zwar so wenigen wie
mglich.
\{-n} Entspricht n der vorangegangenen regulren
Ausdrcke.
\{-n,} Entspricht wenigstens n der vorangegangenen
regulren Ausdrcke, und zwar so wenigen
wie mglich.
\{-,m} Entspricht 0 bis m der vorangegangenen regu-
lren Ausdrcke, und zwar so wenigen wie
mglich.
\i Entspricht einem Identifikatorzeichen, wie es durch die
isident-Option definiert ist.
\I Wie \i, ausgenommen Ziffern.
\k Entspricht einem Stichwortzeichen, wie definiert durch
die iskeyword-Option.
\K Wie \k, ohne Ziffern.
\f Entspricht einem Dateinamenzeichen, wie definiert durch
die isfname-Option.
\F Wie \f, ausgenommen Ziffern.
36 | vi und Vim kurz & gut
\p Entspricht einem druckbaren Zeichen, wie definiert durch
die isprint-Option.
\P Wie \p, ausgenommen Ziffern.
\s Entspricht einem Whitespace-Zeichen (exakt einem Leer-
zeichen oder Tab).
\S Entspricht allem, was kein Leerzeichen oder Tab ist.
\b Backspace.
\e Escape.
\r Carriage Return.
\t Tab.
\n Entspricht dem Zeilenende.
~ Entspricht dem zuletzt angegebenen Substitute-String
(also Ersetzungsstring).
\(...\)
Erlaubt eine Gruppierung fr *, \+ und \= und macht pas-
sende Subtexte im Ersetzungsteil eines Substitute-Befehls
verfgbar (\1, \2 usw.).
\1 Entspricht dem String, der durch den ersten Teilausdruck
in \( und \) erfasst wurde. \2, \3 usw. knnen verwendet
werden, um die zweiten, dritten usw. Teilausdrcke zu
reprsentieren.
Die Optionen isident, iskeyword, isfname und isprint defi-
nieren die Zeichen, die in den Identifikatoren, Stichwrtern
und Dateinamen auftauchen bzw. die druckbar sind.
Kommandozeilen-History und -Vervollstndigung
Vim fhrt ein Protokoll, eine sogenannte History, ber die ex-
Befehle, die Sie aufgerufen haben. Sie knnen Befehle aus die-
ser History erneut aufrufen und bearbeiten sowie die Vervoll-
stndigungsfunktionen verwenden, um sich Arbeit beim Tip-
pen zu sparen.
Vim verbessertes vi | 37
History-Befehle vi
Taste Bedeutung
, Nach oben (frhere), nach unten (neuere)
in der History bewegen
, Nach links, rechts auf der wieder aufgeru-
fenen Zeile bewegen
INS Einfge-/berschreibmodus ein- und aus-
schalten; Vorgabe ist Einfgemodus
BACKSPACE Zeichen lschen
SHIFT oder STRG kombiniert mit oder