Texteditor Vim
(Kurzanleitung)
Stand: März 2009
Texteditor Vim (Kurzanleitung) als HTML / PDF / ODT Datei.
Inhalt
- Allgemein ↓
- Bedienung ↓
- Vim starten ↓
- Einfügemodus ↓
- Einfügemodus - Tastaturbefehle ↓
- visueller Modus ↓
- Befehlsmodus / normaler Modus ↓
- Befehlsmodus - Text in den Speicher legen (kopieren) ↓
- Befehlsmodus - Text löschen (ausschneiden) ↓
- Befehlsmodus - Text einfügen ↓
- Befehlsmodus - Text ändern ↓
- Befehlsmodus - Text suchen ↓
- Befehlsmodus - Tipps ↓
- Kommandozeilenmodus ↓
- Kommandozeilenmodus - Befehle ↓
- Kommandozeilenmodus - Hilfe ↓
- Kommandozeilenmodus - Einstellungen ↓
Allgemein
Vi ist für die Wartung aller Unix-Systeme gedacht und ist auf jedem, noch so minimalem System installiert.
Er ist für die Textkonsole konzipiert und daher ohne Maus zu bedienen.
Zweck der minimalistischen Bedienung des Editors ist es, auch über eine langsame Netzverbindung
Textdateien auf einem fremden Rechner bearbeiten zu können.
Vim (Vi IMproved) ist eine erweiterte Open-Source-Version des urheberrechtlich geschützten Vi.
Unter Linux startet Vim wenn vi oder vim aufgerufen wird.
Bedienung
Der Texteditor Vi stammt aus einer Zeit, in der es auf den meisten Tastaturen noch keinen Cursorblock gab,
also weder Pfeiltasten, noch "Pos1"- und "Ende"-Tasten.
Deshalb sind für alle Kommandos Buchstaben vorgesehen.
Da man mit den Buchstaben aber auch Text eingeben möchte, gibt es mehrere Betriebsmodi.
Grundsätzlich befindet sich Vim nach dem Aufrufen im Befehlsmodus.
Mit den Tasten a i o r v : und Esc oder Enter kann man zwischen den einzelnen Modi umschalten:
| Einfügemodus (insert mode) |
|||||
| ↑ | ↓ | ||||
| ↑ | a i A I o O R | ↓ | Esc | ||
| ↑ | ↓ | v V | |||
| Befehlsmodus / normaler Modus (command mode / normal mode) |
→→→→→→ ←←←←←← |
visueller Modus (visual mode) |
|||
| ↓ | ↑ | v V oder 2 mal Esc | |||
| ↓ | : | ↑ | Esc oder Enter | ||
| ↓ | ↑ | ||||
| Kommandozeilenmodus (command-line mode) |
|||||
Vim starten
vi <Datei> oder vim <Datei>
started Vim und öffnet eine Datei zum bearbeiten
Einfügemodus
Die folgenden Tasten wechseln vom Befehlsmodus in den Einfügemodus:
a
(append) Text nach dem Cursor einfügen
i
(insert) Text vor dem Cursor einfügen
A
(append) Text am Zeilenende einfügen
I
(insert) Text am Zeilenanfang einfügen
o
Text in neue leere Zeile einfügen (unterhalb / nach der aktuellen Zeile)
O
Text in neue leere Zeile einfügen (oberhalb / vor der aktuellen Zeile)
R
(replace) Text vor dem Cursor überschreiben
Einfügemodus - Tastaturbefehle
Pfeiltasten
Cursor nach links, unten, oben, rechts
Ende
Cursor zum Zeilenende
Pos1
Cursor zum Zeilenanfang
Entf
löscht Text ab Cursor (nach rechts)
Rücktaste
löscht Text links vom Cursor
Esc
verlässt den Einfügemodus und wechselt zurück in den Befehlsmodus
visueller Modus
v
wechselt in den visuellen Modus
V
wechselt in den visuellen Modus und markiert zusätzlich die aktuelle Zeile
Im visuellen Modus können Textbereiche auf einfache Weise markiert, kopiert oder ausgeschnitten werden.
Pfeiltasten
Textbereich markieren
Ende , $
bis zum Zeilenende
Pos1 , ^
bis zum Zeilenanfang
w
(word forward) markiert nach rechts bis zum nächsten Wortanfang
e
(end of word) markiert nach rechts bis zum nächsten Wortende
b
(word backward) markiert nach links bis zum vorherigen Wortanfang
y
(yank into register) kopiert markierten Bereich
x
(cut) schneidet markierten Bereich aus
d
(delete) schneidet markierten Bereich aus
p
(paste) fügt kopierten oder ausgeschnittenen Bereich ein
1 mal Esc
(escape) hebt Textmarkierung auf
2 mal Esc
(escape) verlässt den visuellen Modus und wechselt zurück in den Befehlsmodus
Befehlsmodus / normaler Modus
Pfeiltasten
Cursor nach links, unten, oben, rechts
h , j , k , l
Cursor links, unten, oben, rechts
w
(word forward) Cursor nach rechts zum nächsten Wortanfang
e
(end of word) Cursor nach rechts zum nächsten Wortende
b
(word backward) Cursor nach links zum vorherigen Wortanfang
nw
Cursor nach rechts zum n'ten Wortanfang
(n muss eine Zahl sein)
ne
Cursor nach rechts zum n'ten Wortende
(n muss eine Zahl sein)
nb
Cursor nach links zum n'ten Wortanfang
(n muss eine Zahl sein)
Ende , $
Cursor zum Zeilenende
Pos1 , ^
Cursor zum Zeilenanfang
)
zum nächsten Satzende
(
zum vorherigen Satzende
(ein Satz endet mit . ? ! plus Leerzeichen)
}
zum nächsten Absatzende
{
zum vorherigen Absatzende
(ein Absatz endet mit einer Leerzeile)
%
springt zum nächsten Klammernpaar innerhalb der aktuellen Zeile
H
(home) geht zur ersten Zeile
M
(middle line) geht zur mittleren Zeile
L
(last line) geht zur letzten Zeile
gg
(goto first line) geht zur ersten Zeile
G
(goto last line) geht zur letzten Zeile
nG
(goto line) geht zu Zeile n
(n muss eine Zahl sein)
+
(plus) geht 1 Zeile nach unten
-
(minus) geht 1 zeile nach oben
n+ , nEnter
(plus) geht n Zeilen nach unten
(n muss eine Zahl sein)
n-
(minus) geht n zeilen nach oben
(n muss eine Zahl sein)
Bild abwärts , Strg + f
(forward) springt eine Seite vorwärts
Bild aufwärts , Strg + b
(backward) springt eine Seite zurück
Strg + d
(down) springt eine halbe Seite vorwärts
Strg + u
(up) springt eine halbe Seite zurück
Strg + w dann s
(split) teilt das Fenster horizontal
Strg + w dann v
(vertical) teilt das Fenster vertikal
Strg + w dann +
(plus) vergrößert das aktuelle Fenster
Strg + w dann -
(minus) verkleinert das aktuelle Fenster
Strg + w dann w
(window) springt zum nächsten Fenster
Strg + w dann p
(previous) springt zum vorherigen Fenster
Strg + w dann Pfeiltaste
springt zum nächsten / vorherigen Fenster entsprechend der Pfeilrichtung
Strg + w dann r
(rotate) verschiebt das aktuelle Fenster nach unten, bzw. rechts
Strg + w dann R
(rotate) verschiebt das aktuelle Fenster nach oben, bzw. links
Strg + w dann =
teilt die Höhe und Breite alle Fenster gleichmäßig auf
Strg + w dann _
maximiert das aktuelle Fenster in der Höhe
Strg + w dann 1_
minimiert das aktuelle Fenster in der Höhe
Strg + w dann |
maximiert das aktuelle Fenster in der Breite
Strg + w dann 1|
minimiert das aktuelle Fenster in der Breite
Strg + w dann q
(quit) schließt das aktuelle Fenster
Strg + w dann o
(other) schließt alle Fenster, bis auf das aktuelle
.
(Punkt) wiederholt die letzte Texteingabe
u
(undo) mach die letzte Änderung rückgängig
U
(undo) macht alle Änderungen in der aktuellen Zeile rückgängig
Strg + r
(redo) nimmt die letzte rückgängig gemachte Änderung wieder zurück
Strg + R
(redo) nimmt alle rückgängig gemachten Änderungen in der aktuellen Zeile wieder zurück
Befehlsmodus - Text in den Speicher legen (kopieren)
Wenn nach dem y ein Buchstabe eingegeben wird, der den Cursor bewegt,
markiert das einen Bereich von der aktuellen Cursorposition bis zu der Stelle an die der Cursor gesprungen wäre.
Dieser Bereich wird in den Pufferspeicher gelegt, jedoch nicht markiert dargestellt !
Die kopierten Textbereiche können danach an anderer Stelle eingefügt werden.
yw
(yank word forward into register) kopiert nach rechts bis zum nächsten Wortanfang
ye
(yank end of word) kopiert nach rechts bis zum nächsten Wortende
yb
(yank word backward) kopiert nach links bis zum vorherigen Wortanfang
nyw
nach rechts bis zum n'ten Wortanfang
(n muss eine Zahl sein)
nye
nach rechts bis zum n'ten Wortende
(n muss eine Zahl sein)
nyb
nach links bis zum n'ten Wortanfang
(n muss eine Zahl sein)
y$
bis zum Zeilenende
y^
bis zum Zeilenanfang
y)
bis zum nächsten Satzende
y}
bis zum nächsten Absatzende
yy
kopiert die aktuelle Zeile
nyy
kopiert von der aktuellen Zeile nach unten bis zur n'ten Zeile
(n muss eine Zahl sein)
Befehlsmodus - Text löschen (ausschneiden)
Die gelöschten, bzw. ausgeschnittenen Bereiche werden in den Pufferspeicher gelegt.
Diese ausgeschnittenen Textbereiche können danach an anderer Stelle wieder eingefügt werden.
x , Entf
löscht Text ab Cursor (nach rechts)
X
löscht Text links vom Cursor
dw
(delete word forward) löscht nach rechts bis zum nächsten Wortanfang
de
(delete end of word) löscht nach rechts bis zum nächsten Wortende
db
(delete word backward) löscht nach links bis zum vorherigen Wortanfang
d$ , D
bis zum Zeilenende
d^
bis zum Zeilenanfang
d)
bis zum nächsten Satzende
d}
bis zum nächsten Absatzende
dd
löscht die aktuelle Zeile
ndd
löscht von der aktuellen Zeile nach unten bis zur n'ten Zeile
(n muss eine Zahl sein)
Befehlsmodus - Text einfügen
Mit diesen Befehlen wird der zuletzt in den Pufferspeicher gelegte Bereich eingefügt.
p
(paste) an die Position rechts vom Cursor
P
(paste) an die Position links vom Cursor
Befehlsmodus - Text ändern
~
Gross- / Kleinschreibung eines Zeichens ändern
r <Zeichen>
(replace) ein Zeichen ersetzen
R
(replace) Text überschreiben (wechselt in den Einfügemodus)
J
(join) Textumbruch am Zeilenende entfernen
>>
die aktuelle Zeile nach rechts rücken
<<
die aktuelle Zeile nach links rücken
n>>
die nächsten n Zeilen nach rechts rücken
(n muss eine Zahl sein)
n<<
die nächsten n Zeilen nach links rücken
(n muss eine Zahl sein)
Befehlsmodus - Text suchen
/<Suchmuster>Enter
sucht vorwärts nach <Suchmuster>
?<Suchmuster>Enter
sucht rückwärts nach <Suchmuster>
/Enter
sucht vorwärts nach dem zuletzt verwendeten Suchmuster
?Enter
sucht rückwärts nach dem zuletzt verwendeten Suchmuster
n
letzte Suche in gleicher Richtung wiederholen
N
letzte Suche in umgekehrter Richtung wiederholen
:s/<Suchmuster>/<Ersatzmuster>/gEnter
wechselt in den Kommandozeilenmodus und sucht innerhalb der gesamten Zeile
nach <Suchmuster> und ersetzt dieses durch <Ersatzmuster>
:% s/<Suchmuster>/<Ersatzmuster>/gEnter
sucht und ersetzt wie zuvor, aber innerhalb der gesamten Datei
(% bedeutet das gleiche wie 1,$)
:% s/<Suchmuster>/<Ersatzmuster>/gcEnter
sucht und ersetzt wie zuvor, aber fragt vor dem Ersetzen nach
Befehlsmodus - Tipps
ggVG
alles markieren
ea
am Ende eines Wortes weiter schreiben
xp
dieses und das Zeichen rechts vom Cursor vertauschen
ddp
diese und die folgende Zeile vertauschen
Kommandozeilenmodus
:
wechselt vom Befehlsmodus in den Kommandozeilenmodus
Im Kommandozeilenmodus müssen alle Eingaben mit Return / Enter abgeschlossen werden.
Kommandozeilenmodus - Befehle
:q
(quit) schließt Datei ohne zu speichern
:q!
(quit force) schließt Datei ohne zu speichern (schließen erzwingen)
:qa!
(quit all force) schließt alle Dateien ohne zu speichern (schließen erzwingen)
:w
(write) speichert Datei
:w <Datei>
(write) (write) speichert Datei unter neuem Dateinamen
:wq
(write quit) speichert Datei und beendet vim
:wqa
(write quit all) speichert alle Dateien und beendet vim
:x
(exit) speichert Datei und beendet vim
:e <Datei>
(edit) öffnet Datei
:e! <Datei>
(edit) erstellt neue Datei
:enew
(edit new) erstellt neue Datei ohne zu speichern
:e.
(Doppelpunkt e Punkt)
öffnet den als Plugin integrierten Dateimanager und zeigt eine Dateiliste des aktuellen Verzeichnisses an
F1
zeigt die Hilfedatei zum integrierten Dateimanager an
:f <Datei>
(file) ändert den Dateinamen der aktuell geladenen Datei, ohne diese zu speichern
:r <Datei>
(read) öffnet Datei und fügt diese unterhalb des Cursors ein
:r! <Shell-Befehl>
führt Shellbefehl aus und fügt dessen Ausgabe unterhalb des Cursors ein
:sp <Datei>
(split) öffnet Datei in einem horizontal geteilten Fenster
:vsp <Datei>
(vertical split) öffnet Datei in einem vertikal geteilten Fenster
Kommandozeilenmodus - Hilfe
:help
ruft die Hilfedatei 'help.txt' auf
:help <Vim-Befehl>
ruft die Hilfedatei zu dem angegebenen Befehl auf
:help <Vim-Befehl> dann Strg + d
zeigt alle verfügbaren Hilfedateien an, in dem der angegebene Befehl vorkommt
:q
verlässt die Hilfedatei und wechselt zurück in den Befehlsmodus
Kommandozeilenmodus - Einstellungen
:se
(set) zeigt die Benutzereinstellungen
:se all
(set all) zeigt alle Einstellungen
:se <Einstellung>
schaltet eine Einstellung ein
:se no<Einstellung>
schaltet eine Einstellung aus
:se <Einstellung>?
zeigt den aktuellen Wert einer Einstellung an
:se nu
(set number) schaltet die Zeilennummernanzeige ein
:se nonu
(set nonumber) schaltet die Zeilennummernanzeige aus
:se wrap
(set wrap) schaltet den Zeilenumbruch ein
:se nowrap
(set nowrap) schaltet den Zeilenumbruch aus
:se scb
(set scrollbind) geöffnete Fenster scrollen synchron (muss in jedem Fenster aktiviert werden)
:se noscb
(set noscrollbind) schaltet scrollbind aus
:se hls
(set hlsearch) hebt alle Suchtreffer hervor, die mit / oder ? Eingegeben werden
:se nohls
(set nohlsearch) schaltet die hervorgehobenen Suchtreffer aus
:syntax on / off
schaltet Syntaxhighlighting ein / aus
:color <Farbschema>
verwendet das angegebene Farbschema
- die verfügbaren Farbschemas sind im Vim Unterverzeichnis
/usr/share/vimxx/colors abgelegt (default = Standard-Farbschema)
:Esc oder :Enter
verlässt den Kommandozeilenmodus und wechselt zurück in den Befehlsmodus