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


Proseminar im SS 2001

Behind the Screen - Konzepte und Algorithmen eines Texteditors





Vorbesprechung: war am Montag, 29.01.2001, 14.00 Uhr, Raum 1229 (Stammgelände)

Seminar-Termin: Freitags, 10.00-12.00 Uhr, am 27. April im Raum 2100, die folgenden Termine dann im Raum 0220 (beide im 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 Skripten.

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. Für einige Vorträge (z.B. Thema 12, folding) ist eine Installation der aktuellen Entwickler-Version dieses Editors notwendig.

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.

Daneben fand eine Einbettung in verschiedene graphische Oberflächen statt, 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 27.04.2001 Überblick; Modus-Konzept und Hauptschleife Abdelkarim Harbaoui
  2 04.05.2001 Tastenauswertung: Mappings, Macros, Completion und Repetition Minh Luan Tran
  3     Textspeicherung: Struktur, Buffer-Konzept und Textfenster    
  4     Textdarstellung: Refresh, Scrolling, Wrapping; GUI-Extras    
  5     Durch den Text manövrieren: Motion-Kommandos und der Cursor    
  6     Textänderung: Kleinere und große Modifikationen    
  7 08.06.2001 Suchen, Finden und Ersetzen I: Reguläre Ausdrücke, Substitution Ronny Spiegel
  8 15.06.2001 Suchen, Finden und Ersetzen II: Pattern Matching Sabine Buckl
  9     Wenn mal was daneben ging: Undo/Redo, Swapfiles und Recovery    
10 29.06.2001 Textformatierung und automatisches Einrücken Christian Schömmer
11 06.07.2001 Schaltzentrale im Hintergrund: Autocommands Andreas Wundsam
12 13.07.2001 Alles so schön bunt hier: Syntax-Highlighting Friedl Ulrich
13 20.07.2001 Wenn die Übersicht verlorengeht: Folding Philipp Hemmer
14 27.07.2001 Werkzeuge für die Programmentwicklung: Quickfix und Tags Torsten Scheler


Hinweise



This site is VIM powered Stefan Römer (Last modification: 2001/04/18-16:24)