Am Anfang eines C++-Programms steht eigentlich immer ein lesbarer Text. Wenn dieser nicht gerade von einem Werkzeug automatisch generiert wurde, hat ihn höchstwahrscheinlich ein menschlicher Programmierer eingetippt. Und zu dieser Eingabe benötigt er -- ebenso wie Sie und ich -- einen Editor. Ich will Ihnen in diesem Kapitel drei Editoren vorstellen, mit denen Sie kleine und größere Programme schreiben können. Im übernächsten Kapitel stelle ich Ihnen dann integrierte Entwicklungsumgebungen vor, die meist auch über einen eigenen Editor verfügen, ansonsten aber sehr viel mehr können, als nur mit Texteingaben umzugehen.
Bereits in Kapitel 2 habe ich Sie (ab Seite )
auf einen Editor hingewiesen, nämlich NEdit. Hier werden Sie einige weitere
Editoren kennen lernen:
Sie finden die Editoren in ihrer aktuellsten Form unter den angegebenen Web-Adressen. Außerdem können Sie sie auch von der beiliegenden CD-ROM installieren.
Unter Unix ist vi ein urzeitliches Geschöpf. Er war dort einer der ersten Editoren, die nicht auf eine Zeile fixiert waren (wie etwa ed), sondern mit dem man den ganzen Bildschirm nutzen und beliebig hin und her fahren konnte. Im Zeitalter der bunten Fensteroberflächen haben sich jedoch viele von ihm abgewandt; junge Leute befassen sich erst gar nicht mehr damit. Dabei ist er durchaus ein mächtiges Werkzeug, mit dem Sie -- sofern Sie etwas geübt sind -- schnell und kompakt spezifische oder systematische Änderungen an einer Datei vornehmen können.
Heute kann man nicht mehr von einem vi-Editor sprechen. Gerade unter Linux gibt es eine ganze Reihe von vi-Klonen mit mehr oder weniger ähnlichen Features. Gegenüber der Urversion sind sie alle deutlich verbessert, halten aber an den grundlegenden Konzepten und Kommandos fest. In jeder Linux-Distribution (ebenso wie in jeder kommerziellen Unix-Version auf anderen Plattformen) ist mindestens ein vi-Editor enthalten. Mit anderen Worten: Selbst auf Systemen, auf denen Sie keinen anderen Ihnen bekannten Editor vorfinden, gibt es einen vi. Ich bin daher der Meinung, dass jeder ernsthafte Unix-Benutzer und erst recht jeder Unix-Programmierer mit dem vi-Editor umgehen können sollte.
In den folgenden Abschnitten will und kann ich Ihnen nur die wichtigsten Kommandos vorstellen. Der vi ist ein recht leistungsfähiger Editor, der noch über eine ganze Reihe weiterer Möglichkeiten verfügt. Diese finden Sie etwa in [LAMB 1992]. Ein Tutorial zum vi gibt es auch unter ftp://ftp.mines.colorado.edu/pub/tutorials.
Die wohl verbreitetste Variante ist VIM, der vi improved. Dieser hat eine eigene Web-Site namens www.vim.org. Den vi-Klon elvis können Sie von ftp://ftp.cs.pdx.edu/pub/elvis beziehen. Auf der VI lover's home page (www.cs.vu.nl/~tmgil/vi.html) gibt es eine Liste, die diese beiden und fast aller weiteren Klone enthält. Einen Vergleich zwischen verschiedenen Implementierungen gibt es bei www.math.fu-berlin.de/~guckes/vi/features.html.
Mit vi arbeiten Sie im Shell-Fenster (beziehungsweise im Shell-Bildschirm, wenn Sie kein X-Window laufen haben). Aktionen mit der Maus sind dabei generell nicht möglich; alle Benutzerinteraktionen laufen über die Tastatur.
Von der Shell-Eingabeaufforderung aus rufen Sie den Befehl vi, gefolgt von einem Dateinamen auf, zum Beispiel:
% vi prog.cc
Nach dem Laden erhalten Sie in der untersten Zeile die Informationen, welche Datei
Sie gerade geöffnet haben, wie viele Zeilen und wie viele Zeichen sie hat und
ob sie schreibbar oder readonly ist (Abbildung ). Diese Angaben
verschwinden aber nach einiger Zeit. Dauerhaft können Sie hingegen bei vielen
vi-Versionen in der rechten unteren Ecke die Nummer der Zeile und Spalte lesen,
in der sich der Cursor gerade befindet.
Die häufigste Frage aller Anfänger mit vi lautet: Wie komme ich hier wieder raus?. Daher gleich die Antwort: Zum Beenden von vi haben Sie zwei Möglichkeiten:
Der vi-Editor kennt drei verschiedene Modi:
Während der Letzte-Zeile-Modus sofort dadurch ersichtlich ist, dass eben die letzte Zeile aktiviert ist, erkennen Sie durch Betrachten des Bildschirms im Allgemeinen nicht, ob Sie sich gerade im Kommando- oder im Eingabemodus befinden. Einzig die Art, wie der Editor auf Ihre Tastendrücke reagiert, weist Sie darauf hin. Ein fröhliches Drauflostippen wie bei den meisten anderen Editoren gibt es im vi demnach nicht. Wenn das Programm einzelne Buchstaben Ihres Textes nicht gerade als Kommandos interpretiert, werden Sie nur Warntöne aus ihrem Lautsprecher hören. Aber lassen Sie sich davon nicht entmutigen -- das geht allen vi-Anfängern so. Nach kurzer Zeit werden Sie das Wechseln zwischen den Modi verstanden haben und ganz selbstverständlich damit umgehen.
Bedenken Sie, dass ein Bewegen des Cursors im Allgemeinen nur im Kommandomodus möglich. Einige vi-Versionen erlauben es zwar auch während des Einfügens; dabei dürfen Sie aber nur die Cursortasten verwenden.
Im Kommandomodus können Sie den Cursor durch folgende Tasten bewegen:
Mit den folgenden Tastendrücken wechseln Sie aus dem Kommando- in den Eingabemodus. Um wieder zurückzukehren, müssen Sie die Esc-Taste betätigen.
Eine andere Möglichkeit der Korrektur besteht im Rückgängigmachen von Änderungen. Dazu gibt es verschiedene Tastenkombinationen:
Im Kommandomodus stehen Ihnen verschiedene Befehle zum Löschen von Text zur Verfügung:
Wenn Sie ganz spezifisch Zeilen über deren Nummern löschen wollen, erledigen Sie dies am besten im Letzte-Zeile-Modus. Dorthin wechseln Sie aus dem Kommandomodus durch die Taste :. Dort geben Sie an:
:<startzeile>, <endzeile> d
$
, was das Ende der Datei repräsentiert. Wenn Sie also beispielsweise
von Zeile 57 bis zum Dateiende alle Zeilen löschen wollen, müssen Sie eingeben:
:57,$ d
Um nach einem Begriff zu suchen, drücken Sie im Kommandomodus die Taste / und geben unmittelbar danach den gesuchten Ausdruck ein. Die Suche starten Sie dann mit der Eingabetaste. Existiert der von Ihnen gesuchte Begriff in der Datei nicht, können Sie die Fehlermeldung Pattern not found! lesen. Ansonsten springt der Cursor zum nächsten Vorkommen der eingegebenen Buchstabenfolge.
Wenn Sie danach ein weiteres Vorkommen suchen möchten, müssen Sie nur auf die Taste
n drücken. Wenn Sie dagegen die Suche in die andere Richtung fortsetzen
wollen, ist es +n.
Die meisten vi-Klone fahren am anderen Ende der Datei mit der Suche fort, wenn bis dahin nichts Passendes gefunden werden konnte.
Um Textstellen nicht nur aufzuspüren, sondern auch gleichzeitig zu ersetzen, müssen Sie den Letzte-Zeile-Modus verwenden:
:s/text1/text2
: ersetzt den Text text1 durch text2;
allerdings wird dabei nur das erste Auftreten in der aktuellen Zeile berücksichtigt.
:s/text1/text2/g
: ersetzt alle Vorkommen von Text
text1 in der aktuellen Zeile durch text2.
:s/text1/text2/gc
: ersetzt alle Vorkommen von Text text1
in der aktuellen Zeile durch text2, verlangt aber für jede Ersetzung
eine Bestätigung (drücken Sie dazu einfach y für yes beziehungsweise
n für no).
:<startezeile>,<endzeile> s/text1/text2/g
:
ersetzt alle Vorkommen von Text text1 im Bereich zwischen den angegebenen
Zeilen durch text2.
g
für
global
oder c
für confirmhinzunehmen oder weglassen.
Um beispielsweise alle Vorkommen der Buchstaben Win durch Linux zu ersetzen, geben Sie ein:
:1,$ s/Win/Linux/g
Der vi-Editor lädt den Text bereits zu Anfang in einen Speicherpuffer. Gerade bei umfangreichen Dateien kann dies etwas Zeit in Anspruch nehmen. Dieses Konzept hat aber auch zur Folge, dass Änderungen zunächst nur in diesem Puffer vorgenommen werden. Erst durch einen ausdrücklichen Speicherbefehl werden sie auch in der Datei auf der Festplatte wirksam. Ein automatisches Speichern gibt es beim vi nicht.
Wie oben erwähnt, können Sie mit der Tastenkombination +z,
+z
den Text speichern und anschließend gleich das Programm verlassen. Die anderen
Speicherbefehle können Sie im Letzte-Zeile-Modus eingeben:
:w
speichert die gerade bearbeitete Datei.
:w <dateiname>
speichert die Datei unter einem anderen Namen.
:<startzeile>,<endzeile> w <dateiname>
speichert
den Textbereich zwischen den angegebenen Zeilen in die genannte Datei.
:57,$ w text57.data
w
noch ein Ausrufezeichen !
setzen.
Zum Laden von Text gibt es zwei Varianten:
:r <dateiname>
fügt die angegebene Datei an der Cursorposition
in den aktuellen Text ein.
:e <dateiname>
beendet das Editieren der aktuellen Datei und fährt
mit der Bearbeitung der angegebenen fort.
Wenn Sie Text mit dem vi-Editor kopieren oder verschieben wollen, müssen Sie ihn zunächst im Puffer ablegen. Anschließend können Sie ihn dann an der Cursorposition einfügen.
Eine einfache Möglichkeit zum Ablegen von Text im Puffer ist das Löschen. Denn bei jedem Löschvorgang werden die gelöschten Zeichen im Puffer zwischengespeichert. Wenn Sie Ihren Textabschnitt also nur verschieben wollen, löschen Sie ihn zunächst und fügen ihn dann an der gewünschten Position wieder ein.
Sie
müssen aber unbedingt darauf achten, zwischen dem Löschen und dem
Einfügen keinen anderen Editierbefehl zu verwenden. Der Puffer hat standardmäßig
nur einen Inhalt und dieser wird bei jedem Vorgang überschrieben. Mit etwas
Disziplin stellt das aber kein großes Problem dar.
Zum Kopieren in den Puffer können Sie die folgenden Kommandos verwenden:
Dafür gibt es im Wesentlichen zwei Befehle:
Der vi-Editor verfügt noch über viele weitere Befehle, von denen ich Ihnen hier nur noch vier recht praktische vorstellen will:
:set nu
schaltet die Anzeige der jeweiligen Zeilennummer vor jeder Zeile
ein.
Haben Sie keine Scheu, etwas mit dem vi-Editor zu spielen. Stellen Sie sich eine Kopie einer mittelgroßen Textdatei her, damit kein Schaden entstehen kann, und versuchen Sie, die Bearbeitungsvorgänge durchzuführen, die ich Ihnen in diesem Kapitel gezeigt habe. Gerade wenn Sie bislang vorwiegend mit Fensteroberflächen gearbeitet haben, kommt Ihnen die spartanische Umgebung des vi-Editor anfangs sicherlich sehr ungewohnt vor. Nach einiger Zeit, glaube ich, werden Sie die Möglichkeiten dieses Werkzeugs gut einschätzen und zu passender Gelegenheit auch verwenden können -- wenn auch nicht gerade zum Programmieren.
Beim Emacs kann man eigentlich schon nicht mehr nur von einem Editor sprechen. Denn durch seine ebenso offene wie leistungsfähige Programmierschnittstelle hat der Emacs im Laufe der Zeit so viele Erweiterungen erhalten, dass Sie außer ihm fast keine andere Anwendung mehr brauchen.
Wenn wir von Emacs sprechen, müssen wir zwischen zwei ähnlichen, aber mittlerweile
unabhängigen Programmen unterscheiden:
Da ist zum einen
GNU Emacs (siehe org.gnu.de/software/emacs). Es war eines der
ersten Programme des GNU-Projekts überhaupt und wurde von dessem geistigen Vater,
Richard Stallman, selbst entwickelt. (Er ist ja auch heute noch Präsident der
Free Software Foundation, FSF, und einer der glühendsten Verfechter des Prinzips
der freien Software -- siehe auch Seite .) GNU Emacs läuft
sowohl im Shell-Fenster unter X-Window, wo er bereits eine Reihe von Mausoperationen
unterstützt und Menüs bietet, als auch auf einem ganz einfachen Terminal. Dort
bringt er dem Anwender besonderen Nutzen, erlaubt er doch beispielsweise die gleichzeitige
Anzeige mehrerer Dateien.
Nach einiger Zeit bildete sich eine Gruppe von Programmierern, die auf der Basis des GNU Emacs eine echte X11-Anwendung entwickeln wollten. Diese nannten sie dann XEmacs (siehe www.xemacs.org). Allerdings gibt es zwischen den XEmacs-Entwicklern und Richard Stallman eine Reihe von Meinungsverschiedenheiten, die dazu führten, dass GNU Emacs und XEmacs zwei getrennte Programme auf unterschiedlicher Code-Basis sind. Die Grundfunktionalitäten einschließlich der Tastaturkürzel sind jedoch dieselben.
Wenn Sie noch nie mit einem Emacs-Editor gearbeitet haben und auch ansonsten eher grafische Benutzeroberflächen gewohnt sind, kann ich Ihnen nur zum XEmacs raten. Er wird für Sie leichter zu bedienen und intuitiver zu durchschauen sein als der GNU Emacs. Aus diesem Grunde werde ich mich auch in diesem Buch auf den XEmacs beschränken. Aber wie gesagt: Das meiste gilt auch für den GNU Emacs in gleicher Weise. Die Emacs-Editoren sind so mächtige Werkzeuge, dass ich Ihnen in diesem Rahmen nur ein paar sehr elementare Bedienungsschritte vorstellen kann. Wenn Sie mehr erfahren wollen, empfehle ich Ihnen das Standardwerk [CAMERON . 1996].
Höchstwahrscheinlich ist der XEmacs in Ihrer Linux-Distribution enthalten. Obwohl es an ihm auch immer wieder Weiterentwicklungen gibt, werden Sie vermutlich kein Update brauchen -- er verfügt über so viele Funktionen, dass Sie die meisten davon ohnehin kaum nutzen werden. Wenn Sie ihn aus den Quellen selbst kompilieren und installieren wollen, folgenden Sie einfach den Anweisungen in der beigelegten Datei INSTALL.
Sie rufen den XEmacs-Editor einfach mit seinem Namen auf:
% xemacs
Anschließend haben Sie entweder den Skizzenpuffer scratch vor sich,
der unter anderem so etwas wie eine editierbare Zwischenablage ist, oder gleich
die von Ihnen in der Kommandozeile angegebene Datei. Ihr Fenster könnte dann
etwa wie Abbildung aussehen.
Unterhalb der Menüleiste ist eine Werkzeugleiste, wie Sie sie sicherlich von vielen (MS-) Windows-Anwendungen kennen. Am unteren Rand des Fensters befindet sich zuerst eine Statuszeile, wo Sie den Dateinamen, den Typ der Datei und noch einige weitere Informationen ablesen können. So weisen die Striche auf der linken Seite beispielsweise darauf hin, ob die Datei modifiziert wurde oder nicht: -bedeutet unverändert, **heißt modifiziert und %%steht bei Dateien, für die Sie lediglich Lese-Rechte haben.
Darunter folgt noch eine letzte Zeile, die so genannte echo area. Dort finden Sie Meldungen des Editors, werden zu Eingaben aufgefordert und so weiter.
Die Emacs-Editoren verfügen aus der Sicht eines Anfängers über endlos viele Befehle. Wenn Sie die Dokumentation etwas studieren, werden Sie schnell das Gefühl bekommen, zum Erlernen Jahre zu brauchen. Das muss aber gar nicht sein. Denn die elementaren Handgriffe sind ganz einfach erledigt; nur für spezielle Aufgaben benötigen Sie etwas fortgeschrittene Kenntnisse. (Außerdem bietet Ihnen gerade der XEmacs für viele Befehle mehrere Alternativen, von denen eine meist über das Menü erreichbar ist.)
Mit der Bewegung des Cursors ist es ähnlich. Um jeweils ein Zeichen beziehungsweise um eine Zeile bewegen Sie sich mit den Pfeiltasten. Natürlich können Sie auch mit der Maus an eine Stelle klicken, um den Cursor dort zu platzieren.
Auf die Dauer wird Ihnen die Bewegung um stets einen Schritt zu wenig sein. Dann können
Sie Strg+ und Strg+
drücken, womit Sie um ein Wort nach links beziehungsweise rechts springen können.
Strg+Pos1 bringt Sie an den Anfang, Strg+Ende
an das Ende der Datei.
Eine der Besonderheiten des Emacs zeigt sich darin, dass er bei jedem Dateityp unterschiedliches
Verhalten an den Tag legt und unterschiedliche Befehle kennt. Diese typabhängigen
Einstellungen bezeichnet man als Modus; wir werden auf Seite
noch genauer darüber sprechen. Diese für Windows-Anwender sehr ungewohnte Verhaltensweise
ist eine seiner großen Stärken, denn damit können die wichtigsten Bearbeitungsfälle
eines jeden Typs optimal unterstützt werden.
Konsequenterweise hängen auch die Funktion einiger Tastenkombinationen vom Typ
der Datei ab, die Sie gerade editieren; das heißt, sie haben etwa bei einem
C++-Programm eine andere Bedeutung als bei einem normalen Text. Dazu gehören
etwa Alt+a und Alt+e. In einem Text springen
Sie damit an den Anfang oder an das Ende eines Satzes; im Programm an Anfang
oder Ende der Anweisung. Mit Alt+ und Alt+
können Sie sogar bei größeren, von
{
und }
eingerahmten Blöcken
den Cursor an deren Anfang und Ende bringen.
Ähnlich ist es mit der Tab-Taste. In normalem Text fügt sie einen Sprung zur
nächsten Tabulatorposition ein, die alle acht Zeichen angelegt sind. In C++-Programmen
sorgt diese Taste dafür, dass die aktuelle Zeile korrekt eingerückt wird; das
bedeutet, dass alle Anweisungen im selben Block auch in derselben Spalte beginnen.
Öffnen Sie mit {
einen neuen Block, so werden die Anweisungen darin
um zwei Zeichen gegebenüber dem umschließenden Block nach rechts eingerückt.
Somit können Sie stets die Zugehörigkeit einer Anweisung zu ihrem Block auf
Anhieb erkennen. Ein einmaliges Drücken auf die Tab-Taste genügt dabei.
Der Cursor kann währenddessen in einer beliebigen Spalte dieser Zeile (innerhalb
des Blocks) stehen. Wenn Sie die Taste anschließend nochmals betätigen, ändert
sich nichts mehr.
Im Gegensatz zum vi-Editor können Sie im XEmacs jederzeit Text eingeben (wenn Sie sich nicht gerade im Kommandomodus mit dem Cursor in der untersten Zeile befinden). Darüber müssen wir also nicht weiter sprechen. Kommen wir daher zum Entfernen von Text. Neben der Rücktaste und der Entf-Taste, welche die Zeichen vor beziehungsweise hinter dem Cursor löschen, können Sie auch Alt+Rücktaste und Alt+Entf verwenden, die das Wort vor beziehungsweise hinter dem Cursor löschen.
Um eine ganze Zeile zu entfernen, verwenden Sie die Tastenkombination Strg+k. Beachten Sie aber: Bei einmaligem Drücken löschen Sie den Inhalt der Zeile ab der Cursorposition bis zum Ende. Wenn Sie die Zeile ganz entfernen wollen, müssen Sie ein zweites Mal Strg+k betätigen.
XEmacs speichert die Zeichen zwischen, die Sie löschen. Sie können diese an derselben oder einer anderen Stelle wieder in den Text einfügen, indem Sie das Tastenkürzel Strg+y verwenden. Bei ganzen Zeilen ist das nur der Inhalt der Zeile, den Sie mit dem Ersten Strg+k entfernt haben; denn einzelne Zeichen oder Zeilenumbrüche werden nicht zwischengespeichert.
Für jede Datei verwaltet XEmacs einen Puffer (auf Englisch buffer). Abhängig von dem Typ der darin bearbeiteten Datei werden die Puffer zu Gruppen zusammengefasst. Zwischen den verschiedenen Puffern können Sie mit dem Menü BUFFERS umschalten. Der Name des aktuellen Puffers erscheint sowohl in der Statuszeile als auch in der Titelleiste des X-Fensters.
Eine Liste aller Puffer erhalten Sie über BUFFERS | LIST ALL BUFFERS oder der Tastenkombination Strg+x, Strg+b. Auch die dann erscheinende Pufferliste ist wieder ein eigener Puffer; aus der Liste wählen Sie den gewünschten durch einen Klick mit der mittleren Maustaste aus. Wenn Sie ohne Maus arbeiten wollen, können Sie auch einfach Strg+x, b drücken; dann fragt Emacs Sie in der untersten Zeile nach dem Puffer, in den Sie wechseln möchten.
Sie schließen einen Puffer durch den Menübefehl FILE | DELETE BUFFER <buffername> oder mit der Tastenfolge Strg+x, Strg+k. Dann werden Sie noch gebeten, das Schließen mit der Eingabetaste zu bestätigen.
Zuweilen ändert sich die Datei, die Sie gerade im Puffer haben, unabhängig von XEmacs, beispielsweise weil ein anderes Programm sie neu erzeugt. Der Editor prüft diese Situation und weist Sie gegebenenfalls darauf hin. Um den Inhalt aus der zugehörigen Datei neu zu laden, verwenden Sie den Befehl FILE | REVERT BUFFER <buffername>. Zum Bestätigen dieser Aktion müssen Sie ausdrücklich yes eingeben. (Ansonsten weist Sie Emacs dezent darauf hin: Please answer yes or no.)
Da Emacs ursprünglich für einfache Terminals entwickelt wurde, ist die Sprechweise in Bezug auf die Arbeit mit mehreren Dateien und Fenstern etwas unüblich. Bringen wir also ein wenig Licht in das Dunkel:
Im Emacs gibt es nicht die Möglichkeit, einen leeren, unbenannten Puffer zu erzeugen. Wenn Sie eine neue Datei anlegen wollen, gehen Sie dabei genauso vor wie bei existierenden Dateien -- nur dass Sie eben den Namen eintippen und nicht auswählen! Das bedeutet, Sie unternehmen den Versuch, eine (nicht vorhandene) Datei des gewünschten Namens zu öffnen; findet Emacs diese nicht, so erzeugt er einen leeren Puffer mit diesem Namen. Wenn Sie den Puffer das erste Mal speichern, wird die Datei angelegt.
Für das Öffnen einer Datei haben Sie zwei grundsätzlich verschiedene Alternativen: Entweder Sie verwenden die Emacs- oder die XEmacs-Methode.
![]()
|
Abspeichern können Sie Änderungen mit dem Werkzeugleisten-Schalter oder dem Menübefehl FILE | SAVE <dateiname>. Am schnellsten ist allerdings wieder einmal die Tastatur; verwenden Sie hier die Kombination Strg+x, Strg+s. Auch wenn Sie sonst keine Tastaturkürzel lernen wollen, empfehle ich Ihnen, sich zumindest dieses einzuprägen. Das regelmäßige Speichern ist zwar unter Linux nicht so wichtig wie unter Windows, und XEmacs ist eine Anwendung, die Sie kaum zum Absturz bringen können -- trotzdem sollten Sie Ihre Arbeit hin und wieder auf die Platte sichern.
Wenn Sie beim zweiten Anschlag die Steuerungstaste weglassen, also Strg+x, s drücken, werden alle Puffer gespeichert, die als modifziert gekennzeichnet sind. Dies entspricht dem Menübefehl FILE | SAVE SOME BUFFERS.
Schließlich können Sie natürlich auch beim Speichern der Datei einen neuen Namen geben (etwa um die bestehende nicht zu überschreiben). Dazu verwenden Sie, wie leicht zu erraten ist, den Menübefehl FILE | SAVE AS.
Übrigens legt XEmacs auch selbstständig nach einer gewissen Zahl von Änderungen eine automatische
Sicherung an. Diese wird wieder gelöscht, wenn Sie selbst die Datei speichern.
Diese Sicherungskopie hat denselben Namen und dasselbe Verzeichnis wie Ihre
Datei, wobei aber am Anfang und am Ende des Namens noch ein Doppelkreuz #
hinzukommt. Sollte Ihr Rechner abstürzen, während Sie mit XEmacs eine Datei
bearbeiten, können Sie nach dem Neustart mit der Sicherungskopie Ihre Arbeit
fortsetzen. Dazu laden Sie die Datei wie gewohnt und geben dann zunächst Alt+x
ein, um in den Kommandomodus zu gelangen, wo Sie den Befehl recover file
eintippen und mit der Eingabetaste bestätigen müssen.
Wie in jedem guten Editor, so können Sie auch im Emacs Änderungen an Ihrem Text wieder rückgängig machen, und zwar auch mehrere hintereinander. Dabei werden Buchstaben, die Sie eingeben, zu Gruppen von zwanzig zusammengefasst; ein Aufruf des Befehls für Rückgängig entfernt dann die ganze Gruppe.
Sie erreichen diesen Befehl über den Schaltknopf in der Werkzeugleiste, den Menüeintrag EDIT | UNDO oder mit den Tastenfolgen Strg+x, u oder Strg+_.
Wenn Sie in einer Kommandozeile oder einem Dialog hängen bleiben, hilft Ihnen meistens die Tastenkombination Strg+g wieder heraus. In hartnäckigen Fällen funktioniert auch manchmal das dreimalige Drücken von Esc.
Über das Menü HELP haben Sie Zugang zu einer ganzen Reihe von Informationsquellen, die Ihnen bei Ihrem Umgang mit XEmacs weiterhelfen können. Neben elementaren Hilfestellungen finden Sie dort auch Dokumentationen zu allen Tastatur- und Mausaktionen sowie zu den erweiterten Kommandos. Am besten gehen Sie die Menüeinträge, die Sie interessieren, einfach durch, um zu sehen, was sich dahinter verbirgt.
Der XEmacs bietet Ihnen außerdem einen komfortablen Zugriff auf die GNU-Info-Seiten.
Wie Sie wissen, handelt es sich dabei um eine unter Linux gebräuchliche
Form der Programmdokumentation. Von einer zentralen Seite aus können Sie sich
-- ähnlich wie mit einem WWW-Browser -- zu jedem Abschnitt durchklicken, der
Sie interessiert. Auch über den XEmacs selbst finden Sie hier die ausführlichsten
Informationen. Sie erreichen die Eingangsseite über den Button INFO
der Werkzeugleiste oder über den Menüpunkt HELP | MANUALS | INFO sowie
mit der Tastenkombination Strg+h, i. Die fett gedruckten
Begriffe stellen dabei die Links dar. Gleichzeitig können Sie aber auch von
Abschnitt zu Abschnitt springen mit der Navigationszeile am oberen Rand des
Textfensters (in Form von Next:...Prev: ...Up: ...
). Eine
Verzweigung erreichen Sie dabei durch einen Klick mit der mittleren Maustaste.
Es wird Sie kaum verwundern, wenn ich Ihnen sage, dass der XEmacs-Editor auch für so etwas Alltägliches wie das Suchen gleich mehrere Funktionen in unterschiedlicher Komplexität bereitstellt.
Die einfachste ist dabei die inkrementelle Suche. Diese erreichen Sie über EDIT
| SEARCH oder -- am einfachsten -- mit Strg+s. Wenn Sie diese
Funktion aktivieren, erscheint in der untersten Zeile des X-Fensters die Meldung
I-search:
. Nun können Sie den gesuchten Begriff eingeben. Bei jedem neuen
Buchstaben springt XEmacs an die erste Stelle im Text (von der aktuellen Cursorposition
aus gesehen), an der die bislang eingetippte Buchstabenfolge steht. Gibt es
keine solche Stelle, ertönt ein Warnton und der Text in der Echo-Zeile ändert
sich in Failed I-search
. In diesem Fall können Sie auch mit der Rücktaste
Buchstaben löschen und den Begriff hernach anders enden lassen.
Haben Sie auf diese Weise die gesuchte Textstelle gefunden, können Sie das Suchen mit jeder Cursorbewegung oder der Eingabetaste beenden. Falls Sie allerdings an einer Stelle gelandet sind, die zwar auch den Suchbegriff enthält, die Sie aber gar nicht haben wollten, können Sie durch Drücken von Strg+s die Suche fortsetzen.
Wenn Sie zwischendurch wieder editieren oder mit dem Cursor umherfahren und dann nochmals den letzten Begriff suchen wollen, drücken Sie einfach zweimal Strg+s hintereinander.
Eine auf diese Art gestartete Suche verläuft übrigens immer vorwärts, das heißt zum Ende des Textes hin. Wenn Sie in die andere Richtung suchen wollen, müssen Sie entweder Strg+r eingeben oder den Menübefehl EDIT | SEARCH BACKWARD wählen.
Solange Sie in Ihrem Suchbegriff nur Kleinbuchstaben verwenden, verläuft die Suche ohne Rücksicht auf die Groß-/Kleinschreibung. Wenn Sie auch Großbuchstaben eingeben, werden nur Stellen gefunden, die diese auch enthalten.
Eine leistungsfähigere Suchfunktion ist die nach regulären Ausdrücken. Unter einem solchen versteht man ein Muster, das eine Klasse von Zeichenketten beschreibt. Für viele Benutzer dürfte jedoch die einfache inkrementelle Suche ausreichen, so dass ich in diesem Rahmen nicht näher auf die Suche nach regulären Ausdrücken eingehen will. Wenn Sie mehr wissen wollen, werfen Sie einen Blick in die Online-Dokumentation zu XEmacs, die Sie über HELP | MANUALS | INFO erreichen (und in diesem Fenster dann nach EMACS suchen und darauf mit der mittleren Maustaste klicken), oder in [CAMERON . 1996] beziehungsweise [FRIEDL 1997].
Bei einer anderen Art der Suche soll sofort nach dem Auffinden
eines Begriffs dieser durch einen anderen ersetzt werden. Dazu wählen Sie EDIT
| REPLACE oder tippen Alt+% (auf deutschen Standardtastaturen
entspricht dies Alt++5). Daraufhin erscheint
in der Echo-Zeile die Eingabeaufforderung
Query replace:
. Hier geben
Sie nun den Text ein, nach dem Sie suchen wollen, und bestätigen dies mit der
Eingabetaste. Dann ändert sich die Eingabeaufforderung in Query replace <Ihr Text> with:
.
Dahinter geben Sie den neuen Text ein. Wenn Sie diese Eingabe wieder bestätigen,
geht die Suche los: Der Editor springt zum ersten Vorkommen des Ausdrucks und
markiert diesen. Wenn Sie nun y drücken, wird der gefundene Begriff
durch den neuen ersetzt; bei n wird der bisherige beibehalten. Jede
andere Taste bricht die Suche ab. Haben Sie sich entschieden, springt der Cursor
zum nächsten Vorkommen des Ausdrucks und so weiter, bis der Text zu Ende ist.
Bei einer erneuten Suche dieser Art können Sie übrigens auf die bisher verwendeten
Begriffe (sowohl die zum Suchen als auch die zum Ersetzen) zurückgreifen. Dazu
drücken Sie an der Eingabeaufforderung einfach die Pfeiltaste ,
bis Sie zum gewünschten Ausdruck kommen.
Wenn Sie es sich übrigens anders überlegt haben und die Eingabe abbrechen wollen, können Sie dies mit Strg+g tun.
Manchmal ist man sich aber auch sicher, dass man wirklich jedes Vorkommen eines Ausdrucks
in der Datei ersetzen will. Dann kann es mühsam werden, jede einzelne Aktion
mit y bestätigen zu müssen. In diesem Fall können Sie ein anderes Kommando
verwenden. Drücken Sie dazu zuerst Alt+x, um in den Kommandomodus
zu gelangen. Dort geben Sie dann replace-string
ein und bestätigen mit
der Eingabetaste. Jetzt folgt der Suchausdruck, eine erneute Bestätigung, dann
der Ersatzausdruck und wieder eine Bestätigung. Und schon ist jegliches Vorkommen
ausgetauscht.
Auch die Befehle zum Ersetzen gibt es in einer Version, die reguläre Ausdrücke versteht. Dafür muss ich Sie aber wieder auf andere Dokumentationen verweisen.
Eine Möglichkeit zum Verschieben von Text haben wir oben bereits gesehen: zuerst
löschen und dann mit Strg+y wieder einfügen (siehe Seite ).
Um einen Text auf andere Art zu kopieren, gibt es drei Möglichkeiten: mit der Tastatur, den Emacs-Weg mit der Maus und den XEmacs-Weg mit der Maus. Welchen Sie davon wählen, bleibt Ihnen und Ihren Vorlieben überlassen.
Zunächst müssen Sie den zu kopierenden Text markieren. Möglicherweise im Gegensatz zu Ihren sonstigen Gewohnheiten, können Sie im XEmacs nicht mit den Cursortasten bei gedrückter Umschalttaste markieren. (Auch dies ein Problem vieler Anfänger.) Um das Markieren zu beginnen, drücken Sie Strg+Leertaste. Nun können Sie - ohne eine weitere Taste festzuhalten - den Cursor umherbewegen und so den Bereich markieren, der zwischen der Start- und der aktuellen Position liegt.
Zum Kopieren können Sie dann Strg+Einfg verwenden. Einen
solchen Text wieder einzufügen, klappt mit +Einfg.
Wenn Sie den Bereich hinter Ihrer ersten Markierung hervorgehoben haben, aber
noch ein paar Zeichen davor auch einschließen wollen, drücken Sie
hintereinander Strg+x, Strg+x,
was den Cursor ans andere Ende der Markierung bringt.
Wenn Sie vom Markieren genug haben und eigentlich gar nichts mehr markieren wollen, können Sie den Vorgang auch mit Strg+g abbrechen.
Zunächst markieren Sie den gewünschten Bereich, indem Sie ihn bei gedrückter
linker Maustaste überstreichen. Wenn Sie dann die Maustaste wieder loslassen,
erscheint im Echo-Bereich der Hinweis: Mark set
. (Einzelne Wörter können
Sie mit einem Doppelklick darauf markieren, eine ganze Zeile mit einem Dreifachklick.)
Nun setzen Sie den Mauszeiger an die Stelle, wo Sie den Text hinhaben wollen,
und drücken einmal auf die mittlere Maustaste. Schon ist der Text eingefügt!
Die Markierung bleibt übrigens so lange im Speicher, bis Sie eine neue Markierung anbringen. In dieser Zeit können Sie den Inhalt beliebig oft und in allen Puffern, Fenstern und Rahmen des XEmacs einfügen -- sowie in vielen anderen X-Anwendungen.
Diese Art des Kopierens und Verschiebens ist für Windows-Anwender wohl die vertrauteste. Markieren Sie mit der linken Maustaste wie gerade beschrieben den Text. Wählen Sie anschließend EDIT | COPY aus dem Menü oder klicken Sie auf die Schaltfläche COPY der Werkzeugleiste. Nun haben Sie den Text in der X-Window-Zwischenablage hinterlegt. Mit EDIT | PASTE oder dem entsprechenden Button bringen Sie ihn dann an die gewünschte Stelle.
Der XEmacs-Editor ändert sein Verhalten und Teile seiner Funktionalität in Abhängigkeit vom Dateityp des aktuellen Puffers. Jeder Puffer hat einen so genannten major mode (Hauptmodus) und kann sich zusätzlich in verschiedenen minor modes (Submodi) befinden. Für alle gängigen Programmiersprachen und Unix-Textdateitypen sind Definitionen eines Hauptmodus schon in Ihrer XEmacs-Installation enthalten.
Wenn Sie den Modus herausfinden wollen, in dem sich Ihr aktueller Puffer gerade befindet, genügt ein Blick auf die Statuszeile. In der Klammer hinter dem Dateinamen steht der Name oder eine Abkürzung des Modus. Wollen Sie mehr Details darüber wissen, drücken Sie einfach Strg+h, m.
Die Modi der aktuellen Puffer zeigt Ihnen beispielsweise die Pufferliste an, die Sie mit BUFFERS | LIST ALL BUFFERS erhalten. Die Liste der Puffer, die Ihnen das Menü BUFFERS zeigt, ist ebenfalls nach deren Modi unterteilt. Standardmäßig besteht die Unterteilung nur in einer Trennlinie zwischen den Typen, so dass Puffer gleichen Typs in einem abgegrenzten Bereich des Menüs auftauchen. Sie können dieses Verhalten aber auf vielfältige Weise über das Menü OPTIONS | MENUBAR APPEARANCE ändern. Das reicht von rein alphabetischer Anordnung bis hin zu Untermenüs für jeden Puffer-Modus (dies beispielsweise über OPTIONS | MENUBAR APPEARANCE | SUBMENUS FOR BUFFER GROUPS).
Wie auf Seite schon angedeutet, wirkt sich der
Hauptmodus beispielsweise auf die Cursorbewegung aus. Bei vielen Modi gibt es
ein eigenes Menü für den jeweiligen Typ. Bei C++-Programmen heißt dies auch
C++ und enthält Möglichkeiten zum Auskommentieren ganzer Regionen,
zum Bewegen des Cursors entlang von Blöcken oder Präprozessor-Bedingungen und
so weiter.
Eine wichtige Option ist das Einfärben des Textes gemäß der Syntax der Programmiersprache. In XEmacs aktivieren Sie dies mit dem Menübefehl OPTIONS | SYNTAX HIGHLIGHTING | IN THIS BUFFER. Sie können in diesem Untermenü auch noch den Grad der Färbung beziehungsweise Differenzierung einstellen, wenn es Ihnen zu bunt wird. (Damit diese Einstellung auch für Ihre nächste Sitzung aktiv bleibt, speichern Sie sie am besten gleich, und zwar mit Hilfe von OPTIONS | SAVE OPTIONS.) Nun sind Kommentare rot, Funktionsheader blau, Zeichenketten grün etc. Auf diese Weise können Sie die einzelnen Programmelemente deutlich besser voneinander unterscheiden und finden sich vermutlich besser im Quelltext zurecht.
Eine andere, für Programmierer auch sehr praktische Option ist die Anzeige von Klammerbereichen. Ein häufiger Fehler beim Schreiben von Programmen entsteht durch das Vergessen der schließenden Klammern, etwa die runden bei Funktionsaufrufen oder Konstruktoren, ganz besonders aber die geschweiften bei Anweisungsblöcken und Funktionskörpern. Hier bietet Ihnen der XEmacs unter OPTIONS | PAREN HIGHLIGHTING (denn Klammern heißen auf Englisch parentheses) drei Möglichkeiten:
Der Emacs/XEmacs ist insbesondere deshalb so vielseitig und leistungsfähig, weil er über eine offene Programmierschnittstelle verfügt. Jeder kann in der Programmiersprache Lisp seine eigene Emacs-Erweiterungen schreiben, wenn er dazu Lust hat. Diese Offenheit drückt sich auch in der Konfigurationsdatei aus. Der XEmacs hat davon gleich zwei: Die Einstellungen, die ausschließlich die X-Oberfläche betreffen, finden Sie in der Datei .xemacs-options in Ihrem Home-Verzeichnis und die Einstellungen, die sich auf Emacs-Eigenschaften beziehen, stehen in .emacs, ebenfalls im Home-Verzeichnis. In Letzterer können Sie auch spezielle Zuordnungen für Dateitypen anbringen, die automatisch erkannt werden. Wenn Sie dort Eingriffe vornehmen wollen, empfehle ich Ihnen, sich zunächst intensiver mit Emacs und seinen Befehlen zu beschäftigen, zum Beispiel anhand von [CAMERON . 1996] oder zumindest mit Hilfe der kompletten Online-Dokumentation.
Der XEmacs bietet Ihnen eine Fülle von Möglichkeiten. In diesem Abschnitt konnte ich Ihnen nur die elementarsten davon vorstellen. Viele nützliche wie nette Features mussten unerwähnt bleiben. Wenn Sie Gefallen an diesem Editor gefunden haben, werden Sie sicher noch öfter damit arbeiten und so mit der Zeit immer weitere Fähigkeiten entdecken: Vom Lesen von Mails über die Berechnung der Mondphasen bis hin zu Spielen bietet er Ihnen sicher mehr, als Sie erwarten.
vi und XEmacs sind unter Unix seit vielen Jahren der De-facto-Standard.
Auch wenn Sie sie nicht selbst einsetzen wollen, sollten
Sie sich als Linux-Programmierer mit ihnen vertraut machen. Früher hatten Sie
kaum eine Alternative zu diesen beiden Programmen. Heute, wo die Zahl der Anwendungen
für Linux explosionsartig zunimmt, ist die Situation natürlich deutlich anders.
Es gibt eine Reihe weiterer guter Editoren, die dem Programmierer wertvolle
Hilfe sein können. Drei davon will ich Ihnen hier kurz vorstellen. (An dieser
Stelle nochmals der Hinweis, dass auf Seite mit NEdit
ein zusätzlicher Kandidat schon vorkam.)
Auch die beiden großen Open-Source-Projekte für Benutzeroberflächen, GNOME und KDE, haben eigene Editoren (natürlich unter GPL) hervorgebracht. Während KDE schon etwas weiter ist -- zu KWrite kommen wir gleich --, steht bei GNOME momentan (Ende 2000) ein einfacher Texteditor namens gEdit zur Verfügung (siehe www.gnome.org). Diesen rufen Sie am einfachsten über das GNOME-Systemmenü, Abschnitt APPLICATIONS, auf. Alternativ geht natürlich auch der Aufruf von gnome-edit von der Kommandozeile.
Die grafische Benutzerschnittstelle dieser Anwendung ist wie bei den meisten
GNOME-Applikationen sehr modern und für (ehemalige) Windows-Anwender sicher
auf Anhieb leicht zu verstehen (Abbildung ).
Wenn Sie bisher viel mit Notepad oder Wordpad unter Windows gearbeitet haben, wird Ihnen der Umstieg auf gEdit sicher nicht schwer fallen. Nicht nur die Werkzeugleiste und die Menüs, sondern auch die Tastaturkürzel sind an die Windows-Welt angelehnt. So bewegen Sie etwa den Cursor um ein Wort weiter, wenn Sie während des Anschlags der Pfeiltaste die Strg-Taste gedrückt halten, und speichern Ihre Änderungen mit Strg+s.
Sie markieren Bereiche, wenn Sie die Umschalttaste gedrückt halten, während Sie den Cursor bewegen. Mit Strg+x löschen Sie den markierten Bereich und übertragen ihn in die Zwischenablage, mit Strg+c kopieren Sie ihn lediglich und mit Strg+v fügen Sie ihn wieder in den Text ein. Alternativ zu den Tasten können Sie nicht nur das Menü BEARBEITEN oder die Schaltflächen der Werkzeugleiste, sondern auch das Kontextmenü verwenden, das Sie wie gewohnt über die rechte Maustaste erreichen.
Zum Suchen und Ersetzen von Textstellen gibt es jeweils einen eigenen Dialog, in dem Sie die gewünschten Suchoptionen gleich einstellen können. Das Auffinden mehrerer Textstellen hintereinander hat allerdings in meinen Tests nicht zufrieden stellend funktioniert. Auch entstehen beim Scrollen zuweilen sehr unangehme Überblendungen der aktuellen Zeile mit dem Suchtext.
Über das Menü PLUGINS lassen sich noch einige mehr oder weniger generische Hilfsprogramme in die Arbeit mit gEdit einbinden. Die meisten davon sind allerdings für die Programmentwicklung kaum hilfreich. Ganz nett ist einzig die Möglichkeit, zwischen der Implementations- und der Header-Datei hin- und herzuschalten. Leider geht das zurzeit aber nur für die Programmiersprache C (da diese im GNOME-Projekt verwendet wird) und nicht für C++. Das kann sich aber in absehbarer Zeit ändern.
Alles in allem ist gEdit ein Werkzeug, das sich anbietet, wenn Sie ohnehin GNOME einsetzen. Für kleine Programme oder kleinere Änderungen ist es ganz gut geeignet, auch wenn es zuweilen etwas instabil ist. Für das Schreiben längerer Quelltexte ist es aus meiner Sicht aber nicht zu empfehlen.
Zurzeit befindet sich noch ein erweiterter Editor für Programmierer namens CodeCommander in der Entwicklung. Erste Eindrücke können Sie unter codecommander.sourceforge.net erhalten.
Im Vergleich zu GNOME gibt es den erweiterten Editor KWrite
in KDE schon etwas länger (siehe www.kde.org). Mittlerweile ist
er auch in einer neuen Version in KDE2 enthalten. Infolgedessen
hat er auch bereits einen höheren Reifegrad erreicht. Die Funktionsweise ist ähnlich;
auch hier folgt die Oberfläche der Philosophie der Desktop-Umgebung, eben KDE,
welche für einen Windows-Anwender recht intuitiv zu bedienen ist (Abbildung
). Entsprechend wenig Schwierigkeiten dürften Sie mit dem Programm
haben.
Die übliche Funktionalität ist vorhanden: Öffnen, Speichern, Umgang mit der Zwischenablage, Suchen und Ersetzen, Rückgängigmachen mehrerer Schritte und so weiter. Außerdem kann KWrite eine typabhängige, aber frei konfigurierbare Einfärbung von Quelltext gemäß der Syntax vornehmen. Damit erhöht sich die Lesbarkeit und Übersichtlichkeit von Programmen oft erheblich. Auch andere Eigenschaften des Editors können Sie an Ihre Vorlieben anpassen.
Darüber hinaus verfügt KWrite über einige Besonderheiten, aber auch über einige recht praktische Eigenschaften, auf die ich Sie noch hinweisen möchte.
KWrite verhält sich beim Bewegen des Cursors wie gewohnt. So können
Sie durch Drücken von beim Betätigen der
Pfeiltasten markieren und bei gleichzeitigem Strg über Wörter und Ausdrücke hinwegspringen.
Insgesamt können Sie mit diesem Editor aber in einer Weise Text markieren, wie Sie es sonst lange suchen müssen. KWrite bietet Ihnen nicht nur die Markierung zusammenhängender Textstellen, sondern auf Wunsch auch
Zum Öffnen einer Datei bietet Ihnen KWrite neben dem Schalter der Werkzeugleiste und dem Menüeintrag DATEI | ÖFFNEN noch weitere Wege an:
Alles in allem ist KWrite ein Editor, mit dem sich sehr gut arbeiten lässt. Mit der Renovierung auf KDE2 ist daraus ein Werkzeug geworden, das sogar die Einfärbung des Textes in Abhängigkeit von einer Programmiersprache unterstützt.
Dass KWrite in der integrierten Entwicklungsumgebung KDevelop, zu der wir später noch kommen, eingesetzt wird, zeigt, dass doch einige Entwickler auf ihn setzen. Allerdings ist auch dieser Editor von der Stabilität und Mächtigkeit eines (X)Emacs noch entfernt.
XCoral ist eine französische Entwicklung, die unter GPL (siehe Seite
) vertrieben wird und unter Programmierern immer mehr Freunde
gewinnt (erhältlich von ftp://ftp.inria.fr/X/contrib-R5/clients). Obwohl
der optische Eindruck völlig anders ist, sind viele Kommandos und Tastaturkürzel
vom Emacs übernommen. Wenn Sie diesen also bereits kennen, werden Sie sich schnell
in XCoral zurechtfinden.
Wenn Sie die Anwendung mit xcoral starten, haben Sie ein Fenster mit
einer Menü- und einer Werkzeugleiste, einem Eingabebereich und einer Statuszeile
vor sich (Abbildung ). Haben Sie keine Datei als Argument angegeben,
so können Sie mit FILE | READ FILE eine öffnen. Der Dialog, der dann erscheint, ist zwar nicht ganz so komfortabel wie bei gEdit oder KWrite, aber
durchaus zweckmäßig.
![]()
|
Neben Mausklicks und den Cursortasten können Sie zum Navigieren im Text auch die Pfeilschaltflächen rechts unten verwenden. (Außerdem bietet XCoral verschiedene Tastenkombinationen zu diesem Zweck, die Sie bitte der Dokumentation entnehmen.)
Die Ähnlichkeiten zum XEmacs gehen aber deutlich über die Tastenkombinationen hinaus:
In der C++-Programmierung hat man oft viel Schreibarbeit. Beginnt man eine neue
Klasse, so braucht diese eine Deklaration, einen Konstruktor, einen Destruktor
und so weiter. Ein Teil der Arbeit will Ihnen XCoral mit einem besonderen Feature
abnehmen. Über MISC | PROGRAMMING UTIL gelangen Sie zu einem Dialog,
mit dem Sie Gerüste für C++-Klassen und Methoden erzeugen können. In Abbildung
Fig:XCoral sehen Sie beispielsweise, was XCoral erzeugt,
wenn ich nur
Raumfahrzeug
als Klassenname und Raumobjekt
als Basisklasse
eingebe. Auf dieser Basis können Sie dann die Deklaration Ihrer Klasse vervollständigen.
Wenn Ihnen die Vorgabe nicht gefällt oder nicht genügt, können Sie sie auch
beliebig ändern (Datei /usr/lib/xcoral/head.sc).
Gerade in einem größeren C++-Projekt verliert man leicht die Übersicht. Es gibt eine ganze Reihe von Klassen mit jeweils einigen Methoden und Attributen. Schnell die passende Quelltextstelle zu finden, ist eine Kunst. Bei dieser Aufgabe kann Ihnen der Klassen- und Funktionsbrowser von XCoral wertvolle Dienste leisten.
![]()
|
Sie rufen den Browser mit dem Menüpunkt WINDOW | BROWSER WINDOW auf. Zunächst ist wichtig, dass Sie verstehen, dass dieses Fenster noch nichts mit Ihren übrigen Editorfenstern zu tun haben muss. Vermutlich ist es sogar ganz leer. Über die Schaltfläche ADD fügen Sie Dateien und Verzeichnisse hinzu, deren Inhalt XCoral aufnehmen und darstellen soll. Wenn Sie ein Verzeichnis im Datei-Dialog auswählen, werden alle C++-Header- und Implementationsdateien in diesem Verzeichnis hinzugefügt und damit alle Klassen, Funktionen und globale Variablen, die darin enthalten sind. Anschließend können Sie in der Liste TYPES links oben die nun bekannten Klassen sehen. Wenn Sie auf eine davon klicken, erhalten Sie in den Fenstern daneben und darunter die Methoden und Attribute sowie gegebenenfalls die Ober- und Unterklassen angezeigt.
Zum Browser gehört außerdem noch ein so genanntes Visit Window; in diesem wird die zugehörige Quelltextstelle sofort angezeigt, wenn Sie ein Element im Browserfenster anklicken. Da das Besuchsfenster dabei immer in den Vordergrund gerückt wird, ist es ratsam, es neben dem Browser auf dem Desktop anzuordnen, damit die Überlappungen Sie nicht bei der Arbeit behindern.
Wenn Sie doppelt auf ein Element klicken, öffnen Sie ein Editierfenster, in dem der Cursor gleich an der entsprechenden Stelle im Quelltext steht. Dabei können Sie mit der Schaltfläche DECL/IMPL umschalten, ob Sie zur Deklaration oder zur Implementation gelangen wollen.
Auch wenn der Browser noch an ein paar Stellen nicht fehlerfrei arbeitet, kann er doch recht hilfreich sein. Wir werden später aber noch zu integrierten Entwicklungsumgebungen kommen, die sehr viel weiter gehende Funktionalität bieten.
Alles in allem ist XCoral ein Editor, der für den Programmierer in die engere Wahl kommen sollte. Auch wenn das Look & Feel etwas ungewohnt sein mag, sind seine Funktionen schon ziemlich ausgereift. Mit der syntax-gemäßen Einfärbung des Quelltextes können Sie schon ein besseres Bild von Ihrem Code gewinnen. Die Möglichkeit, automatisch Gerüste für Klassen und Methoden zu erzeugen, kann Ihnen einiges an Tipparbeit ersparen. Und nicht zuletzt ist der Klassenbrowser ein nützliches Werkzeug, um sich in größeren Projekten zurechtzufinden und rasch die gesuchte Stelle im Code zu finden.
Da XCoral darüber hinaus freie Software unter GPL ist, können Sie auch selbst Anpassungen am Programm vornehmen, wo Sie sie für nötig halten. Aber so weit müssen Sie in den meisten Fällen gar nicht gehen. Dank des C-Interpreters ist XCoral so frei konfigurierbar, dass Sie viele Ihrer Zusatzwünsche sicher schnell selbst einbauen können.
Da Editoren zu den elementaren Werkzeugen bei der Arbeit am Computer gehören, gibt es von ihnen unüberschaubar viele. Ein großer Teil davon beschränkt sich jedoch auf sehr elementare Funktionen und/oder sehr einfache Benutzerschnittstellen. Wenn Sie einen Editor mit etwas mehr Komfort suchen, der Sie zudem bei der Programmierung unterstützt, wird die Auswahl schon kleiner.
Sie haben in diesem Kapitel ein paar der wichtigsten und ein paar der interessantesten Werkzeuge kennen gelernt. Mit so ziemlich jedem von diesen könnten Sie große und sehr große Programme schreiben. Welchen Sie letztendlich benutzen, hängt ganz von Ihnen ab. Es ist aber immer sinnvoll, zunächst einmal verschiedene auszuprobieren um festzustellen, mit welchem man am besten zurechtkommt.
Die integrierten Entwicklungsumgebungen, denen Sie in einem späteren Kapitel begegnen werden, haben fast alle wieder eigene Editoren. Das macht die Gewöhnung daran nicht einfacher; wenn Sie aber schon die wichtigsten Paradigmen kennen, fällt Ihnen der Umstieg sicher nicht schwer.
(C) T. Wieland, 2001. Alle Rechte vorbehalten.