Leider werden UNIX®-Systeme nicht mit einem alles-was-du-jemals-brauchst-und-vieles-mehr-megapaket an integrierten Entwicklungsumgebungen ausgestattet, die bei anderen Systemen dabei sind. [7] Trotzdem ist es möglich, seine eigene Entwicklungsumgebung aufzusetzen. Diese wird vielleicht nicht so hübsch und integriert sein, aber dafür können Sie sie Ihren eigenen Wünschen anpassen. Und sie ist frei. Und Sie haben die Quelltexte davon.
Der Schlüssel zu all dem ist Emacs. Es gibt zwar ein paar Leute die ihn hassen, es gibt jedoch auch viele die ihn lieben. Falls Sie zu ersteren gehören befürchte ich, daß dieser Abschnitt Ihnen wenig interessantes zu bieten hat. Des weiteren benötigen Sie eine angemessene Menge an freiem Speicher, um ihn zu benutzen—ich würde 8MB für den Textmodus und 16MB unter X als absolutes Minimum empfehlen, um eine halbwegs brauchbare Performance zu erhalten.
Emacs ist im Prinzip ein extrem anpassbarer Editor— in der Tat ist er so stark veränderbar, daß er eher einem Betriebssystem als einem Editor gleicht! Viele Entwickler und Systemadministratoren erledigen praktisch ihre gesamte Arbeit aus Emacs heraus und beenden ihn nur, um sich komplett auszuloggen.
Es ist nicht einmal möglich alles hier zusammenzufassen, was man mit dem Emacs machen kann. Im Folgenden werden einige Features aufgelistet, die für einen Entwickler interessant sein könnten:
Sehr mächtiger Editor, der suchen-und-ersetzen mit Zeichenfolgen und regulären Ausdrücken (Pattern) sowie das direkte Anspringen von Anfang/Ende von Blockausdrücken erlaubt, etc, etc.
Pull-Down Menüs und eine Online-Hilfe.
Sprachunabhängige Syntaxhervorhebung und automatische Einrückung.
Vollständig konfigurierbar.
Sie können Programme im Emacs kompilieren und debuggen.
Bei Kompilationsfehlern können Sie direkt zu der entsprechenden Zeile im Quelltext springen.
Benutzerfreundliches Front-End für das
info
-Programm, um die GNU Hypertext
Dokumentation inklusive der Dokumentation des Emacs
selber.
Benutzerfreundliches Front-End für den
gdb
um sich beim Verfolgen der
Programmanweisungen den zugehörigen Quelltext
anzeigen zu lassen.
Sie können E-Mails und News im Usenet lesen, während ihr Programm kompiliert wird.
Und zweifelsfrei viele weitere Punkte, die ich übersehen habe.
Emacs kann unter FreeBSD über den editors/emacs
Port installiert werden.
Sobald er installiert ist starten Sie ihn, und geben
dann C-h t
ein, um die Einführung
in Emacs zu lesen—d.h. Sie sollen bei gedrückter
Strg-Taste die h-Taste
drücken, beide wieder loslassen und anschließend
t drücken. (Alternativ können Sie
mit der Maus den Eintrag aus dem
-Menü auswählen).
Obwohl der Emacs Menüs besitzt ist das Erlernen der
Tastaturkombinationen lohnenswert, da man beim Editieren sehr
viel schneller Tastenkombinationen eingeben kann, als die Maus
zu finden und mit dieser dann an der richtigen Stelle zu
klicken. Und wenn Sie sich mit erfahrenen Emacs-Benutzern
unterhalten werden Sie feststellen, daß diese
häufig nebenbei Ausdrücke wie „M-x
replace-s RET foo RET bar RET
“ verwenden,
weshalb das Erlernen dieser sehr nützlich ist. Und Emacs
hat auf jeden Fall weit mehr nützliche Funktionen als das
diese in der Menüleiste unterzubringen wären.
Zum Glück ist es sehr einfach die jeweiligen Tastaturkombinationen herauszubekommen, da diese direkt neben den Menüeinträgen stehen. Meine Empfehlung wäre, den Menüeintrag für, sagen wir, das Öffnen einer Datei zu verwenden, bis Sie die Funktionsweise verstanden haben und sie mit dieser vertraut sind, und es dann mit C-x C-f versuchen. Wenn Sie damit zufrieden sind, gehen Sie zum nächsten Menüeintrag.
Falls Sie sich nicht daran erinnern können, was eine bestimmte Tastenkombination macht, wählen Sie
aus dem -Menü aus und geben Sie die Tastenkombination ein—Emacs sagt Ihnen dann was diese macht. Sie können ebenfalls den Menüeintrag verwenden, um alle Befehle, die ein bestimmtes Wort enthalten, mit den zugehörigen Tastenkombinationen aufgelistet zu bekommen.Übrigends bedeutet der Ausdruck weiter oben, bei
gedrückter Meta-Taste x
zu drücken, beide wieder loszulassen,
replace-s
einzugeben (Kurzversion
für replace-string
—ein weiteres
Feature des Emacs ist, daß Sie Befehle abkürzen
können), anschließend die
return-Taste zu drücken, dann
foo
einzugeben (die Zeichenkette, die
Sie ersetzen möchten), dann wieder
return, dann die Leertaste zu drücken
(die Zeichenkette, mit der Sie foo
ersetzen
möchten) und anschließend erneut
return zu drücken. Emacs wird dann die
gewünschte suchen-und-ersetzen-Operation
ausführen.
Wenn Sie sich fragen was in aller Welt die Meta-Taste ist, das ist eine spezielle Taste die viele UNIX®-Workstations besitzen. Bedauerlicherweise haben PCs keine solche Taste, und daher ist es üblicherweise die alt-Taste (oder falls Sie Pech haben die Esc-Taste).
Oh, und um den Emacs zu verlassen müssen sie
C-x C-c
(das bedeutet, Sie müssen bei
gedrückter Strg-Taste zuerst
x und dann c drücken)
eingeben. Falls Sie noch irgendwelche ungespeicherten Dateien
offen haben wird Emacs Sie fragen ob Sie diese speichern
wollen. (Ignorieren Sie bitte die Stelle der Dokumentation, an
der gesagt wird, daß C-z
der
übliche Weg ist, Emacs zu verlassen—dadurch wird
der Emacs in den Hintergrund geschaltet, was nur nützlich
ist, wenn Sie an einem System ohne virtuelle Terminals
arbeiten).
Emacs kann viele wundervolle Dinge; manche dieser Dinge sind schon eingebaut, andere müssen erst konfiguriert werden.
Anstelle einer proprietären Macrosprache verwendet der Emacs für die Konfiguration eine speziell für Editoren angepaßte Version von Lisp, auch bekannt als Emacs Lisp. Das Arbeiten mit Emacs Lisp kann sehr hilfreich sein, wenn Sie darauf aufbauend etwas wie Common Lisp lernen möchten. Emacs Lisp hat viele Features von Common Lisp obwohl es beträchtlich kleiner ist (und daher auch einfacher zu beherrschen).
Der beste Weg um Emacs Lisp zu erlernen besteht darin, sich das Emacs Tutorial herunterzuladen.
Es ist jedoch keine Kenntnis von Lisp erforderlich, um
mit der Konfiguration von Emacs zu beginnen, da ich eine
beispielhafte .emacs
-Datei hier
eingefügt habe, die für den Anfang ausreichen
sollte. Kopieren Sie diese einfach in Ihr Heimverzeichnis und
starten Sie den Emacs neu, falls dieser bereits läuft; er
wird die Befehle aus der Datei lesen und Ihnen (hoffentlich)
eine brauchbare Grundeinstellung bieten.
Bedauerlicherweise gibt es hier viel zu viel, um es im Detail zu erklären; es gibt jedoch ein oder zwei Punkte, die besonders erwähnenswert sind.
Alles was mit einem ;
anfängt
ist ein Kommentar und wird von Emacs ignoriert.
In der ersten Zeile mit
-*- Emacs-Lisp -*-
sorgt
dafür, daß wir die Datei
.emacs
in Emacs selber editieren
können und uns damit alle tollen Features zum
Editieren von Emacs Lisp zur Verfügung stehen. Emacs
versucht dies normalerweise anhand des Dateinamens
auszumachen, was vielleicht bei
.emacs
nicht funktionieren
könnte.
Die Tab-Taste ist in manchen Modi an die Einrückungsfunktion gebunden, so daß beim drücken dieser Taste die aktuelle Zeile eingerückt wird. Wenn Sie ein tab-Zeichen in einen Text, welchen auch immer Sie dabei schreiben, einfügen wollen, müssen Sie bei gedrückter Strg-Taste die Tab-Taste drücken.
Diese Datei unterstützt Syntax Highlighting für C, C++, Perl, Lisp und Scheme, indem die Sprache anhand des Dateinamens erraten wird.
Emacs hat bereits eine vordefinierte Funktion mit dem
Namen next-error
. Diese erlaubt es
einem, in einem Fenster mit der Kompilierungsausgabe
mittels M-n
von einem zum nächsten
Kompilierungsfehler zu springen; wir definieren eine
komplementäre Funktion
previous-error
, die es uns erlaubt,
mittels M-p
von einem zum vorherigen
Kompilierungsfehler zu springen. Das schönste Feature
von allen ist, daß mittels C-c
C-c
die Quelltextdatei, in der der Fehler
aufgetreten ist, geöffnet und die betreffende Zeile
direkt angesprungen wird.
Wir aktivieren die Möglichkeit von Emacs als Server zu agieren, so daß wenn Sie etwas außerhalb von Emacs machen und eine Datei editieren möchten, Sie einfach das folgende eingeben können
%
emacsclient filename
und dann die Datei in Ihrem Emacs editieren können! [8]
.emacs
-DateiDas ist jetzt alles sehr schön wenn Sie
ausschließlich in einer der Sprachen programmieren
wollen, um die wir uns bereits in der
.emacs
-Datei gekümmert haben (C,
C++, Perl, Lisp und Scheme), aber was passiert wenn eine neue
Sprache namens „whizbang“ herauskommt, mit jeder
Menge neuen tollen Features?
Als erstes muß festgestellt werden, ob whizbang mit
irgendwelchen Dateien daherkommt, die Emacs etwas über
die Sprache sagen. Diese enden üblicherweise auf
.el
, der Kurzform für „Emacs
Lisp“. Falls whizbang zum Beispiel ein FreeBSD Port
ist, könnten wir diese Dateien mittels
%
find /usr/ports/lang/whizbang -name "*.el" -print
finden und durch Kopieren in das Emacs-seitige
Lisp-Verzeichnis installieren. Unter FreeBSD ist dies
/usr/local/share/emacs/site-lisp
.
Wenn zum Beispiel die Ausgabe des find-Befehls wie folgt war
könnten wir das folgende tun
#
cp /usr/ports/lang/whizbang/work/misc/whizbang.el /usr/local/share/emacs/site-lisp
Als nächstes müssen wir festlegen, welche
Dateiendung Quelltextdateien für whizbang haben. Lassen
Sie uns um der Argumente Willen annehmen, die Dateiendung sei
.wiz
. Wir müssen dann einen Eintrag
unserer .emacs
-Datei hinzufügen um
sicherzustellen, daß Emacs die Informationen in
whizbang.el
auch verwenden kann.
Suchen Sie den auto-mode-alist Eintrag
in der .emacs
-Datei und fügen Sie an
dieser Stelle eine Zeile wie folgt für whizbang
hinzu:
Dies bedeutet das Emacs automatisch in den
whizbang-mode
wechseln wird, wenn Sie
eine Datei mit der Dateiendung .wiz
editieren.
Direkt darunter werden Sie den Eintrag
font-lock-auto-mode-list finden. Erweitern
Sie den whizbang-mode
um diesen wie
folgt:
Dies bedeutet das Emacs immer
font-lock-mode
(z.B. Syntax Highlighting)
aktiviert, wenn Sie eine .wiz
-Datei
editieren.
Und das ist alles was benötigt wird. Falls es
weitere Dinge gibt, die automatisch beim Öffnen einer
.wiz
-Datei ausgeführt werden sollen,
können Sie einen whizbang-mode
hook
-Eintrag hinzufügen (für ein
einfaches Beispiel, welches auto-indent
hinzufügt, sehen Sie sich bitte
my-scheme-mode-hook
an).
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.