Hauptseite

vi bzw vim – der Editor aus der Hölle

23. Dezember 2008 von zimon

Als erstes stelle ich mal meinen Lieblingseditor vor.
Den opensource Clon von vi, dem Editor aus der Hölle: vim – Abkürzung für Vi Improved.

vim ist quasi vollständig kompatibel zu vi und der beliebteste vi Clon, den es gibt. Deswegen meinen die meisten auch vim, wenn sie von vi reden. Darüber hinaus bietet vim noch viele zusätliche Funktionen.
Unter Linux ist der Befehl vi meistens mit dem Editor vim verknüpft, so dass man den vim läd, wenn man vi eingibt.

vi wurde 1976 entwickelt und gilt heute immer noch als einer der mächtigsten Texteditoren überhaupt (der einzige, der heran reicht ist wohl emacs).

vi und vim sind kommandozeilenbasiert, es gibt von vim jedoch auch eine Version mit grafischer Oberfläche (die jedoch nicht mehr kann). Dadurch ist es möglich vim komplett ohne Maus zu bedienen, was einen gewaltigen Geschwindigkeitsvorteil bringt.

vim gibt es für alle Betriebssysteme und kann eigentlich mit jedem anderen Editor mithalten.

Wer viel mit Textdateien arbeitet und seine Geschwindigkeit drastisch erhöhen möchte, dem empfiehlt es sich sehr, sich diesen Editor mal anzusehen.

Leider ist die Einarbeitungszeit recht hoch, doch die Zeit holt man später locker wieder raus.
Es ist wie beim 10-Finger schreiben, man wird erst etwas langsamer, weil man versuchen muss, die Tasten mit den richtigen Fingern zu drücken, aber später wird man dafür umso schneller.

Es gibt 3 Modi im vi: den Kommandomodus, den Einfügemodus und den Execution Modus. Normalerweise befindet man sich im Kommandomodus, wo man sehr viele Möglichkeiten hat sich im Text zu bewegen. Unter anderem:

  • Ein oder mehrere Zeichen nach vorne oder hinten
  • Eine oder mehrere Zeilen nach oben oder unten
  • Ein oder mehrere Wörter nach vor oder zurück (Wobei es zwei verschiedene definition von Wort gibt, einmal durch Leerzeichen getrennt und einmal durch Sonderzeichen sowie ,.() und ähnliches)
  • Vorwärts oder rückwärts zum nächsten (oder x-ten) vorkommen eines Zeichens
  • Springen zu einer Zeile (Zeilennummern kann man sich anzeigen lassen)
  • Springen zum Anfang oder Ende einer Zeile oder der Datei
  • ganze oder halbe Seiten hoch oder runter scrollen Für fast jeden dieser Befehle ist nur ein Tastendruck (und die eingabe für die Anzahl, wenn mehr als 1) nötig.

Darüber hinaus gibt es noch weitere Funktionen um Text zu kopieren, zu löschen einzufügen oder zu ändern (wobei man mit den oben genannten Bewegungsbefehlen angeben kann, wie bis wohin die Aktion gehen soll)
Fast allen Befehlen kann man eine Zahl vorranstellen, die angibt, wie oft der Befehl ausgeführt werden soll. Mit 5w kann man z.B. 5 Wörter weiter springen, mit 3dw die nächsten 3 Wörter löschen…

Die Befehle lassen sich (zumindest meistens) recht gut merken, da sie die Anfangsbuchstaben der jeweiligen englischen Befehle sind (d=delete, w=word, c=change …)

Es gibt verschiedene Möglichkeiten um in den Einfügemodus zu kommen (vor dem Cursor, hinter dem Cursor, am Anfang oder Ende der aktuellen Zeile), wo man dann wie gewohnt Text eingeben kann. Mit Escape kann man diesen dann wieder verlassen.

Der Execution Modus (kurz Ex-Modus) ist für komplexere Befehle und wird mit dem Doppelpunkt eingeleitet. Mit diesem kann man zum Beispiel Reguläre Ausdrücke über einen ganzen Text oder einen Textbereich laufen lassen. Er wird auch zum Öffnen, Speichern und Wechseln von Dokumenten gebraucht. Im Ex-Modus kann man auch Einstellungen ändern.

vim verfügt zusätzlich (neben anderen Modi) über einen visuellen Modus, mit dem mann sehr schnell Text markieren kann, um ihn dann zu kopieren oder zu ersetzen (oder ähnliches).

Ein weiterer Vorteil von vi ist der schnelle Umgang mit sehr großen Dateien. So läd vi eine 100MB Textdatei in 5-10 Sekunden – aber komplett, so dass man in Bruchteilen von Sekunden an jede beliebige Stelle der Datei springen kann (versucht das mal mit anderen Editoren… der Windowseditor Notepad weigert sich sogar solch große Dateien zu öffnen)

Weitere Features des vim:

  • Tabs (Reiter)
  • Bearbeiten von Dateien direkt auf einem FTP-Server
  • Session Management
  • Setzen von Markierungen im Text und schnelles Springen dorthin (bis zu 26)
  • Mehrere (26) Register zur Zwischenablage von Text
  • Aufzeichnen von Befehlsfogen um diese zu wiederholen
  • Syntaxhighlighting für fast alle Programmier- und Beschreibungssprachen
  • Definieren von eigenen Tastenkombinationen
  • Bearbeiten von mehreren Dateien gleichzeitig, die man nacheinander durchgehen kann und/oder horizontal oder vertikal (auch mehrfach) splitten kann
  • Autovervollständigung von Wörtern, die schon im Text vorkommen
  • Wiederholen des letzten Befehls mit Punkt (.) (oft sehr praktisch)
  • Anzeige von Unterschieden (diff) zweier Dateien (z.B. zum Vergleich zweier Versionen)
  • automatische oder manuelle Definition von Faltungen. Das heißt eine gewisse Anzahl von Zeilen (z.B. eine ganze Funktion) auf eine Zeile reduzieren (ausblenden)

Darüber hinaus gibt es noch spezielle Funktionen für Programmierer wie z.B.

  • Springe zur korrespondierenden Klammer
  • Markiere (automatisch) korrespondierenede Klammern
  • Springe zur nächten/vorherigen Funktion
  • Springe zur Deklaration einer Variablen
  • Autocomplete dateiübergreifend (sucht in includierten Dateien) als Plugin
  • Aufruf von make aus vi heraus. Bei Fehlern kann man dann immer zum nächsten Fehler springen.

vim kann über Plugins noch erweitert werden (z.B. Syntaxhighlighting für weitere Sprachen, Tools für bestimmte Programme/Sprachen…). Es gibt über 2000 Plugins. So gibt es z.B. auch ein komplettes Toolset für LaTeX.

Wer vim einmal ausprobiert hat und gefallen an der Bedienung gefunden hat, den könnte auch das Firefox Add-On Vimperator interessieren. Mit diesem kann man den Firefox mit (fast) genau den gleichen Tastenkombinationen bedienen wie vim. Man braucht quasi keine Maus mehr um mit dem Firefox zu surfen. Wer vim beherrscht hat sich ziemlich schnell in den Vimperator eingearbeitet.

Für Linuxuser gibt es auch noch die grafische Oberfläche wmii, die anders als KDE oder Gnome komplett über die Tastatur bedienbar ist. Auch hier sind die Befehle an vim angelehnt. wmii ist bei fast jeder Distribution dabei und braucht nur über den jeweiligen Paketmanager installiert zu werden.

Debian und Ubuntu User aufgepasst: standardmäßig wird eine kleinere Version des vim (vim.tiny) installiert, dem viele Funktionen fehlen. Mit apt-get kann man aber den richtigen vim installieren. Bei anderen Distributionen kann dies auch der Fall sein (am besten im Paketmanager nachschauen).

Übrigens: “In the middle of evil theres vi”

In der Kategorie vim Tipps werde ich immer mal wieder praktische Tipps und Tricks zu vim veröffentlichen.

Hier ein paar Videos, die einige der Features von vim zeigen.

Find es schade, dass Markierungen, Faltungen und einige andere coole Dinge auf keinem der Videos zu sehen sind. Trotzdem teilweise recht beeindruckend. Das beste Video hab ich mal eingebunden:

YouTube Preview Image

(Link: http://youtube.com/watch?v=BE37aawMBZs)
http://youtube.com/watch?v=pCiVCiku3cM
http://youtube.com/watch?v=IMC9PtXwCtI
Bei Youtube gibts noch mehr Videos.

Siehe auch: Linkliste zu vim


Schlagworte: , , ,



Kommentieren

Kommentarlinks könnten nofollow frei sein.


Bloggeramt.de frisch gebloggt Blogverzeichnis - Blog Verzeichnis bloggerei.de