vim: Quer durch den Gemüsegarten

Unterschiede zum vi

Erste Hilfe

vimtutor V

:help, :help set, :help R, :help format^D, :help ^R<Tab> V

:helpg '$' mit :cw V

Features zum Appetit anregen

Features, die man kennen sollte

recording:

Extrem einfache Benutzung, Kommando q. Beispiel zum Unterstreichen, Kommandofolge:



qa "recording ein
Yp "Zeile kopieren
:.s,.,-,g "durch »-« ersetzen
q "recording aus



Mit @a kann die Tastenfolge nun abgespielt werden. V


Geht ebenso »sichtbar« (z.B. per Skript):
:let @a="Yp:.s/./-/g \<CR>"

Faltungen (Folding)

Fenster splitten

Wie bei Hilfe; ^W + ...

... usw.; hat sich bei Multiscreening in einer Konsole und mehreren Fenstern sowie Arbeitsflächen eigentlich überlebt, wird aber bei Hilfe und z.B. vimdiff gebraucht.

vimdiff

Spezieller Faltungsmodus mit speziellen Optionen, eigentlich immer noch ein vi. V

Optionen a la card

Nächstes geniales Feature:

:options V 5,hls

vim-Skripte

Beispiel: mkfliess.vim V

Autokommandos

Werden bei bestimmten Events und für bestimmte Dateitypen ausgeführt.

Beispiele:

PLUGINS sind vim-Skripte in $HOME/.vim/plugin; sie werden beim Start automatisch ausgeführt.

Formatieren

Einrücken bekanntlich schon bei vi mit »set autoindent« (»set ai«) und »set shiftwidth« (»set sw«).

Absatz formatieren mit Kommando gqap (unlogisch, g-Kommando ...).

Äußerst leistungsfähige Formatierungsoptionen, speziell für C-Programme Option cindent V

Auch externe Programme können eingebunden werden.

Syntaxerkennung (Farben)

Für 384 Sprachen existierent Syntaxbeschreibung; Option »filetype« (»ft«) wird meist automatisch gesetzt. V

Bei der täglichen Arbeit außerordentlich hilfreich!

Einbindung externer Programme

make: Auswertung der Compilermeldungen (konfigurierbar), Sprung zum Fehler V


ctags: ctags *.c; Befehl CTRL/] springt zu Funktionsdefinition; Tag-Stack ...


cscope: Erweiterung auf Variable usw. (cscope-Interface eingebunden, nicht standardmäßig in vim enthalten: Selbst übersetzen!)


python: Zugriff auf vim-Kommandos, Fenster, Puffer, Cursor über vim-Modul:
vim.command(str)
vim.eval(str)
vim.error (Ausnahmentyp)
vim.buffers, vim.windows, vim.current(.line, .buffer ...)


Beispiel: »:python current.line = upper(current.line)«
Noch kein Input (kommt vermutlich noch!).


perl: Wirkt weniger flexibel, Beispiel:
:perl @l = ("L1", "L2", "L3")
:perl $curbuf->Append(10, @l)

(drei Zeilen werden anZeile 10 angehängt); Liste fester Funktionen kann mit »:perl ...« gerufen werden.

Grafische Interfaces

gvim: setzt aber Kenntnis des vim voraus. Leckerbissen: Hexedit. V

evim: Extra für Gumbies kaputtkonfigurierter vim, kann wie Notepad ohne Vorkenntnisse genutzt werden (vorwiegend mit bayrischer Tastatur). V

Nicht erwähnt

... die 3.5 MB Hilfe sind ziemlich konzentriert!