Vim (Vi IMproved) ist eine Weiterentwicklung von Vi der auf fast jedem Unix System zu finden ist. Außerdem ist er mein Lieblingseditor. Für Einsteiger ist es nicht einfach seine vielen Funktionen zu entdecken. Deshalb hier eine kleine Übersicht. Wer sich erst mal mit den Funktionen vertraut gemacht hat wird sie sicher nicht mehr missen wollen.
Allgemeines
- vim -r file.swp - Recovery einer Swap- Datei, z.B. nachdem beim editieren die Session unfreiwillig beendet wurde.
- :15 - Zeile 15
- :5,18 - Zeile 5 bis 18
- :. - Aktuelle Zeile
- :$ - Letzte Zeile
- :% - Alle Zeilen, gleichbedeutend mit :1,$
- Strg+g - Dateinamen anzeigen
- :set mouse=a - Maus einschalten
Navigieren
- h - Ein Zeichen nach links
- j - Eine Zeile nach unten
- k - Eine Zeile nach oben
- l - Ein Zeichen nach links
- w - Ein Wort weiter
- b - Ein Wort zurück
- 0 - An den Zeilenanfang
- $ - An das Zeilenende
- Strg+u - Seite nach oben
- Strg+d - Seite nach unten
Sprünge
- nG - Sprung zur Zeile n
- % - Sprung zur zugehörigen Klammer
- m [a-z,A-Z] - Setzen einer Marke.
- ` [a-z,A-Z] - Sprung zur Marke
Suchen
- /Muster - Vorwärts suchen nach einem bestimmten Muster
- ?Muster - Rückwärts suchen nach einem bestimmten Muster
- n - Wiederholen der Suche
- N - Wiederholen der Suche in umgekehrter Richtung
- :set [no]incsearch - Während der Suche schon zum entsprechenden Text springen
- :set ignorecase - Groß- Kleinschreibung ignorieren
- Strg+r Strg+w - Im Suchmodus ausgeführt wird das Wort unter der Cursor eingefügt
- Strg+r x - Im Suchmodus ausgeführt wird das Wort aus dem Register X eingefügt
Einfügen
- i - Einfügen vor dem aktuellen Zeichen
- a - Einfügen nach dem aktuellen Zeichen
- o - Einfügen in neuer Zeile
- O - Einfügen einer Zeile davor
- I - Einfügen am Zeilenanfang
- A - Einfügen am Zeilenende
- :r - Inhalt einer Datei hinter dem Cursor einfügen
- . - Wiederholen des letzten Einfüge- bzw. Löschen- Kommando
- u - Undo der letzten Änderung
- Strg+r - Redo hebt Undo wieder auf
- Strg+p - Vervollständigung des Wortes im Einfügemodus, sucht rückwärts
- Strg+n - Vervollständigung des Wortes im Einfügemodus, sucht vorwärts
- set iskeyword+=- - Verbindungen mit - als Wort ansehen
Löschen
- nx - n Zeichen nach rechts löschen
- nX - n Zeichen nach links löschen
- D - Ab Cursor bis Zeilenende löschen
- ndd - n Zeilen ab Cursor löschen
- :Bereich d - Löschen eines Zeilenbereiches
- :10d - Zeile 10 löschen
- :50,$ d - von Zeile 50 bis zum Ende löschen
- J - Zeilenumbruch löschen
- :g/^test/d - Zeilen die mit test beginnen löschen
Ersetzen
- R - Ersetzen oder überschreiben Modus
- ~ - Umwandeln von Gross- in Kleinbuchstaben und umgekehrt
- U - Markierten Text umwandeln von Gross- in Kleinbuchstaben
- u - Markierten Text umwandeln von Klein- in Grossbuchstaben
- rn - Ersetzt das Zeichen unter dem Cursor mit n, wobei n für ein beliebiges Zeichen steht
- :Bereich s/alt/neu/Option - Ersetzt ''alt'' durch ''neu'' im ''Bereich''
- %%:Bereich s//neu/Option%% - Ersetzt die letzte Suche durch ''neu''
- :Bereich s/Strg+r/... - Mit der Tastenkombination Strg+r gefolgt von ''/'' wird die letzte Suche eingefügt
- Strg+a - Zahl unter dem Cursor hoch zählen
- Strg+x - Zahl unter dem Cursor runter zählen
- c{Nawigation} - Der durch die Navigationstaste wie (w ein Wort weiter) wird gelöscht und in den Einfügemodus gewechselt
- C - Löschen bis zum Zeilenende und in den Einfügemodus wechseln
Sortieren
- :Bereich sort - Sortiert die Zeilen im angegebenen Bereich
Kopieren
- y - Kopieren
- nyy - n Zeilen kopieren
- p - Einfügen hinter dem Cursor
- P - Einfügen vor dem Cursor
Register
- "[a-z]y - Kopieren in Register
- "[a-z]p - Einfügen aus dem Register hinter dem Cursor
- Strg+r [a-z] - In einem Suchmuster einfügen des Inhaltes eines Puffers
Tabulatoren
- set expandtab - Eingegeben Tabulatoren werden durch Leerzeichen ersetzt
- % retab - Bestehende Tabulatoren ersetzen
- set tabstop=n - Tabulatorweite auf n Zeichen setzen
- set shiftwidth=n - Anzahl der eingesetzten Leerzeichen auf n setzen
Visueller- Modus
- v - Visueller Modus zum zeichenweise markieren
- V - Visueller Modus zum zeilenweise markieren
- Strg+v - Visueller Modus zum blockweise markieren
- > - Markierten Absatz einrücken
- c - Markierten Bereich löschen und direkt in den Einfügemodus wechseln
Einfügen vor einem Block, Block mit Strg+v markieren dann 'I', Text eingeben, mir ESC, ESC abschließen.
Fenster
- :new datei - Öffnet datei in einem neuen horizontalen Fenster
- :vnew datei - Öffnet datei in einem neuen vertikalen Fenster
- Strg+w Cursor taste - Wechselt in das Fenster in Richtung der Cursor taste
- Strg+w + Strg+w - - Vergrößert (+) bzw. verkleinert (-) aktuelles horizontal geteiltes Fenster
- Strg+w < Strg+w > - Vergrößert bzw. verkleinert aktuelles vertikal geteiltes Fenster
- Strg+w = - Alle Fenster auf gleiche Größe
- Strg+w _ - Aktuelles horizontales Fenster auf maximale Größe (Höhe)
- Strg+w | - Aktuelles vertikales Fenster auf maximale Größe (Breite)
Wenn die Maus aktiviert wurde geht dies auch mit der Maus.
Faltung
- zf - Faltung für markierten Bereich erzeugen
- :Bereich fold - Faltung für Bereich erzeugen
- zo - Faltung unter dem Cursor öffnen
- zO - Alle Faltungen öffnen
- zc - Faltung unter dem Cursor schließen
- zC - Alle Faltungen schließen
- zi - Alle Faltungen abwechselnd öffnen/schließen
- zd - Faltung unter dem Cursor löschen
- :mkview - Fenstereinstellung (Faltung) abspeichern
- :loadview - Fenstereinstellung (Faltung) laden
Speichern und beenden
- :w [Datei] - Speichern optional Dateinamen angeben
- :w! [Datei] - Überschreiben einer Read-Only Datei
- :q - Beende
- :qa - Alle Fenster schließen, alles beenden
- :q! - Beende ohne zu speichern
- :x - Speichern und beenden
- ZZ - Speichern und beenden
- :e [Datei] - Aktuelle Datei schließen und neue Datei öffnen
Datei Format
- :set [encoding|enc] - Abfragen der Kodierung der Datei (Probleme mit Umlauten und Sonderzeichen)
- :set enc=[iso-8859-1|utf-8] - Kodierung festlegen. ''iso-8859-1'' und ''utf-8'' sind hier als Beispiel zu sehen.
- :set [fileformat|ff] - Fileformat der Datei abfragen.
- :set ff=[unix|dos] - Fileformat auf ''unix'', ''dos'' oder anders setzen.
Rechtschreibprüfung
Seit Vim Version 7 intigriert.
Wörterbücher: unter /usr/share/vim/vim70/spell ablegen.
- de.latin1.spl
:setlocal spell spelllang=de - Deutsche Rechtschreibprüfung einschalten
- z= - Vorschlag für ein Wort anzeigen
Hilfe
- :help Kommando - Hilfe für das entspr. Kommando
- :syntax [on|off] - Syntax Highlighting ein und ausschalten
- :set [no]autoindent - Automatisches Einrücken wie die vorherige Zeile
- :set [no]smartindent - Syntax abhängiges automatische Einrückung
- :set tabstop=2 - setzt die Tabulator weite auf 2
- :set [no]number - Zeilennummer einblenden
- :set backspace=2 - Backspace Taste zum löschen verwenden
- :set [no]hlsearch - Suchergebnis hervorheben
- :set cursorline - Aktuelle Zeile hervorheben
- :set textwith=78 - Legt die Zeilenlänge auf 78 Zeichen fest, VIM wird nach der Anzahl der Zeichen automatisch die Zeile umbrechen
vimdiff
- :diffupdate - Diff nach Änderungen aktualisieren
- do - Änderung vom anderen Fenster ins aktive holen
- dp - Änderungen vom eigenen Fenster ins andere schieben
Einstellungen speichern
Hierfür wird die Datei ''.vimrc'' im Homeverzeichnis abgelegt. Das Zeichen " dient als Kommentarzeichen.
" .vimrc
" my vim settings
syntax on
set backspace=2
" spaces instead of TABs
set expandtab
set tabstop=4
set shiftwidth=4
set number
Unter Windows am besten folgende Befehle in der ''_vimrc'' auskommentieren
"source $VIMRUNTIME/mswin.vim
"behave mswin
vim und ssh
Mit vim ist es auch möglich Dateien über eine SSH Verbindung zu editieren.
vim scp://user@remoteserver.org//home/user/file.php
mehrere Dateien editieren
Man kann auch mehrere Dateien gleichzeitig öffnen
vim datei1 datei2 datei3
Zum navigieren zwischen den Dateien
- :next zur nächsten Datei
- :prev zur vorherigen Datei
Einem herrlichen Sonnentag habe ich für eine Ausflug ins Neckartal genutzt. Eine ganze Weile hab ich eine Graureiherkolonie beobachtet. Leider war die Entfernung zu groß für bessere Aufnahmen. Dafür gab es auf der Wiese schöne Blümchen. Auf dem Rückweg ging es noch auf der Burg Hornberg bei Neckarzimmern vorbei.
Das Edelfrauengrab liegt in der Nähe von Achern im Schwarzwald. Von Ottenhöfen führt eine schmale Strasse an einem Steinbruch vorbei zu einem Parkplatz. Der weg führt dann am Gottschlägbach entlang, der über mehre Stufen ins Tal stürzt, und so einen romantischen Wasserfall bildet.
Der Sage zufolge wurde hier einst die Edelfrau des Ritters Wolf von Bosenstein bei lebendigem Leib in eine Höhle eingemauert. Um seine Frau von der Qual zu erlösen wurde der Bach in die Höhle umgeleitet. Daher der Name Edelfrauengrab.
Wenn man dem Weg weiter folgt kommt man zum Karlsruher Grat mit einem schönen Ausblick auf die umliegende Landschaft.
Wieder mal ein paar Bilder die auf einem Fotokurses entstanden sind. Diesmal eine Tour durch das
Blühende Barock in Ludwigsburg. Auch wenn es noch früh im Jahr ist, ist doch schon vieles am Blühen und es waren schöne Motive zu finden. Ich hoffe ich erwecke damit noch ein wenig mehr Lust auf den Frühling.
Bei einem Ausflug nach Friedrichshafen war ich nicht nur auf dem Konzert der Schürzenjäger, sondern habe auch zwei tollen Museen besucht. Sehr empfehlenswert für alle Technik, Luft- und Raumfahrt interessierte ist das
Dornier Museum in der Nähe vom Flughafen. Ein Einblick in die Luftfahrtgeschichte bis hin zur Raumfahrt und Technik rund um dieses Thema. Einem weiteres Highlight der Luftfahrtgeschichte wird einem im
Zeppelin Museum näher gebracht. Nicht zu vergessen die schöne Landschaft rund um Friedrichshafen am schönen Bodensee.
Ein paar Bilder von meinem Tag in der
Wilhelma. Entstanden sind die Bilder während eines Fotokurses der
Nickon School. Der Kurs war sehr gut organisiert, in Begleitung von 2 Trainern konnte man sich an den verschiedensten Motiven versuchen und bekam hilfreiche Tipps. Nachdem das Wetter morgens noch recht trüb und nebelig war wurde es noch ein richtig schöner Tag.
Backup Tool
rsnapshot sichert sowohl loakl als auch remote, über rsync, sehr effektiv die Daten, in mehreren Versionsständen mit Hilfe von
Hardlinks. Durch die Hardlinks ist der Speicherverbrauch für mehrere Versionsstände nur sehr gering.
Verfügbar als Debian/Ubuntu Paket, funktioniert aber auf nahezu jedem Unix basiertem Betriebssystem wie auch unter Mac OS.
Die Konfiguration erfolgt über /etc/rspanshot.conf. In der Konfigurationsdatei dürfen Tabs nicht durch Leerzeichen ersetzt werden. Wer den vim als Texteditor verwendet sollte daher vor Änderungen ein :set noexpandtab nicht vergessen.
Für die Sicherung auf eine USB Platte z.B. USB-DISK1 gibt man den Mount Punkt an wo die Platte eingehängt wird, optional gefolgt von einem Verzeichnis (hier rsnapshot) unter dem die Sicherung abgelegt werden soll.
snapshot_root /media/USB-DISK1/rsnapshot/
Es soll einmal die Woche gesichert werden und 4 Versionen aufgehoben.
interval weekly 4
Gesichert werde soll mein home und etc. Das localhost am Ende der Zeile beschreibt einen weiteren Unterordner, hier kann man z.B. auch den Rechnernamen verwenden wenn auf der USB Platte z.B. mehrere Rechner gesichert werden sollen.
backup /home/stefan/ localhost/
backup /etc/ localhost/
Um die Konfiguration auf Syntaxfehler zu testen, gibt es folgenden Befehl
rsnapshot configtest
Ebenso kann man eine Testsicherung durchführen, hier werden noch keine Daten kopiert.
rsnapshot -t weekly
Und um die Sicherung durchzuführen benutzt man folgenden Befehl. Die Option weekly bezieht sich auf die oben angegebene Konfiguration hinter interval
rsnapshot weekly