====== VIM ====== ===== Dateinen Öffnen ===== Commando Zeile: vim ... [-o|O] [-p] [+[N]] Remove File: vim scp://damicha@127.0.0.1//home/damicha/.bashrc in vim: :e[xplore] [] [.] - autocompletion: - % - aktueller Datei Name + Pfad - % ===== Modi ===== Command/Normal Modus: betreten mit aus anderen Modi Eingabe Modus: betreten mit e.g. i, a aus Command Modus verlassen mit Visueller Modus: betreten mit e.g. v aus Command Modus verlassen mit oder Commando ===== Motions ===== im Command Mode: hjkl Keys Cursor Keys 0, _, $ - Zeilenanfang, Erstes Zeichen, Zeilenende gg, G, N gg - Erste Zeile, Letzte Zeile, Zeile N w, e - gehe zu nächstem Wortanfang, -ende b - gehe zu vorherigem Wortanfang Ctrl-e, -y - scroll runter, hoch zt, zz, zb - Cursor zum Window-Anfang, -Mitte, -Ende ===== Text Editieren ===== Löschen (Commando Modus): x, - einzelnes Zeichen löschen dd, D, d0 - Zeile löschen, löschen bis Zeilenende, -anfang Einfügen (wechsel in den Eingabemodus): i, I - einfügen an Cursorposition, an erstem Zeichen der Zeile a, A - Text hinter Cursorposition, am ende der Zeile einfügen o, O - in neuer Zeile hinter, vor der aktueller Zeile einfügen Ändern (Commando Modus): r - ändere ein Zeichen <<, >> - shift Links, shift Rechts ===== Vim Sprache ===== Vim Befehle folgen dem Muster: Verb-Modifizierer-Objekt - Verben: d (delete), y (yank), v (visual), c (change), ... - Modifizierer: a (around), i (inside), t (till), ... - Objekt: w (word), p (paragraph), s (sentence), ... Beispiele: daw, yaw - delete/yank around word ci", ci( - change inside quote/parenthesis ===== Marken- und Jumplisten ===== Marke: m - Marke setzen :marks - Marken anzeigen ' - springe zu Marke Jump Listen: :jumps - Jump-Liste zeigen Ctrl-O, Ctrl-I - gehe zu älteren/neueren Sprungposition g; g, - gehe zu älterer/neuerer Änderungspos. ===== Copy'n'Paste ===== Yanking: yy - kopiere ganze Zeile "yy - kopiere ganze Zeile in Register Paste: P, p - kopiere an/nach Cursorposition "P - kopiere Register an Cursorposition Register: :reg - zeigt Register 0, 1..9 - nummerierte Register (als Historie beim Yanking) a-z - Register mit Namen Register Inhalt bleiben beim Beenden vom Vim erhalten ===== Visual Mode ===== Enter (Commando -> Visual Modus): v, V - Charakter-, Zeileweise Ctrl-V - Blockwise gv - vorherige Auswahl - verlassen Auswahl (Visueller Modus): vim Movements o - Wechsle zwischen Anfang und Ende Modifizieren (wechsel in Commando Modus): y, d - yank, delete ausgewählten Bereich <<, >> - shift ausgewählte Zeilen ===== Buffer, Windows und Tabs ===== Buffers: :buffers - zeige Buffer :b [n] - wähle Buffer plugin :BufExplorer Windows: :sp, :vsp - horizontaler Split, vertikaler Split (auch Ctrl-S, Ctrl-V) Ctrl-W w - wechsle Window (auch Ctrl-W Ctrl-W) Ctrl-W r - rotiere Windows Ctrl [N]+, [N]- - ändere Window Größe Ctrl [N]<, [N]> - ändere Window Größe Ctrl-W = - Windows bekommen gleiche Größe Tabs: :tabe [.] - neuen Tab öffnen, . - mit File Dialoge :tabc - Tab schließen gt, gT - go to next, got to previous Tab ===== Suchen und Ersetzen ===== suchen: / - Suche vorwärts ? - Suche rückwärts n, N - nächster, vorheriger Match *, # - suche vorwärts/rückwärts nach Wort unter dem Cursor gd, dD - gehe zu lokaler/globaler Deklaration einer Variable suchen und ersetzen: :%s///g - ersetze alle Vorkommen in gesamter Datei :%s///g - ersetze letzten Suchstring im Visual Mode :'<,'>s/// ===== vimdiff ===== vimdiff oder vim -d öffne vim im diff Mode (vim/vimdiff): :diffthis - wähle Buffer zum Diffen :diffupdate - aktualisiere Diffview :diffoff - stoppe diff do - übernehme Unterschied vom anderen Window dp - übergebe Unterschied zum anderen Window zo, zc - öffne/schließe Faltung zR - und öffne alle Faltungen ===== Weitere Commandos ===== Ctrl-P, Ctrl-N - (edit mode) - Autocompletion mit rückwärts, vorwärts Suche u, Ctrl-R - undo, redo :, / - und Cursor hoch, runter geht durch die Command- oder Such History. % - Springe zwischen matching Klammern . - Wiederhole letztes Kommando Abspeichern und schließen: :w - Datei abspeichern :q, :q! - Window, Tab schließen, vim beenden/erzwingen :qa - alles schließen und vim beenden ===== Plugins ===== phatogen - Plugin Verwalter. Jedes Plugin bekommt sein eigenes Verzeichnis NerdTree - komfortabler Filebrowser BufExplorer - zeige und wähle Buffer gundo - zeige vims undo-Baum matchit - erweitert % tagbar - zeigt Datei seine Variablen, Funktionen repeat - erweitert . (repeat) auf Plugins yankstack - wähle aus den letzten yank Registern ===== Anderes ===== .vimrc - meine vimrc vimperator - Vim Interface für Firefox Eclim - stelle Eclipse Funktionalität für Vim bereit Vim Adventures: - http://vim-adventures.com/ Quellen: Visual Block Mode: - http://jvi.sourceforge.net/javahelpset/jvi-vis_block.html Registers: - http://usevim.com/2012/04/13/registers/ Learn to speak Vim: - http://yanpritzker.com/2011/12/16/learn-to-speak-vim-verbs-nouns-and-modifiers/ Vim Reference Card: - https://www.cmrr.umn.edu/~strupp/vim-3.0.refcard.html