Fakultät für Informatik der Technischen Universität München,
Lehrstuhl für Theoretische Informatik und Grundlagen der KI


Proseminar im SS 2002

Behind the Screen - Konzepte und Algorithmen eines Texteditors





Vorbesprechung: war am Freitag, 01.02.2002, 14.00 Uhr, Raum 1229 (Stammgelände).


Seminar-Termin: freitags, 10.00-12.00 Uhr, ab 19. April 2002, Raum 2710 (Stammgelände).

Ansprechpartner: Stefan Römer




Übersicht

Zu den wohl wichtigsten Werkzeugen bei der täglichen Arbeit am Computer zählt zweifellos ein Texteditor. Mit seiner Hilfe erstellen, betrachten und ändern wir Texte für die verschiedensten Zwecke, beispielsweise, wenn wir E-mails und Briefe verfassen, oder für das Anlegen und die Bearbeitung beliebiger Textdokumente, Programmtexte, Konfigurationsdateien oder Skripte.

Angefangen von einfachen Editoren, die - meist zeilenorientiert - lediglich das Einfügen und Löschen von Zeichen unterstützen, daneben vielleicht elementares Suchen und Ersetzen von Textstücken gestatten, gibt es ein weites Feld von Texteditoren, bis hin zu den "Arbeitspferden", die eine breite Auswahl von Funktionen anbieten, um häufig wiederkehrende oder komplexe Manipulationen vorzunehmen.

Daneben gibt es eine Reihe weiterer Textwerkzeuge, die für ganz spezielle Aufgaben entwickelt wurden, etwa das Bearbeiten von Tabellen oder die WYSIWYG-Erstellung von Textdokumenten durch Textprozessoren. Mittlerweile ist es so, daß fast jede Anwendung einen eigenen eingebauten Editor mitliefert, der oft dazu von den Befehlen oder der Funktionalität her inkompatibel zu seinen Mitstreitern ist.

In diesem Proseminar wollen wir Arbeitsweise, grundlegende Konzepte und deren Realisierung anhand eines konkreten Editors untersuchen. Dazu dient uns der Texteditor VIM (kurz für Vi IMproved), der am meisten verbreitete und von der Funktionaliät her mächtigste mehrerer sogenannter "Clones" des vi, einem der Standard-Editoren jedes UNIX-Systems.

Gegenüber vi hat VIM in den letzten Jahren zahlreiche Korrekturen und Erweiterungen erfahren, dazu zählen neben vielen anderen: Verwaltung und Anzeigen mehrerer Texte gleichzeitig, unbegrenztes Rückgängigmachen vorgenommener Änderungen, frei konfigurierbares (farbiges) Hervorheben von Schlüsselwörtern, eine einfache Skriptsprache sowie zuletzt das Ausblenden von Textpassagen nach bestimmten Mustern (Folding).

Neben der direkten Anbindung an verschiedene Skriptsprachen (Perl, Tcl, Python) erfolgte für VIM eine Einbettung in verschiedene graphische Oberflächen, sowie eine Portierung auf diverse Betriebssystem-Plattformen, sodaß man heute an nahezu jedem Rechner mit diesem Editor arbeiten kann.

Ein Vorteil von VIM - im täglichen Umgang wie auch für dieses Proseminar - ist seine hervorragende, in den Editor integrierte Online-Dokumentation (das Kommando ":help"). Ebenfalls ist der Programmcode selbst gut kommentiert, da, neben dem Hauptautor, eine Vielzahl freiwilliger Implementierer an diesem Projekt mitarbeiten und laufend Verbesserungen vornehmen. Für das Verständnis des Quelltextes werden lediglich rudimentäre Kenntnisse der Programmiersprache C benötigt, die im Grundstudium vermittelten Kenntnisse über JAVA sollten weitgehend ausreichen.


Themen


  Datum Thema Vortragende/r
  1 19.04.2002 Überblick; Modus-Konzept und Hauptschleife Lin Yan
  2 03.05.2002 Textspeicherung: Struktur, Buffer-Konzept und Textfenster Hassan Soubeity
  3 10.05.2002 Textdarstellung: Refresh, Scrolling, Wrapping; GUI-Extras Christian Fischer
  4 17.05.2002 Durch den Text manövrieren: Motion-Kommandos und der Cursor Michael Radic
  5 07.06.2002 Suchen, Finden und Ersetzen II: Pattern Matching Radoslav Denchev
  6 28.06.2002 Tastenauswertung: Mappings, Macros, Completion und Repetition Moise Mbagda-Nana
  7 05.07.2002 Wenn die Übersicht verlorengeht: Folding (Ausarbeitung, .doc-Datei) Maximilian Wöhrl
  8 12.07.2002 Werkzeuge für die Programmentwicklung: Quickfix und Tags
(Ausarbeitung, .ps-Datei)
Benedikt Elser


Hinweise



This site is VIM powered Stefan Römer (Last modification: 2002/01/14-15:24)