Texteditor Vim
(Kurzanleitung)


Vimthe editor[»]


Stand: März 2009

Texteditor Vim (Kurzanleitung) als HTML / PDF / ODT Datei.

PDFGet Adobe Reader[»]

OOoOpenOffice.org[»]


Inhalt


nach oben ↑

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.


nach oben ↑

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)


nach oben ↑

Vim starten

vi <Datei> oder vim <Datei>

started Vim und öffnet eine Datei zum bearbeiten


nach oben ↑

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


nach oben ↑

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


nach oben ↑

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


nach oben ↑

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


nach oben ↑

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)


nach oben ↑

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)


nach oben ↑

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


nach oben ↑

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)


nach oben ↑

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


nach oben ↑

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


nach oben ↑

Kommandozeilenmodus

:

wechselt vom Befehlsmodus in den Kommandozeilenmodus

Im Kommandozeilenmodus müssen alle Eingaben mit Return / Enter abgeschlossen werden.


nach oben ↑

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


nach oben ↑

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


nach oben ↑

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


nach oben ↑