Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2003  »  06  »  ÜbersetzO-matik  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Vims Skriptsprache praktisch erklärt

ÜbersetzO-matik

von Susanne Schmidt
Erschienen im Linux-Magazin 2003/06

Nicht nur Emacs ist mittels Skripting erweiterbar. Auch Vim, der zeitgemäß erweiterte Uralt-Editor »vi«, enthält eine eingebaute Skriptsprache. Sie ist nicht ganz so üppig wie Emacs-Lisp, braucht aber weniger Klammern. Wir erklären sie anhand eines Editor-Plugins zum Übersetzen von Wörtern.

Der Editor Vim [1] ist die moderne Variante des Klassikers »vi«. Mit seiner grafischen Oberfläche, Syntax-Highlighting für jede denkbare Programmiersprache und mehrfachem Undo bietet er deutlich mehr als das Original. Viele Anwender wissen, dass man mit Perl, Python, Ruby oder auch TCL einige Vim-Funktionen aufrufen kann. Der Editor hat aber auch eine eingebaute eigene Sprache: Mit While-Schleife, If-Else-Konstrukten, Variablen, vorgefertigten Funktionen und einer Handvoll üblicher Operatoren für Arithmetik ist Vim zwar nicht üppig, aber ausreichend bestückt.

Das Besondere an Vims Sprache: Das komplette Sortiment Tastatürkürzel und Ex-Befehle (die Doppelpunkt-Befehle) sind auch im Skript verfügbar, in der GUI-Version von Vim kommen noch die Menüfunktionen hinzu.

Aus der Skriptsprache kann man sich kleine Helfer basteln, die anspruchsvolle Ergänzungen zur Syntax-Hervorhebung oder das Verhalten je nach Dateiart steuern. Das Entwicklungstempo ist hoch, bisher sind in jeder größeren Release neue Funktionalitäten hinzugekommen. Das erweist sich aber gleichzeitig als Falle. Je nach Version von Vim haben ein paar Funktionen neue Namen erhalten, Rückwärtskompatibilität ist also nur bedingt gegeben.

Ein Tutorial und eine Funktionsliste stehen im Vim-Helpfile »usr_41.txt«, das man mit »:help usr_41« aufruft. Die Funktionen im Beispielskript beziehen sich alle auf Vim 6.1. Wer einen älteren Vim hat, muss vielleicht ein paar Änderungen nachschlagen.

Schneller Griff zur Übersetzung

Skriptsprachen lassen sich am besten am Beispiel erklären. Das hier vorgestellte kleine Skript enthält alle wichtigen Elemente der Vim-Sprache und tut gleichzeitig etwas Sinnvolles: Es erfasst ein englische Wort unter dem Cursor und schlägt es in einer Wörterbuchdatei für Deutsch und Englisch nach. Es zeigt die Übersetzung des Wortes an - dann hat der Nutzer die Wahl: Er kann das Wort einfügen oder das Suchwort mit Übersetzungswort in eine externe Datei schreiben.

Umgekehrt lässt sich in einem Dialog ein deutsches Suchwort eingeben und das englische Pendant anzeigen. Dazu sind erforderlich: Ein Dialog mit dem Anwender, der Zugriff auf externe Dateien und Kommandos, das Erkennen von Suchmustern und eine Verzweigung je nach Auswahl des Benutzers. Der Zugriff auf das Skript erfolgt über eine spezielles Tastaturmapping. Einige Funktionen für Dialoge mit dem Benutzer arbeiten übrigens sowohl mit dem GUI als auch auf der Konsole - Vim zeigt selbstständig die jeweils korrekte Variante an.

Skript als Plugin

Es gibt mehrere Möglichkeiten, um ein eigenes Skript in Vim zu aktivieren: Man schreibt kürzere Codestücke einfach in die ».vimrc« oder legt eine Datei mit der Endung » myscript.vim« ins Plugin-Verzeichnis von Vim. Vim lädt beim Start Skripte, die im Plugin-Pfad liegen, automatisch - genauso als wäre das Skript in die ».vimrc« eingetragen. Der globale Pfad für Vim-Plugins zeigt oft auf »/usr/ share/vim/vim Version/plugin« (oder auf »/usr/local/share«). Diese Plugins sind anschließend jedem User des Systems zugänglich.

Eigene Plugins kommen im Homeverzeichnis in »~/.vim/plugin«. Die Pfade kann man beim Kompilieren, über Umgebungsvariablen oder in der globalen Vim-Konfigurationsdatei ändern. Dank der Konfigurationsoption »FileType« lässt sich ein neues Plugin abhängig vom Dateityp laden: Die Beispiel-Vimrc nutzt die Möglichkeit für gzippte Dateien oder für C-Sourcen. Aber genauso ist je nach Endung »datei.gb« oder »datei.fr« einfach ein englisches oder französisches Wörterbuch zu laden - oder im Falle einer Unicode-Datei ein Chinesisch-sprachiges Plugin [2].


Abbildung 1: Das Vim-Menü für Übersetzungen in der schlichten Konsolen-Version.

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Alternativ-Baukästen GUI-Programmierung mit Fltk, Wx-Widgets und EFL
Geistertanz Die Skriptsprache Boo
Vom Thron gestürzt Die besten Lesereinsendungen des Programmierwettbewerbs
Babylon zu fünft Populäre Programmiersprachen treten gegeneinander an
Schicke Klassiker Common Lisp und die Smalltalk-Implementierung Squeak
Mit Schutzmantel Gekapselt und überschaubar: Minix 3 strebt nach Sicherheit
Whitepaper
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Kommentare (0)