Vim - Tipps und Tricks

Zeichen, Wörter und Zeilen vertauschen

FunktionKommando
2 Zeichen vertauschenxp
2 Wörter vertauschendeep
aktuelle Zeile mit vorhergehender Zeile tauschenddkp
aktuelle Zeile mit nachfolgender Zeile tauschenddp

Suchen und Ersetzen

FunktionKommando
foo durch bar im gesamten Dokument ersetzen:%s/foo/bar/g
foo durch bar in den Zeilen 14,18 ersetzen:14,18s/foo/bar/g
foo durch bar nur in den Zeilen ersetzen in denen fuubar vorkommt:g/fuubar/s/foo/bar/
ersetzt in allen geöffneten Dateien foo durch bar und speichert die Dateien:set hidden :argdo %s/foo/bar/g :wall
Leere Zeilen löschen im vim:%g/^$/d
Zeilen löschen die bestimmtes Muster enthalten:g/muster/d
Zeilen löschen die bestimmtes Muster nicht enthalten:v/muster/d
Historie der Suchfunktion anzeigenq/
vorwärts nach Suchmuster (Zeichenkette unter dem Cursor) durchsuchen*
rückwärts nach Suchmuster (Zeichenkette unter dem Cursor) durchsuchen#
Zeichenkette als Suchmustervorlage verwenden um diese zu aendern/CTRL+R CTRL+W
Suchmuster aus der Zwischenablagen übernehmen/CTRL+R + *
Suchmuster aus Register a übernehmen/CTRL+R + a
Suchmuster aus Register a übernehmen/CTRL+R + a

Umgang mit Fenstern

FunktionKommando
Fenster horziontal teilenCTRL+w s oder :split
Fenster vertikal teilenCTRL+w v oder :vsplit
zwischen den Fenstern wechseln (oben)CTRL+k
zwischen den Fenstern wechseln (unten)CTRL+j
zwischen den Fenstern wechseln (links)CTRL+h
zwischen den Fenstern wechseln (rechts)CTRL+l
Fenstergroesse maximierem horizontalCTRL+w _
Fenstergroesse maximierem vertikalCTRL+w |
Fenstern gleiche Groesse zuweisenCTRL+w =
horizontal geteiltes Fenster vergrößernCTRL+w +
horizontal geteiltes Fenster verkleinernCTRL+w -
vertikal geteiltes Fenster um 5 Spalten vergrößernCTRL+w 5<
vertikal geteiltes Fenster verkleinernCTRL+w >

Verwendung von Tabs/Karteireitern (ab Version 7.0)

FunktionKommando
Liste der geöffneten Tabs anzeigen:tabs
Springe zu Tab n:tab n
Schließe Tab n:tabc n
Öffne Datei in eigenem Tab:tabe dateiname
Tab vorwaertsgt
Tab rueckwaertsgT

Verschiedenes

FunktionKommando
Dezimal-/Hex- und Oktalwerte des Zeichens unter dem Cursor ermittelnga
Ex-Mode-Kommandohistorie einblendenq:
Dateiexplorer starten:E
Hinweise zu vereinfachten Bearbeitung von HTML- und XML-Dateien z.B. diw etc.:help text-objects

Aktuelle Datei in PDF umwandeln und anzeigen

Das ursprüngliche Skript habe ich - wenn ich mich recht erinnere - über die Vim-Mailingliste bekommen. Hier nochmals Dank an den ursprünglichen Poster! Ich habe noch eine paar kleine Erweiterungen vorgenommen damit aus der aktuellen Datei ein Postscript und anschließend das PDF-Dokument erstellt und dieses angezeigt wird.

map  :call MakePS()
function MakePS()
   exe 'w'
   exe 'w !a2ps --header="vbd" '.expand('%')' -o '.expand('%').'.ps'
   exe '!ps2pdf '.expand('%').'.ps ' .expand('%').'.pdf'
   exe '!'expand('%').'.pdf'
endfunction

a2ps und ghostscript werden hierzu benötigt.

Textbereiche (z.B. Programmquellcode) auskommentieren

Eine sehr nützliche Funktion ist das Blockweise (CTRL + V) markieren im VIm. Damit kann man z.B. auch größere Textblöcke auf einfache Art und Weise auskommentieren.

  1. Textbereich blockweise markieren mit CTRL+V
  2. SHIFT+i gefolgt von dem Kommentarzeichen z.B. # eingeben
  3. Vorgang mit ESC beenden

Erweiterungen

Blockquote

FunktionKommando
Bereich mit Blockquote versehen:5,10Bq [gnabber]
Datei abc.txt einfügen:Bqf abc.txt

Skriptquelle: http://www.vim.org/scripts/script.php?script_id=529

VisIncr

Ausgangsblock (z.B. Tageswert des Datums) mit CTRL+V markieren. Um die Werte um 1 zu erhoehen :I eingeben

Skriptquelle: http://www.vim.org/scripts/script.php?script_id=670

pdftk-plugin

Damit ist es möglich direkt im VIm PDF-Dokumente zu bearbeiten!

Skriptquelle: http://www.pdfhacks.com/pdftk/#vim_plugin

NERDTree

Die englische Beschreibung sagt es so schön: "The NERD tree: A tree explorer plugin for navigating the filesystem"

Skriptquelle: http://www.vim.org/scripts/script.php?script_id=1658

Kommandozeile

FunktionKommando
Dateien a.txt, b.txt, c.txt in getrennten Tabs oeffnenvim -p a.txt b.txt c.txt
Ex-Mode-Skript (arguments.vim) ausfuehrenvim -s arguments.vim "C:log.txt"
Dateien a.txt und b.txt vergleichen (Diff)vim -d a.txt b.txt

Verschlüsselung

FunktionKommando
Bis zum Satzende Rot13 verschlüsselng?)
Ein Wort Rot13 verschlüsselng?w
Einen Absatz Rot13 verschlüsselng?}
Bis zum Dateiende Rot13 verschlüsselng?G

Konfiguration

Einstellungen in _vimrc/.vimrc bzw. _gvimrc/.gvimrc speichern

Zeilennummerierung aktivieren und Erscheinungsbild anpassen

set nu
highlight LineNr guifg=black guibg=grey

Bei Fehleingabe anstatt eines akustischen einen visuellen Warnhinweis erhalten

set vb

Cursor Blinken abschalten

set gcr=a:blinkoff0

GVim in Vollbildansicht starten

autocmd GUIEnter * simalt ~X

Spass darf sein

einfach mal diese Ex-Kommandos ausprobieren
:h holy-grail
:h UserGettingBored
:h mapmode-nvo
:h 42
:h!

erstellt: [ 23.04.2008 13:35:00 ]