Vim
Vim
| |
---|---|
![]() | |
Wallpaper mit Vim-Logo Wallpaper mit Vim-Logo | |
Basisdaten
| |
Entwickler | Bram Moolenaar und andere |
Erscheinungsjahr | 2. November 1991[1] |
Aktuelle Version | 6.3 (Juni 2004) |
Betriebssystem | Windows, Linux, Mac OS, Amiga uvm. |
Programmiersprache | C[2], Vimscript[2] |
Kategorie | Texteditor |
Lizenz | GPL-kompatibel charityware |
deutschsprachig | ja |
http://www.vim.org/ |
Vim ist eine Weiterentwicklung des Bildschirm-orientierten Editors Vi, der als Standard-Editor auf jedem UNIX-System zu finden ist. Vim ist im Gegensatz zum Vi Open-Source und wurde 1991 von Bram Moolenaar erstmals veröffentlicht. Seitdem wird der Editor von ihm und vielen anderen weiter verbessert.
VIM = Vi IMproved
Vim funktioniert wie der Vi im Textmodus auf jedem Terminal mit Bedienung nur über die Tastatur. Das ist historisch bedingt durch die zu "Ur-Vi"-Zeiten Mitte der 70er Jahre langsamen, seriellen Verbindungen zum Hauptrechner. Obwohl Vim fast 100%-tig abwärtskompatibel zum Vi ist, hat er eine Vielzahl an Verbesserungen und mittlerweile gibt es eine moderne, graphische Benutzerschnittstelle (GUI), mit Menüs und Unterstützung der Maus (gVim) und eine vereinfachte Version für Einsteiger (eVim).
Vim läuft auf vielen Betriebssystemen und ist auf fast jedem GNU/Linux-Rechner zu finden. Beim Start des Vi unter Linux wird oft über einen Link oder einen Alias der Vim aufgerufen. Welcher Vi-Ableger gestartet wurde, läßt sich im Kommando-Modus über den Befehl ':version' überprüfen. Trotz seines Funktions-Umfangs ist der Vim vergleichsweise klein und schnell.
Vim war Gewinner des Readers’ Choice Awards im Linux Journal in der Kategorie "Favorite Text Editor" in den Jahren 2001 bis 2004 und erhielt 2000 den Slashdot Beanie Award als "Best Open Source Text Editor" sowie 1999 den Linuxworld Editors' Choice Award.
Funktionalität
Überblick: Ausgewählte Features und Vi-Erweiterungen
- Multiple Buffer- und Split-Screens, mehrere Editier-Fenster, auch vertikal
- Text-Formatierungen und Visual Mode, z.B. mit Blockoperationen
- unbegrenztes Undo (Rückgängig machen) und Redo (Wiederherstellen)
- umfangreiche Runtime-Dateien (Hilfe- und über 200 Syntax-Dateien)
- Syntax-Highlighting abhängig von der Programmiersprache
- eigene Skriptsprache zur Funktions-Erweiterung (analog von Plugins)
- Komplettierung von Kommandos, Wörtern oder Dateinamen
- Auto-Kommandos (z.B. Dekomprimierung von gezippten Dateien vor dem Editieren)
- Dateiformat-Erkennung und -Konvertierung
- komfortabler History-Mechanismus für Kommandos, Suchbegriffe usw.
- Aufzeichnung und Ausführung von Makros
- Speichern und Laden von Sitzungs-Einstellungen
- optionale Integration von Perl, Tcl und Python
- Unterstützung der “Von-Rechts-Nach-Links”-Schreibung (Arabisch u.a.)
- Unterstützung von Text in UTF-8 und Unicode (Chinesisch, Japanisch u.a.)
- Folding-Mechanismus (Zusammenfalten von Textteilen zur besseren Übersicht)
- Optionale grafische Oberfläche in verschiedenen Ausprägungen (GTK, Motif, ...)
- gut konfigurierbar und an persönliche Vorlieben anpassbar
- Für Vi-Puristen: fast 100%-tig vi-kompatibel, aber ohne dessen Fehler
Die einfache Auflistung der Funktionen vermittelt noch keinen Eindruck von der Leistungsfähigkeit des Vim. Es würde den Rahmen dieses Beitrags sprengen, alle Vi-Verbesserungen zu erläutern. Deshalb sollen einige markante Beispiele herausgegriffen werden, um an diesen die Stärken des Vim zu demonstrieren.
Vim-Hilfefunktion
Vim besitzt eine ausgezeichnete Dokumentation, die nach dem Motto erstellt wurde: "Ein Feature, das nicht dokumentiert ist, ist ein nutzloses Feature." Die Dokumentation im Textformat ist ca. 4 MB umfangreich und verständlich geschrieben. Dabei besteht manchmal das Problem, das Gesuchte zu finden. Der Nutzer wird bei der Suche durch verschiedene Funktionen unterstützt. Durch Syntax-Highlighting und eine eigene Vim-Help-Syntax werden Schlüsselbegriffe farbig hervorgehoben (Bild 5). Über Tasten-Kürzel kann zwischen diesen Schlüsselwörtern vorwärts (Strg-] bzw. entsprechend Strg-+ auf der deutschen Tastatur) und rückwärts (Strg-T oder Strg-O) navigiert werden, ähnlich wie in einem Webbrowser. Das funktioniert in der graphischen Oberfläche zusätzlich auch mit der Maus. Es gibt noch weitere Funktionen, die dem Nutzer das Suchen erleichtern (siehe ':help'). Ergänzt wird die Hilfe durch eine HTML-Version der Hilfe im Internet, eine umfangreiche Sammlung der häufig gestellten Fragen (FAQ), Literatur in Englisch und in Deutsch und vieles mehr.
Unterstützung für Programmierer
Vim ist ein Editor, der von Programmierern für Programmierer geschrieben wurde. Um ihnen die Arbeit zu erleichtern, gibt es einen sogenannten "edit-compile-fix"-Modus, was etwa soviel wie: Editieren-Übersetzen-Fehlerkorrektur bedeutet. Ähnlich wie in einer Integrierte Entwicklungsumgebung wird der Quelltext editiert und dann kompiliert. Falls beim Kompilieren Fehler aufgetreten sind, werden diese in einem weiteren Fenster angezeigt. Von der Fehlermeldung kann direkt ins andere Fenster zur fehlerhaften Stelle im Quelltext gesprungen und dieser korrigiert werden. Sind alle Fehler behoben, kann ein weiterer Zyklus gestartet und es können ggf. neue Fehler korrigiert werden. Der Programmierer wird dabei durch die Funktionen Syntax-Highlighting und Folding unterstützt (siehe ':help quickfix').
Hilfreiche Funktion: Datei-Vergleich
Ein weiteres Problem, was wohl jeder Computerbenutzer kennt, ist das Vergleichen von zwei Versionen einer Datei. Vim bietet hier eine einfache Möglichkeit die Unterschiede zweier Datei-Versionen nebeneinander in zwei Fenstern darzustellen und die Differenzen farblich zu markieren (Bild 4).
Der Aufruf ist: gvim -Od Datei.neu Datei.alt
Dabei werden geänderte und eingefügte Zeilen farbig hervorgehoben und gleich gebliebene Bereiche durch Folding ausgeblendet. Im Beispiel sind geänderte Stellen Rot und eingefügte Zeilen Lila markiert. "Gefaltete" Zeilen sind hier Grau unterlegt.
Modi
Vim ist ein modaler Editor. Dies bedeutet, dass man in unterschiedlichen Modi arbeitet, was Einsteigern oft Probleme bereitet. Um zu sehen, in welchem Modus man sich gerade befindet, sollte man die showmode-Option setzen. Die sechs Grund-Modi sollen hier nur genannt und kurz erklärt werden. Zu den ersten drei Modi siehe auch Vi. Auf die fünf zusätzlichen Modi soll hier der Einfachheit halber nicht eingegangen werden. Diese sind Varianten der Grund-Modi. Siehe dazu die Vim-Hilfe (siehe ':help vim-modes').
Normal-Modus
Vim startet im Normal-Modus, oft auch als Kommando- oder Befehls-Modus bezeichnet. Hier kann man über Tastenkürzel zum Beispiel Zeilen kopieren und verschieben oder Text formatieren. Dies ist der zentrale Modus, von dem in alle anderen Modi gewechselt wird.
Einfüge-Modus
Den Einfüge-Modus erreicht man vom Normal-Modus aus über i (für engl. insert = einfügen), a (wie append = hinter den Cursor anfügen) oder o (wie open = neue Zeile anfügen/öffnen). Es gibt noch eine Vielzahl anderer Befehle, um in diesen Modus zu gelangen. Hier kann man dann wie gewohnt Text editieren. In den Normal-Modus kommt man über die ESC-Taste zurück.
Kommandozeilen-Modus
Dieser Modus wird durch den einleitenden Doppelpunkt : erreicht. Hinter dem Doppelpunkt können dann komplexe Kommandos, wie zum Beispiel Suchen und Ersetzen, eingegeben werden. Nach dem abschließenden Enter befindet man sich wieder im Normal-Mode. Zu diesem Modus zählen weiterhin die Kommandos / (Textmuster vorwärts suchen), ? (Textmuster rückwärts suchen) und das Filter-Kommando !.
Visual-Modus
Dieser Modus ist eine Vi-Verbesserung und ähnelt dem Kommando-Modus. Über ein Kürzel wird ein Bereich, zum Beispiel Zeilen (mit V) oder Blöcke (mit Strg-V) und mit den Pfeiltasten markiert und visuell hervorgehoben. Auf diesen Bereich können dann die Kommandos des Normal-Modus angewandt werden. Die Arbeit mit diesem Modus ist einfacher als mit dem Normal-Modus, da man genau sieht, mit welchem Bereich man gerade arbeitet.
Selektions-Modus
Dieser Modus wird aus dem Visual-Modus gestartet in welchem man einen Bereich markiert. Anschließend wechselt man über Strg-G in den Selektions-Modus. Gibt man nun ein druckbares Zeichen ein, so wird der selektierte Bereich gelöscht und gleichzeitig in den Einfüge-Modus gewechselt. Das heißt, der selektierte Bereich wird mit dem eingegebenen Text überschrieben. Beendet wird dieser Modus wie üblich mit der ESC-Taste. Auch dieser Modes ist eine Vi-Erweiterung.
Ex-Modus
Dieser Modus ähnelt dem Kommandozeilen-Modus, nur mit dem Unterschied, dass nach Ausführung eines Kommandos nicht in den Normal-Modus zurück gewechselt wird. Erreicht wird dieser Modus über das Q und beendet mit vi.
Betriebssysteme
Ein Vorteil des Vim ist, dass er auf vielen Betriebssystemen lauffähig ist. Das ist für alle Nutzer, wie zum Beispiel für Systemadministratoren, wichtig, die auf mehreren Plattformen arbeiten müssen. Denn sie finden auf allen folgenden (in Abhängigkeit von den Fähigkeiten des Betriebssystems) ein und denselben Editor vor:
AmigaOS, Atari MiNT, BeOS, DOS, MacOS, NextStep, OS/2, OSF, RiscOS, SGI, UNIX, VMS, Win16 + Win32 (Windows 95/98/00/NT/XP) - und vor allem für BSD-Systeme und GNU/Linux
Geschichte
Jahr | Version | Bemerkung |
---|---|---|
1988 | 1.0 | Vi IMitation auf einem Amiga auf Basis von Stevie |
1991 | 1.14 | erstes öffentliches Release |
1992 | 1.22 | Portierung nach Unix, Umbenennung in Vi IMproved |
1994 | 3.0 | Mehrfache Editier-Fenster u.a. |
1996 | 4.0 | Graphisches Nutzer-Interface (gVim) |
1998 | 5.0 | Syntax-Highlighting |
2001 | 6.0 | Folding, Mehrsprachigkeit |
2004 | 6.3 | aktuelle Version |
ab 2004 | - | Version 7.0 ist in Arbeit |
Kritik und Apologetik
Kritik
Kritiker bemängeln an Editoren wie vi und vim die lange Einarbeitungszeit und dass sich die Bedienung vollkommen von allen üblichen Editoren unterscheide. Dies mache vi und vim besonders für Gelegenheitsbenutzer sehr wenig geeignet.
Apologetik
Befürworter halten dem entgegen, dass man mit vi oder vim nach der Einarbeitungszeit eine im Vergleich zu anderen Editoren teilweise sogar wesentlich höhere Produktivität an den Tag lege. Die Befehle seien über Eselsbrücken recht einprägsam. Da vim üblicherweise ausschließlich mit der Tastatur bedient werde, entfalle ein häufiger Wechsel zur Maus. Für Programmierer sowie zum Bearbeiten von Konfigurations- oder LaTeX-Dateien sei der Editor wegen vieler ausgefeilter Funktionen und der hohen Konfigurierbarkeit gut geeignet.
---
"Why are we hiding from the police, daddy?" - "Because we use vi son, they use emacs."
Lizenz
Vim steht unter einer GPL-kompatiblen 'Charityware'-Lizenz (charity, engl.: Nächstenliebe). Das bedeutet, dass Vim frei verteilt werden darf, jedoch erbitten die Entwickler bei Gefallen eine Spende für Waisenkinder in Uganda durch das ICCF Holland.
Entwickler und Community
Vim wird von Bram Moolenaar und vielen Freiwilligen entwickelt. Die Vim-Hilfeseite (':help credits') der aktuellen Version nennt über 50 Mitwirkende namentlich. Es gibt eine große Anzahl ungenannter Helfer, die sich nicht nur um die Weiterentwicklung des Vim kümmern, sondern auch um:
- die Portierung auf andere Betriebssysteme
- Programmtests und Sammeln von Bugs
- die Vervollständigung der Dokumentation
- die Übersetzung der Hilfe-Seiten
- die Beantwortung von Nutzeranfragen
- die Einbindung in andere Projekte
- und viele andere Dinge
Außerdem kann jeder Nutzer auf der Vim-Homepage nützliche Vim-Skripte oder hilfreiche Vim-Tips anderen zur Verfügung stellen. Es gibt eine sehr aktive Mailingliste, auf der sowohl Neulinge als auch erfahrene Vim-Nutzer Fragen stellen können. Diese werden schnell und kompetent beantwortet.
Trivia
Weniger bekannt sein dürfte, dass Vim eigentlich ein Putzmittel ist. Genaueres siehe Vim-Webseite unter Weird stuff.
Literatur
- Reinhard Wobst: vim ge-packt, mitp-Verlag, ISBN 3-8266-1425-9
- Steve Oualline: Vi IMproved - Vim, Verlag “New Riders”, ISBN 0-7357-1001-5 (englisch)
Mailing-Liste
<vim@vim.org> - siehe auch: Erklärung zur Mailing-Liste
Weblinks
Allgemeines und Link-Sammlungen
- Vim-Homepage (englisch)
- Vim-Site von Bram Moolenaar (englisch)
- Link-Sammlung zu Vim-Seiten (englisch)
- eine weitere interessante Link-Sammlung (englisch)
- Vim-Ressourcen (Wiki, Tutorial, Beispiel-vimrc etc.) (englisch)
- CREAM: Eine einfache Vim-Konfiguration für Windows und GNU/Linux (englisch)
Dokumentationen
- Vim erklärt in 6 Kilobytes (nicht komplett übersetzt)
- Vim-Schnellübersicht
- Vim-Hilfe als HTML (englisch)
- Vim User Manual als HTML (englisch)
- Das Buch von Steve Oualline als PDF ca. 4 MB (englisch)
- VimDoc-Projekt - Dokumentationen zu Vim (englisch)
- Häufig gestellten Fragen (FAQ) (englisch)
- Vim-Makros erstellen
- Vim-LaTeX - Vim als LaTeX-Suite (englisch)
- ↑ arstechnica.com.
- ↑ a b www.openhub.net. (abgerufen am 21. Juli 2018).