====== Vim-Spickzettel ====== * Fast alle Kommandos können mehrfach angewandt werden, indem du vorher oder zwischendrin eine Zahl eintippst. * In '' ~/.vimrc'' stehen die Starteinstellungen (irgendwo gibt es auch eine vimrc_example). * Nei der Auswahl von Kommandos und Dateinamen funktioniert auch die glorreiche bash-Tab-Vervollständigung. * Eine gute Art Vim zu lernen ist ein [[http://vim-adventures.com|VimVenture]]. ===== Umgang mit Dateien ===== ^ Eingabe ^ Bedeutung ^ | w | speichern | | w HALLO | einmalig in Datei HALLO speichern | | saveas HALLO | ab jetzt immer in HALLO | | X,Y w [HALLO] | alles zwischen Zeile X und Y speichern | | wq | speichern und beenden | | x | speichern und beenden | | r HALLO | fuege den Inhalt der Datei HALLO vor dem Cursor ein | Ein angehaengtes ''!'' umgeht eventuelle Bestätigungsfragen. ===== In den Editier-Modus wechseln ===== ^ Eingabe ^ Bedeutung ^ | i | vor dem Cursor einfügen | | I | am Zeilenbeginn einfügen | | a | nach dem Cursor einfügen | | A | nach dem Zeilenende einfügen | | o | eine neue Zeile vor der aktuellen einfügen | | O | eine neue Zeile nach der aktuellen einfügen | | R | ab dem Cursor ersetzen (also Überschreib-Modus) | | ESC | zurück in den Kommando-Modus | ===== Bewegung ===== ^ Eigabe ^ Bedeutung ^ | h/j/k/l | links/unten/oben/rechts (effizienter als Cursor) | | w/e | an Anfang/Ende des naechsten Wortes springen | | ''^/$'' | Anfang/Ende der Zeile (wie bei regulären Ausdrücken!) | | XX Shift-G | zur gewünschten Zeilennummer XX gehen (nix -> letzte Zeile) | | STRG-G | aktuelle Position in der Datei anzeigen | | XX% | springt zur prozentualen Position | | XX: | springt zur Zeile XX | | ma | setzt eine Marke namens "a" | | 'a | springt zur Marke "a" | | marks | zeigt alle Marken an | | marks X | zeigt Informationen zur Marke X an | | STRG-O | springt zu einer "älteren" (?) Postion | | STRG-I | springt zu einer "neueren" (?) Position | Marken mit Grossbuchstaben funktionieren auch über mehrere offene Dateien hinweg. ===== Suchen ===== ^ Eingabe ^ Bedeutung ^ | / | dann Suchtext eingeben (auch reguläre Ausdrücke) | | ? | dasselbe, nur rückwaerts | | n | nächstes Auftreten suchen | | N | vorheriges Auftreten suchen | | % | zugehoerige Klammer, also "([{"), suchen (gut für Verschachtelungen beim Programmieren) | Folgende Optionen sind möglich: ^ Eingabe ^ Bedeutung ^ | set ic | ignore case | | set is | inkrementelle Suche | | set hls |highlight search | ===== Loeschen ===== M ''d?'' - das Fragezeichen kann dabei Folgendes sein: ^ Eingabe ^ Bedeutung ^ | w | Wort bis zum nächsten Wortanfang (mit Leerzeichen) | | e | Wort bis zum Wortende (also ohne Leerzeichen) | | ''^/$'' | bis zum Zeilenanfang/-ende | ===== Ersetzungen ===== ^ Eingabe ^ Bedeutung ^ | rX | ersetzt das Zeichen unter dem Cursor durch "X" | | cw | löscht das Wort unter dem Cursor und wechselt in Einfügemodus | | c$ | löscht das Ende der Zeile und wechselt in Einfügemodus | | ''c^'' | löscht den Anfang der Zeile und wechselt in den Einfügemodus | | s/A/B | ersetzt ein A durch ein B in der aktuellen Zeile (sed-Syntax) | | s/A/B/g | dito, alle Vorkommen in der aktuellen Zeile | | X,Ys/A/B | von Zeile X bis Y jeweils ein A durch ein B ersetzen | | %s/A/B | in allen Zeilen ein A durch ein B ersetzen | Bemerkungen: * ''$'' steht fuer die letzte Zeile * das angehängte ''/g'' kann immer verwendet werden * ein angehängtes ''c'' bzw. ''/c'' fragt jedesmal nach * ein ''/'' im Text muss durch ''\/'' geschützt werden * reguläre Ausdrücke sind erlaubt ===== Rückgängig machen ===== ^ Eingabe ^ Bedeutung ^ | u | letzte Aktion | | U | letzte Zeile wiederherstellen | | STRG-R | rückgängig Gemachtes wiederherstellen | ===== Kopieren und Einfügen ===== ^ Eingabe ^ Bedeutung ^ | p | fügt das zuletzt gelöschte/kopierte Objekt nach dem Cursor ein | | P | dito, vor dem Cursor | | y | eine Zeile in Zwischenspeicher kopieren | ===== meherere Dateien ===== ^ Eingabe ^ Bedeutung ^ | e DATEI | öffnet eine Datei und schiebt die aktuelle in den Hintergrund | | e #X | die Xste Datei wieder hervorholen | | files | alle geöffneten Dateien auflisten | | hide DATEI | schiebt die aktuelle Datei - ohne zu speichern - in den Hintergrund und öffnet DATEI | | n | wechselt zur nächsten, die Aktuelle wird geschlossen | | wn | speichert vorher die Aktuelle | | prev | zur Vorherigen | | args: | zeigt welche Datei gerade aktuell ist | | first | wechselt zur Ersten | | last | zur Letzen | Bemerkungen: ^ Eingabe ^ Bedeutung ^ | set autowrite | speichert die Aktuelle ohne nachzufragen | | 2n oder 4prev | springt über Dateien hinweg | | ''STRG-^'' | springt zur vorher editierten Datei | ===== Split-Screen ===== ^ Eingabe ^ Bedeutung ^ | split | teilt den Bildschirm | | STRG-w STRG-w | springt zum nächsten Fenster | | close | schliesst das aktuelle Fenster | | only | schliesst alle ausser dem Aktuellen | | new | öffnet ein neues Fenster leer | | split HALLO | öffnet HALLO in neuem Fenster | | STRG-w +/- | vergrössert/verkleinert das aktuelle Fenster | | vsplit | vertikales Splitting | | wall/qall | speichert/schliesst alle | Beim Aufruf von vim öffnet der Parameter ''-o'' alle Dateien in Fenstern. ===== Sonstiges ===== ^ Eingabe ^ Bedeutung ^ | >>/<< | Ein-/Ausrücken (?), (mit Zahl: mehrere Zeilen) | | !KOMMANDO | führt das externe Kommando aus | | r !KOMMANDO | dito & schreibt den Output an die aktuelle Position | | set XXX | setzt die jeweilige Option | | set noXXX | Option ausschalten | | set all | setzt alle Optionen auf default | ===== Hilfe ===== ^ Eingabe ^ Bedeutung ^ | help | Meta-Hilfe (hilfreich, um die Hilfe nutzen zu können) | | help THEMA | die Hilfe - mit '':q'' verlassen | | help user-manual | hier steht wirklich alles | | help EXX | die Hilfe für Fehlernummer XX | ===== Bewegungen ===== ^ Eingabe ^ Bedeutung ^ | STRG-] | folgt einem Verweis | | STRG-T/O | zurück springen |