mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-27 07:37:33 +00:00
1519 lines
66 KiB
Plaintext
1519 lines
66 KiB
Plaintext
Einführung in Emacs. Siehe Dateiende für Vervielfältigungsbedingungen.
|
||
|
||
Emacs-Befehle beinhalten im allgemeinen die CONTROL-Taste (manchmal
|
||
auch als CTRL oder STRG beschriftet) sowie die META-Taste (oft
|
||
ALT genannt). Folgende Abkürzungen werden verwendet:
|
||
|
||
C-<Zeichen> bedeutet, dass die CONTROL-Taste gedrückt sein muss,
|
||
während man das Zeichen <Zeichen> eingibt. Beispiel:
|
||
C-f Halten Sie die CONTROL-Taste gedrückt und drücken
|
||
Sie dann die f-Taste.
|
||
M-<Zeichen> bedeutet, dass die META-Taste gedrückt sein muss,
|
||
während man das Zeichen <Zeichen> eingibt. Statt dessen
|
||
kann man auch die ESC-Taste und anschließend <Zeichen>
|
||
drücken (hintereinander, nicht gleichzeitig). Beispiel:
|
||
M-f Halten Sie die META-Taste gedrückt und geben
|
||
Sie den Buchstaben (klein) f ein.
|
||
|
||
»>>« am linken Rand ist ein Hinweis, einen Befehl auszuprobieren:
|
||
<<Blank lines inserted here by startup of help-with-tutorial>>
|
||
[Leerzeilen befinden sich hier aus didaktischen Gründen. Fortsetzung unten.]
|
||
>> Drücken Sie C-v, um zur nächsten Bildschirmseite vorzublättern.
|
||
Ab jetzt sollten Sie das stets tun, wenn Sie das untere
|
||
Bildschirmende erreicht haben.
|
||
|
||
Beachten Sie bitte, dass beim Blättern die untersten zwei Zeilen der
|
||
vorigen Bildschirmseite als die zwei obersten Zeilen der neuen Seite
|
||
erscheinen, um eine gewisse Kontinuität während des Lesens zu
|
||
ermöglichen.
|
||
|
||
Was Sie gerade lesen, ist eine leicht angepasste Kopie der deutschen
|
||
Einführung. Später werden Sie aufgefordert, verschiedene Befehle
|
||
auszuführen, um den Text der Einführung zu ändern. Es spielt keine
|
||
Rolle, wenn Sie den Text schon vorher ändern sollten – man nennt das
|
||
»editieren«, und genau dafür ist ein Editor wie Emacs da.
|
||
|
||
Wichtig: Sie können Emacs mit der Befehlsfolge C-x C-c beenden.
|
||
Diese Einführung beenden Sie mit C-x k, gefolgt von der Eingabetaste.
|
||
|
||
Im weiteren wird die ESC-Taste mit <ESC> bezeichnet.
|
||
|
||
[Falls die deutschen Umlaute nicht korrekt auf dem Bildschirm
|
||
erscheinen, lesen Sie bitte den Abschnitt »MULE« kurz vor Ende dieser
|
||
Einführung.]
|
||
|
||
Zunächst müssen Sie wissen, wie man sich innerhalb eines Dokuments
|
||
bewegen kann. Wie man eine Bildschirmseite vorwärts blättert, wissen
|
||
Sie schon (C-v). Mit M-v blättern Sie eine Bildschirmseite zurück
|
||
(halten Sie die META-Taste gedrückt und geben Sie v ein, oder drücken
|
||
Sie zuerst <ESC> und anschließend v).
|
||
|
||
>> Probieren Sie einige Male M-v und C-v aus.
|
||
|
||
[Auf den meisten Tastaturen bewirkt die PgUp-Taste (»page up«, auch
|
||
mit »Bild« und einem Aufwärtspfeil beschriftet) dasselbe wie M-v bzw.
|
||
die PgDn-Taste (»page down«, »Bild« mit Abwärtspfeil) dasselbe wie
|
||
C-v.]
|
||
|
||
|
||
* ZUSAMMENFASSUNG
|
||
-----------------
|
||
|
||
Die folgenden Befehle sind nützlich, um Text bildschirmweise zu
|
||
betrachten:
|
||
|
||
C-v eine Seite vorwärts blättern
|
||
M-v eine Seite zurück blättern
|
||
C-l lösche den Bildschirm und stelle den ganzen Text
|
||
erneut dar, wobei der Text rund um den Cursor zur
|
||
Mitte des Bildschirms bewegt wird.
|
||
(»l« ist der Buchstabe »klein L«, nicht die Ziffer 1.)
|
||
|
||
|
||
>> Finden Sie den Cursor und merken sich den Text in dessen Umgebung.
|
||
Drücken Sie C-l. Der Cursor ist jetzt ungefähr in der (vertikalen)
|
||
Bildschirmmitte, und er hat seine Position relativ zum Text nicht
|
||
geändert. Wiederholtes Drücken von C-l bewegt den Text zum oberen
|
||
Bildschirmrand, dann zum unteren, und dann wieder zur Mitte.
|
||
|
||
|
||
* KONTROLLE DES CURSORS
|
||
-----------------------
|
||
|
||
Text bildschirmweise anzuschauen ist sicherlich praktisch, aber wie
|
||
kommt man zu einer bestimmten Position innerhalb des gerade
|
||
dargestellten Textes?
|
||
|
||
Es gibt verschiedene Möglichkeiten. Die Grundbefehle sind C-p, C-b,
|
||
C-f und C-n. Dem folgenden Diagramm können Sie entnehmen, welcher
|
||
Befehl den Cursor wohin bewegt:
|
||
|
||
|
||
vorige Zeile, C-p
|
||
:
|
||
:
|
||
zurück, C-b .... momentane Cursor-Position .... vorwärts, C-f
|
||
:
|
||
:
|
||
nächste Zeile, C-n
|
||
|
||
|
||
[Die Buchstaben p, b, f und n stehen für die englischen Wörter
|
||
»previous«, »backward«, »forward« und »next«.]
|
||
|
||
>> Bewegen Sie den Cursor zur Zeile in der Mitte des Diagramms mittels
|
||
C-n oder C-p. Geben Sie dann C-l ein, und das ganze Diagramm ist
|
||
zentriert auf dem Bildschirm.
|
||
|
||
Normalerweise sind die vier Pfeiltasten mit den Cursor-Grundbefehlen
|
||
belegt. Falls nicht, sollten Sie Ihre Terminalkonfiguration
|
||
überprüfen.
|
||
|
||
Es ist von großer Wichtigkeit, sich mit obigen Cursor-Befehlen
|
||
vertraut zu machen, da man sie ständig braucht (besonders wenn man mit
|
||
Terminal-Emulationen arbeitet, welche die Pfeiltasten nicht
|
||
unterstützen).
|
||
|
||
>> Drücken Sie ein paarmal C-n, um den Cursor zu dieser Zeile zu
|
||
bewegen.
|
||
|
||
>> Bewegen Sie den Cursor vorwärts mittels C-f und nach oben mit C-p.
|
||
Beobachten Sie, was C-p tut, wenn der Cursor sich in der
|
||
Zeilenmitte befindet.
|
||
|
||
Jede Textzeile endet mit einem Zeilenvorschub-Zeichen (»newline«), das
|
||
sie von der folgenden Zeile trennt. Die letzte Zeile in einer Datei
|
||
hat normalerweise ebenfalls einen Zeilenvorschub am Schluss, Emacs
|
||
benötigt ihn aber nicht.
|
||
|
||
>> Probieren Sie C-b am Anfang einer Zeile. Der Cursor sollte zum
|
||
Ende der vorigen Zeile springen: C-b überspringt
|
||
Zeilenvorschub-Zeichen.
|
||
|
||
C-f überspringt Zeilenvorschub-Zeichen analog zu C-b.
|
||
|
||
>> Drücken Sie noch ein paarmal C-b, um ein Gefühl für den Cursor zu
|
||
bekommen. Bewegen sie anschließend den Cursor mittels C-f zum Ende
|
||
der Zeile. Geben Sie jetzt noch einmal C-f ein, um zur nächsten
|
||
Zeile zu springen.
|
||
|
||
>> Falls die Pfeiltasten funktionieren, können Sie mit diesen das
|
||
gleiche probieren und üben.
|
||
|
||
Wenn Sie den Cursor entweder nach oben oder nach unten über den
|
||
Bildschirmrand hinaus bewegen wollen, dann wird statt dessen Text in
|
||
den Bildschirm hineingeschoben. Dies nennt man »scrolling«. Auf
|
||
diese Weise verhindert Emacs, dass der Cursor je den sichtbaren
|
||
Bereich verlässt.
|
||
|
||
>> Versuchen Sie den Cursor über den unteren Bildschirmrand hinaus zu
|
||
bewegen und beobachten Sie, was geschieht.
|
||
|
||
Wenn zeichenweise Cursorbewegung zu langsam ist, kann man den Cursor
|
||
wortweise bewegen. M-f (META-f) bewegt den Cursor ein Wort vor, und
|
||
M-b ein Wort zurück.
|
||
|
||
>> Geben Sie ein paarmal M-f und M-b ein.
|
||
|
||
Befinden Sie sich in der Mitte eines Wortes, bewegt M-f den Cursor zum
|
||
Ende des Wortes. Befinden Sie dagegen sich in einem Wortzwischenraum,
|
||
bewegt M-f den Cursor zum Ende des nächsten Wortes. M-b arbeitet
|
||
analog, aber in die entgegengesetzte Richtung.
|
||
|
||
>> Kombinieren Sie M-f und M-b mit den Befehlen C-f und C-b, um die
|
||
Cursorbewegung von verschiedenen Positionen aus innerhalb und
|
||
zwischen Wörtern zu beobachten.
|
||
|
||
Beachten Sie die Parallele zwischen C-f und C-b einerseits und M-f und
|
||
M-b andererseits. Sehr oft werden mit »META-« beginnende Befehle für
|
||
Operationen verwendet, die mit Sprache zu tun haben (Wörter, Sätze,
|
||
Absätze), während CONTROL-Befehle mit den Text-Basiseinheiten
|
||
operieren, unabhängig davon, was Sie gerade editieren (Zeichen,
|
||
Buchstaben, Zeilen etc).
|
||
|
||
Ein anderes Beispiel: C-a und C-e bewegt den Cursor zum Anfang
|
||
bzw. zum Ende einer Zeile, wohingegen M-a und M-e den Cursor zum
|
||
Anfang bzw. zum Ende eines Satzes springen lässt.
|
||
|
||
>> Probieren Sie ein paarmal C-a und C-e.
|
||
Probieren Sie dann ein paarmal M-a und M-e.
|
||
|
||
Beachten Sie, dass ein wiederholtes Drücken von C-a nichts bewirkt,
|
||
dagegen M-a den Cursor satzweise zurücksetzt. Hier endet die
|
||
Analogie, jedoch ist das Verhalten dieser Befehle leicht
|
||
nachvollziehbar.
|
||
|
||
[Anmerkung 1: Im Deutschen kommt laut Duden nach einem Punkt nur ein
|
||
Leerzeichen. Falls Sie aber Texte schreiben, die weiter verarbeitet
|
||
werden (z.B. durch ein Textformatierprogramm wie TeX), dann sollten
|
||
Sie sich angewöhnen, nach einem Satzende stets ZWEI Leerzeichen zu
|
||
lassen. Dadurch ermöglichen Sie u.a., dass Emacs zwischen
|
||
Abkürzungspunkten und dem Satzende unterscheiden kann, was für
|
||
Textsuche in wissenschaftlichen Texten oft vorteilhaft ist.]
|
||
|
||
[Anmerkung 2: Die Tasten »Home« (Pos1) und »End« (Ende) verhalten sich
|
||
standardmäßig wie C-a und C-e, wie wohl die meisten Benutzer
|
||
annehmen.]
|
||
|
||
Die aktuelle Position des Cursors wird im Englischen auch »point«
|
||
(Punkt) genannt. Beachten Sie bitte, dass sich »point« stets
|
||
*zwischen* zwei Zeichen befindet, nämlich genau vor dem
|
||
Cursor-Kästchen.
|
||
|
||
Hier ist eine Zusammenfassung von einfachen Bewegungsbefehlen für den
|
||
Cursor einschließlich der Wort- und Satzbewegungsbefehle:
|
||
|
||
C-f ein Zeichen vorwärts (auch »Pfeil rechts«-Taste)
|
||
C-b ein Zeichen zurück (auch »Pfeil links«-Taste)
|
||
|
||
M-f ein Wort vorwärts
|
||
M-b ein Wort zurück
|
||
|
||
C-n eine Zeile vorwärts (auch »Pfeil hinunter«-Taste)
|
||
C-p eine Zeile zurück (auch »Pfeil hinauf«-Taste)
|
||
|
||
C-a zum Zeilenanfang
|
||
C-e zum Zeilenende
|
||
|
||
M-a zum Satzanfang
|
||
M-e zum Satzende
|
||
|
||
>> Probieren Sie diese Befehle jetzt ein paarmal zur Übung.
|
||
Es sind die meistverwendeten Befehle innerhalb Emacs.
|
||
|
||
Zwei weitere wichtige Befehle für die Cursorbewegung sind M-< (META
|
||
Kleiner-als) und M-> (META Größer-als), welche zum Anfang bzw. zum
|
||
Ende des ganzen Textes springen.
|
||
|
||
Bei den meisten Terminal-Tastaturen befindet sich »<« über dem Komma,
|
||
d.h., Sie müssen zusätzlich die SHIFT-Taste verwenden (der Umschalter
|
||
ist auf deutschen Tastaturen normalerweise mit einem dicken
|
||
Aufwärtspfeil markiert). Ohne SHIFT-Taste würden Sie M-Komma
|
||
eingeben.
|
||
|
||
>> Testen Sie nun M-<, um an den Anfang der Einführung
|
||
zu gelangen. Verwenden Sie dann C-v, um wieder hierher zu kommen.
|
||
|
||
[Anmerkung: Die Tastenkombinationen »C-Home« (Pos1) und »C-End« (Ende)
|
||
verhalten sich standardmäßig wie M-< und M->.]
|
||
|
||
Ein weiteres, oft benütztes Konzept in Emacs ist die Markierung
|
||
(»mark«). Der Grundbefehl dazu ist C-SPC (oder gleichwertig C-@,
|
||
»SPC« bezeichnet die Leertaste, engl. »space key«); mit ihm kann eine
|
||
Markierung gesetzt werden. Mit C-u C-SPC kommt man zu dieser
|
||
Markierung zurück, falls man den Cursor inzwischen weiterbewegt hat.
|
||
Viele Befehle, die große Sprünge in einem Text ausführen (so auch M->
|
||
und M-<) setzen eine Markierung implizit, was in der untersten Zeile
|
||
(dem Echobereich, s.u.) als »Mark set« angezeigt wird.
|
||
|
||
>> Verwenden Sie jetzt M->, um zum Ende der Einführung
|
||
zu springen und benützen Sie C-u C-SPC, um hierher zurückzukehren.
|
||
|
||
Markierungen werden in einem Ring gespeichert (d.h., die zuletzt in
|
||
den Ring eingehängte Markierung wird als erste zurückgeholt und wie
|
||
bei einem Schlüsselbund am Ende wieder in den Ring eingefügt). Mit
|
||
C-u C-SPC können Sie Stück für Stück alle Markierungen im
|
||
Markierungsring ansteuern.
|
||
|
||
>> Drücken Sie hier C-SPC, gehen Sie dann zu verschiedenen Positionen
|
||
innerhalb dieses Dokuments und verwenden Sie C-SPC, um weitere
|
||
Markierungen zu setzen. Geben Sie anschließend C-u C-SPC so oft
|
||
ein, bis Sie wieder an dieser Position angelangt sind.
|
||
|
||
Die meisten Emacs-Befehle akzeptieren ein numerisches Argument, das in
|
||
der Regel als Wiederholungszähler dient (d.h., wie oft der Befehl
|
||
ausgeführt werden soll). Eingegeben wird diese Zahl mit C-u, dann die
|
||
Ziffern und dann der Befehl selbst. Alternativ können Sie die
|
||
META-Taste (oder ALT-Taste) gedrückt halten und dann die
|
||
Ziffern des Wiederholungszählers eingeben. Wir empfehlen allerdings,
|
||
die C-u-Methode zu lernen, da sie mit jedem Terminal funktioniert.
|
||
Das numerische Argument wird auch »Präfix-Argument« genannt, da man es
|
||
vor dem zugehörigen Befehl eingibt.
|
||
|
||
Beispiel: C-u 8 C-f bewegt den Cursor acht Zeichen vorwärts.
|
||
|
||
>> Versuchen Sie, C-n oder C-p mit einem numerischen Argument zu
|
||
verwenden und bewegen Sie den Cursor mit nur einem Befehl ungefähr
|
||
hierher.
|
||
|
||
Wie gesagt, die meisten Befehle verwenden das numerische Argument als
|
||
Wiederholungszähler, jedoch nicht alle. Einige davon, die allerdings
|
||
noch nicht besprochen wurden, benützen es als Flag (»Flagge«), d.h.,
|
||
allein das Vorhandensein eines Präfix-Arguments, unabhängig von seinem
|
||
Wert, signalisiert dem Befehl, etwas anderes zu tun.
|
||
|
||
C-v und M-v sind weitere Ausnahmen. Gibt man diesen Befehlen einen
|
||
Parameter n, dann verschieben sie den Bildschirminhalt nicht um eine
|
||
ganze Bildschirmseite, sondern um n Zeilen. Beispiel: C-u 8 C-v
|
||
verschiebt den dargestellten Text um acht Zeilen.
|
||
|
||
>> Versuchen Sie jetzt C-u 8 C-v auszuführen.
|
||
|
||
Der Text sollte jetzt um acht Zeilen nach oben verschoben sein.
|
||
Wollen Sie ihn nach unten verschieben, dann geben Sie M-v mit einem
|
||
numerischen Argument ein.
|
||
|
||
Wenn Sie eine graphische Oberfläche wie X oder MS-Windows verwenden,
|
||
dann befindet sich ein schmaler, langgezogener rechteckiger Bereich
|
||
auf der linken oder rechten Seite des Emacs-Fensters. Dieser Bereich
|
||
wird Scrollbar genannt (»Verschiebungsbalken«). Sie können Text
|
||
verschieben, indem Sie mit der Maus auf den Scrollbar klicken.
|
||
|
||
Hat Ihre Maus ein Mausrad, können Sie damit ebenfalls Text
|
||
verschieben.
|
||
|
||
|
||
* WENN EMACS NICHT MEHR REAGIERT
|
||
--------------------------------
|
||
|
||
Wenn Emacs »hängt«, also auf keine Ihrer Eingaben reagiert, drücken
|
||
Sie C-g. Sie können C-g auch dazu benützen, einen Befehl zu stoppen,
|
||
der zu lange braucht.
|
||
|
||
Eine andere Anwendung ist, einen teilweise eingegebenen Befehl zu
|
||
verwerfen, z.B. ein irrtümlich eingetipptes numerisches Argument zu
|
||
entfernen.
|
||
|
||
>> Geben Sie C-u 100 ein, um ein numerisches Argument 100 zu
|
||
spezifizieren, und drücken Sie dann C-g. Wenn Sie jetzt C-f
|
||
ausführen, dann bewegt sich der Cursor genau ein Zeichen vorwärts,
|
||
da Sie ja das numerische Argument mittels C-g gelöscht haben.
|
||
|
||
Wenn Sie aus Versehen <ESC> gedrückt haben, können Sie dies ebenfalls
|
||
mit C-g rückgängig machen.
|
||
|
||
|
||
* DEAKTIVIERTE BEFEHLE
|
||
----------------------
|
||
|
||
Ein paar Befehle von Emacs sind deaktiviert (»disabled«), damit
|
||
Anfänger sie nicht unabsichtlich benutzen.
|
||
|
||
Wenn Sie einen solchen Befehl eingeben, dann gibt Emacs eine Meldung
|
||
aus und fragt Sie, ob Sie ihn wirklich ausführen wollen.
|
||
|
||
Antworten Sie mit y (für »yes«) oder drücken Sie die Leertaste, wenn
|
||
Sie den Befehl ausführen wollen, sonst mit n.
|
||
|
||
>> Geben Sie C-x C-l ein (das ist ein deaktivierter Befehl) und
|
||
drücken Sie n als Antwort auf die Frage.
|
||
|
||
|
||
* FENSTER
|
||
---------
|
||
|
||
Emacs kann mehrere Fenster (»windows«) haben, von denen jedes seinen
|
||
eigenen Text darstellt. Später erklären wir, wie man mit Fenstern
|
||
umgeht. Hier wollen wir nur erklären, wie man ein (vielleicht
|
||
irrtümlich erzeugtes) Fenster wieder entfernt und zum normalen
|
||
Ein-Fenster-Editieren zurückkommt. Der Befehl ist einfach:
|
||
|
||
C-x 1 Ein Fenster (d.h., schließe alle anderen Fenster)
|
||
|
||
Das ist C-x gefolgt von der Ziffer 1. C-x 1 expandiert das Fenster,
|
||
in dem der Cursor sich befindet, sodass es den ganzen Bildschirm
|
||
erfasst. Alle anderen Fenster werden gelöscht.
|
||
|
||
[Anmerkung: Emacs verwendet das Wort Fenster (»windows«) in einem
|
||
anderen Sinn, als Sie es vielleicht gewöhnt sind. Wenn Sie einen
|
||
Textbildschirm vor sich haben, dann ist die Terminologie eindeutig.
|
||
Wenn Sie allerdings eine graphische Oberfläche benutzen, dann
|
||
bezeichnet ein Emacs-Fenster einen Teilbereich des Fensters (von Ihrer
|
||
graphischen Oberfläche erzeugt), in dem Emacs läuft, in völliger
|
||
Analogie zum Textmodus. Für (graphische) Fenster im herkömmlichen
|
||
Sinn verwenden die Emacs-Entwickler den Ausdruck »Rahmen« (»frame«).]
|
||
|
||
>> Bewegen Sie den Cursor zu dieser Zeile und geben Sie C-u 0 C-l ein.
|
||
|
||
>> Drücken Sie jetzt C-h k C-f.
|
||
Beachten Sie, wie das Fenster schrumpft und ein neues dazukommt,
|
||
welches die (englische) Dokumentation des C-f Befehls anzeigt.
|
||
|
||
>> Geben Sie jetzt C-x 1 ein. Das Dokumentationsfenster verschwindet
|
||
wieder.
|
||
|
||
|
||
* EINFÜGEN UND LÖSCHEN
|
||
----------------------
|
||
|
||
Wenn Sie Text einfügen wollen, dann geben Sie ihn einfach ein.
|
||
Sichtbare Zeichen, z.B. A, 7, * usw. werden als Text von Emacs sofort
|
||
eingefügt. Drücken Sie <Return> (die Zeilenvorschubtaste, meistens
|
||
mit »Enter« oder nur mit einem Rückwärts-Hakenpfeil beschriftet), um
|
||
ein Zeilenvorschubzeichen einzufügen.
|
||
|
||
Sie können das zuletzt eingegebene Zeichen löschen, indem Sie <DEL>
|
||
drücken. <DEL> ist der Backspace-Taste zugeordnet (oft auch nur als
|
||
Rückwärtspfeil beschriftet).
|
||
|
||
Allgemein gesprochen löscht <DEL> das Zeichen unmittelbar vor der
|
||
aktuellen Cursorposition.
|
||
|
||
>> Probieren Sie das jetzt aus: Geben Sie ein paar Zeichen ein und
|
||
löschen Sie sie wieder mit <DEL>. Sie brauchen sich keine Sorgen
|
||
zu machen, dieses Dokument zu verändern: Was Sie hier lesen, ist
|
||
nur eine (persönliche) Kopie des originalen Dokuments.
|
||
|
||
Wenn eine Textzeile zu lang für eine Bildschirmzeile ist, wird sie auf
|
||
einer zweiten Bildschirmzeile »fortgesetzt«: Bei graphischen
|
||
Oberflächen erscheinen zwei kleine gebogene Pfeile links und rechts
|
||
vom Textbereich (diese schmalen Spalten werden »fringe« genannt), bei
|
||
Terminals ein »Backslash«-Zeichen (»\«) am rechten Rand.
|
||
|
||
>> Fügen Sie Text ein, bis Sie den rechten Rand erreicht haben. Fügen
|
||
Sie weiter Text ein. Beobachten Sie, wie eine Fortsetzungszeile
|
||
erscheint.
|
||
|
||
>> Verwenden Sie <DEL> so oft, bis die Textzeile wieder auf eine
|
||
Bildschirmzeile passt. Die Fortsetzungszeile verschwindet wieder.
|
||
|
||
Sie können das Zeilenvorschubzeichen wie jedes andere Zeichen löschen:
|
||
Die Zeilen vor und nach ihm werden dann zu einer zusammengehängt. Ist
|
||
diese länger als die Bildschirmbreite, erscheint eine
|
||
Fortsetzungszeile.
|
||
|
||
>> Bewegen Sie den Cursor zum Anfang der Zeile und geben Sie <DEL>
|
||
ein: Die momentane Zeile wird an die vorige angehängt.
|
||
|
||
>> Geben Sie <Return> ein, um wieder ein Zeilenvorschubzeichen
|
||
einzufügen.
|
||
|
||
Die <Return>-Taste ist besonders, da sie mehr bewirken kann als
|
||
einfach ein Zeilenvorschubzeichen einfügen. Abhängig vom umgebenden
|
||
Text können zusätzliche Leerzeichen eingefügt werden, damit der neue
|
||
Zeilenanfang bündig zur vorherigen Zeile ist. Wir nennen dieses
|
||
Verhalten (wenn das Drücken einer Taste mehr bewirkt, als nur das
|
||
entsprechende Zeichen einzufügen) »electric«.
|
||
|
||
>> Ein Beispiel für dieses Verhalten von <Return>.
|
||
Drücken Sie <Return> am Ende dieser Zeile.
|
||
|
||
Sie sollten sehen, dass sich nach dem Einfügen des
|
||
Zeilenvorschubzeichen der Cursor unter dem »D« von »Drücken« befindet.
|
||
|
||
Denken Sie daran, dass die meisten Emacs-Befehle mit einem
|
||
Wiederholungszähler aufgerufen werden können. Tun Sie das mit einem
|
||
Textzeichen, dann wird es entsprechend dem numerischen Parameter
|
||
wiederholt.
|
||
|
||
>> Drücken Sie C-u 8 *, und es wird ******** eingefügt.
|
||
|
||
Bis jetzt kennen Sie die Grundbefehle, um Text in Emacs einzugeben und
|
||
Fehler zu korrigieren -- fast analog zu den Bewegungsbefehlen ist es
|
||
möglich, ganze Wörter, Sätze oder Zeilen zu löschen:
|
||
|
||
<DEL> lösche ein Zeichen vor dem Cursor
|
||
C-d lösche das Zeichen unter dem Cursor
|
||
|
||
M-<DEL> lösche bis zum (nächsten) Wortanfang unmittelbar
|
||
vor dem Cursor
|
||
M-d lösche bis zum (nächsten) Wortende nach
|
||
(bzw. unter) dem Cursor
|
||
|
||
C-k lösche von momentaner Cursorposition bis zum Ende
|
||
der Zeile
|
||
M-k lösche bis zum nächsten Satzende nach
|
||
(bzw. unter) dem Cursor
|
||
|
||
Eine andere, einheitliche Methode zum Löschen von Text ist das
|
||
Befehlspaar C-@ (oder C-SPC) und C-w. Gehen sie zum Anfang des zu
|
||
löschenden Textes und drücken Sie C-@ oder C-SPC. Gehen Sie dann zum
|
||
Ende des zu löschenden Textes und drücken Sie C-w, um ihn zu
|
||
entfernen.
|
||
|
||
>> Bewegen Sie den Cursor zum Buchstaben »E« am Anfang des letzten
|
||
Absatzes.
|
||
>> Drücken Sie C-SPC. Emacs sollte die Meldung »Mark set« am unteren
|
||
Bildschirmrand zeigen.
|
||
>> Bewegen Sie den Cursor zum Buchstaben »A« in der zweiten Zeile des
|
||
letzten Absatzes.
|
||
>> Geben Sie C-w ein. Der ganze Text, beginnend mit dem »E« und
|
||
endend vor dem »A«, ist nun gelöscht.
|
||
|
||
Löschen Sie mehr als ein Zeichen auf einmal, speichert Emacs den
|
||
gelöschten Text, damit Sie ihn bei Bedarf wieder zurückholen können.
|
||
Einfügen von bereits gelöschtem Text wird im englischen Dokumentation
|
||
von Emacs als »yanking« (wörtlich »herausreißen«) bezeichnet. Sie
|
||
können den gelöschten Text an einer beliebigen Stelle wieder
|
||
einfügen. Solange Sie nichts neues löschen, steht Ihnen dieser
|
||
gelöschte Textteil immer wieder zu Verfügung. Der Befehl dazu ist C-y
|
||
(das Ypsilon steht für »yank«).
|
||
|
||
Emacs unterscheidet zwei Klassen von Löschbefehlen (was man im
|
||
Deutschen leider nicht gut wiedergeben kann): »killing« (umbringen)
|
||
und »deleting« (löschen). Wenn man sich vorstellt, dass »yanking« den
|
||
Begriff »von den Toten erwecken« darstellt, dann hat man ungefähr eine
|
||
Vorstellung von der Metapher -- Von einem »kill«-Befehl gelöschter
|
||
Text wird gespeichert und kann bei Bedarf mit C-y zurückgeholt werden.
|
||
Von einem »delete«-Befehl entfernter Text (in der Regel einzelne
|
||
Zeichen, leere Zeilen und Zwischenräume) wird nicht extra gespeichert
|
||
und kann daher auch nicht zurückgeholt werden. Allerdings besteht die
|
||
Möglichkeit zum »Undo«, siehe weiter unten.
|
||
|
||
>> Bringen Sie den Cursor an den Anfang einer nicht-leeren Zeile und
|
||
geben Sie C-k ein, um die Zeile zu löschen.
|
||
|
||
>> Geben Sie C-k ein zweites Mal ein. Nun wird der Zeilenvorschub
|
||
ebenfalls entfernt.
|
||
|
||
Das letzte Beispiel zeigt, dass ein einmaliges Ausführen von C-k den
|
||
Zeileninhalt löscht, und dass ein nochmaliger C-k-Befehl die Zeile
|
||
selbst löscht. Ein numerisches Argument für C-k wird speziell
|
||
behandelt: es löscht die angegebene Anzahl von Zeilen UND die
|
||
Zeilenvorschübe: C-u 2 C-k löscht zwei Zeilen komplett; zweimal C-k
|
||
löscht dagegen nur eine Zeile.
|
||
|
||
Wie schon erwähnt, bringt C-y den zuletzt gelöschten (»gekillten«)
|
||
Text zurück -- man kann diesen Text einfügen, wo man will: an der
|
||
ursprünglichen Stelle, an einer anderen Stelle, oder sogar in einer
|
||
anderen Datei. Mehrmaliges Ausführen von C-y fügt den Text mehrmals
|
||
ein.
|
||
|
||
In anderen Editoren wird »kill« und »yank« oft als »cut«
|
||
(ausschneiden) und »paste« (einfügen) bezeichnet. Näheres dazu findet
|
||
sich im Abschnitt »Glossary« des Emacs-Handbuchs.
|
||
|
||
>> Probieren Sie jetzt C-y, um diesen Effekt zu sehen.
|
||
|
||
Führen Sie C-k mehrmals hintereinander aus, dann wird der so
|
||
gelöschte Text auf einmal gespeichert; C-y bringt dann den gesamten
|
||
Text zurück.
|
||
|
||
>> Drücken Sie mehrmals C-k.
|
||
|
||
Holen Sie jetzt den Text »von den Toten« zurück:
|
||
|
||
>> Drücken Sie C-y. Bewegen Sie dann den Cursor ein paar Zeilen nach
|
||
unten und drücken Sie C-y erneut. Der eben eingefügte Text wird
|
||
noch einmal an anderer Stelle kopiert.
|
||
|
||
Wie können Sie gelöschten Text wieder einfügen, wenn Sie in der
|
||
Zwischenzeit noch etwas anderes »gekillt« haben? C-y würde das
|
||
zuletzt gelöschte Textstück zurückholen, was aber nicht das gewünschte
|
||
ist. Verwenden Sie nun M-y (unmittelbar nach der erstmaligen
|
||
Ausführung von C-y), um den gerade mit C-y eingefügten Textteil durch
|
||
ein früher gelöschtes Textstück zu ersetzen. Durch wiederholtes
|
||
Betätigen von M-y kommen immer ältere gelöschte Textteile zum
|
||
Vorschein. Haben Sie das gewünschte gefunden, dann brauchen Sie
|
||
nichts weiter zu tun. Lassen Sie den eingefügten Text so wie er ist
|
||
und setzen Sie das Editieren fort.
|
||
|
||
Drücken Sie M-y immer weiter, dann kommen Sie irgendwann wieder an den
|
||
Anfangspunkt zurück (Emacs zeigt Ihnen dann wieder das zuletzt
|
||
gelöschte Textfragment), haben also den gesamten Löschring
|
||
durchgesehen.
|
||
|
||
>> Löschen Sie eine Zeile, bewegen Sie den Cursor zu einer anderen
|
||
Position und löschen Sie eine weitere Zeile.
|
||
Drücken Sie dann C-y, um die zweite gelöschte Zeile zurückzuholen.
|
||
Drücken Sie jetzt M-y, und die erste gelöschte Zeile erscheint
|
||
statt der zweiten.
|
||
Führen Sie nun ein paar weitere M-y-Befehle aus und beobachten Sie
|
||
das Ergebnis. Wiederholen Sie das solange, bis die zweite Zeile
|
||
wieder erscheint.
|
||
Wenn Sie wollen, dann können Sie M-y mit positiven oder negativen
|
||
Argumenten aufrufen, um direkt zu einem bestimmten Eintrag im
|
||
Löschring zu kommen.
|
||
|
||
Die meisten graphischen Oberflächen bieten auch die Möglichkeit, mit
|
||
der linken Maustaste einen Textteil zu markieren (er erscheint dann
|
||
normalerweise grau unterlegt). Der Befehl C-w löscht diesen
|
||
markierten Textteil (in Emacs auch »Region« genannt) und fügt ihn in
|
||
den Löschring ein.
|
||
|
||
Dasselbe geht auch ohne Maus: Bewegen Sie den Cursor zum Beginn des zu
|
||
löschenden Textteils, drücken Sie C-SPC, um eine Markierung für den
|
||
Beginn einer Region zu setzen, gehen Sie dann zum Ende des zu
|
||
löschenden Textes und drücken Sie C-w.
|
||
|
||
Der lange Name für C-w ist kill-region (weiter unten wird erklärt, wie
|
||
man Befehle mit langen Namen ausführen kann).
|
||
|
||
|
||
* UNDO
|
||
------
|
||
|
||
Wenn Sie etwas am Text geändert haben und nachträglich bemerken, dass
|
||
das ein Fehler war, so können Sie den Fehler mit dem Befehl C-/
|
||
ungeschehen machen (»undo«).
|
||
|
||
Normalerweise macht C-/ das Verhalten von einem Befehl ungeschehen;
|
||
führen Sie C-/ mehrmals hintereinander aus, werden die jeweiligen
|
||
vorigen Befehle widerrufen.
|
||
|
||
Es gibt jedoch zwei Ausnahmen: Befehle, die den Text nicht ändern,
|
||
werden nicht gezählt (z.B. Cursorbewegungen und Blättern im Text).
|
||
Und Befehle, die sich selbst einfügen (»self-inserting«: Drücken Sie
|
||
zum Beispiel die »u«-Taste, dann wird der Buchstabe u eingefügt)
|
||
werden in Gruppen von bis zu 20 Zeichen wiederhergestellt, um die
|
||
Anzahl der notwendigen C-/-Befehle zu reduzieren.
|
||
|
||
>> Löschen Sie diese Zeilen mit C-k und drücken Sie anschließend
|
||
mehrmals C-/, und die Zeilen erscheinen wieder.
|
||
|
||
Alternative Tastenkombinationen für C-/ sind C-_ und C-x u (in manchen
|
||
Terminals funktioniert C-_ auch ohne SHIFT-Taste). Wählen Sie das
|
||
aus, was am bequemsten für Sie zu tippen ist. Ein numerisches
|
||
Argument für C-/, C-_ oder C-x u wird als Wiederholungszähler
|
||
interpretiert.
|
||
|
||
Der Unterschied zwischen der Undo-Funktion und dem oben erklärten C-y
|
||
ist, dass erstere gelöschten Text an exakt der gleichen Position wie
|
||
vorher wiederherstellt, wohingegen C-y den gelöschten Text an der
|
||
momentanen Cursorposition einfügt. Im übrigen kann auch »gekillter«
|
||
Text wieder hergestellt werden; der Unterschied zwischen »killing« und
|
||
»yanking« betrifft nur C-y, aber nicht die Undo-Funktion.
|
||
|
||
|
||
* DATEIEN
|
||
---------
|
||
|
||
Um editierten Text zu sichern, muss man ihn in einer Datei (»file«)
|
||
speichern (»save«). Wird Emacs beendet, ohne dass man vorher den Text
|
||
gespeichert hat, dann ist der Text verloren.
|
||
|
||
Will man andererseits bereits gesicherten Text mit Emacs editieren, so
|
||
muss die entsprechende Datei in Emacs geladen werden (im Englischen
|
||
wird das als »finding« (finden) bzw. als »visiting« (besuchen)
|
||
bezeichnet).
|
||
|
||
Eine Datei »finden« bedeutet, dass man den Inhalt dieser Datei mit
|
||
Emacs bearbeitet -- es ist fast so, als ob man die Datei selbst
|
||
editiert. Jedoch werden Änderungen an dieser Datei erst dann
|
||
dauerhaft, wenn man sie speichert; auf diese Weise wird vermieden,
|
||
dass Dateien in einem halb-geänderten Zustand im Betriebssystem
|
||
bleiben. Es wird sogar die originale, unveränderte Datei unter einem
|
||
anderen Namen gesichert, falls Sie später entscheiden sollten, dass
|
||
die Änderungen ein Fehler sind.
|
||
|
||
Wenn Sie die untere Bildschirmkante genauer betrachten, dann werden
|
||
Sie eine Zeile finden, die mit einem oder mehreren Bindestrichen
|
||
beginnt und endet; sie enthält unter anderem die Zeichenkette
|
||
»TUTORIAL.de«. An dieser Position befindet sich immer der Name der
|
||
Datei, die Sie momentan bearbeiten (»visit«). Gerade in diesem
|
||
Augenblick bearbeiten Sie eine Datei mit dem Namen »TUTORIAL.de«
|
||
(genauer gesagt, Emacs hat eine identische Kopie geladen).
|
||
|
||
Die Befehle für das Laden und Speichern von Dateien bestehen aus zwei
|
||
Zeichen: Beide beginnen mit CONTROL-x. Es gibt eine ganze Reihe von
|
||
Kommandos, die mit C-x beginnen; viele von ihnen haben mit Dateien,
|
||
Puffern (s.u.) und ähnlichem zu tun. All diese Befehle sind zwei,
|
||
drei oder vier Zeichen lang -- Sie haben bereits C-x u und C-x 1
|
||
kennengelernt.
|
||
|
||
Um eine Datei in Emacs laden zu können, muss man dem Lade-Befehl den
|
||
Namen der Datei mitteilen. Der Befehl »liest ein Argument« (in diesem
|
||
Fall ist das der Name der Datei). Nachdem Sie
|
||
|
||
C-x C-f (lade Datei)
|
||
|
||
eingegeben haben, werden Sie von Emacs nach dem Dateinamen gefragt.
|
||
Die Zeichen, die Sie eingeben, werden in der untersten Bildschirmzeile
|
||
dargestellt, dem sogenannten Minipuffer (»minibuffer«). Sie können
|
||
ganz normale Emacs-Editierfunktionen verwenden, um den Dateinamen zu
|
||
ändern.
|
||
|
||
Sie können jederzeit die Eingabe (auch von anderen Befehlen, die den
|
||
Minipuffer benutzen) mit C-g abbrechen.
|
||
|
||
>> Drücken Sie C-x C-f und dann C-g. Der letzte Befehl verwirft
|
||
jegliche Eingabe im Minipuffer und bricht außerdem den Ladebefehl
|
||
ab (Sie haben also keine Datei geladen).
|
||
|
||
Wenn Sie den Dateinamen fertig eingegeben haben, drücken Sie <Return>,
|
||
um den Befehl abzuschließen. Der Minipuffer verschwindet wieder, und
|
||
C-x C-f lädt die von Ihnen ausgesuchte Datei.
|
||
|
||
Der Dateiinhalt erscheint jetzt auf dem Bildschirm, und Sie können den
|
||
Text editieren. Wenn Sie Ihre Änderungen permanent speichern wollen,
|
||
dann drücken Sie
|
||
|
||
C-x C-s (sichere Datei)
|
||
|
||
und Emacs kopiert den Text in die Datei. Beim ersten Mal benennt
|
||
Emacs die Originaldatei um, damit sie nicht verloren ist. Der neue
|
||
Name besteht aus dem Originalnamen plus einer angehängten Tilde »~«
|
||
[unter einigen Betriebssystemen wird statt dessen die
|
||
Namenserweiterung durch ».bak« ersetzt].
|
||
|
||
Emacs schreibt den Namen der gesicherten Datei in die unterste Zeile,
|
||
sobald C-x C-s fertig ausgeführt ist.
|
||
|
||
>> Geben Sie
|
||
|
||
C-x C-s TUTORIAL.de <Return>
|
||
|
||
ein, um Ihre Kopie der Einführung zu sichern. Die Ausgabe am
|
||
unteren Bildschirmrand sollte »Wrote ...TUTORIAL.de« sein.
|
||
|
||
[Manche Terminals werden durch C-s angehalten und müssen durch C-q
|
||
wieder »entsperrt« werden. Eine erste Abhilfe zur Umschiffung dieses
|
||
C-s-Problems schafft die Befehlsfolge »M-x save-buffer«, welche exakt
|
||
das gleiche wie C-x C-s bewirkt. Mehr Hilfe dazu finden Sie im
|
||
Abschnitt »Spontaneous Entry to Incremental Search« im
|
||
Emacs-Handbuch.]
|
||
|
||
Sie können eine existierende Datei anschauen (»view«) oder editieren.
|
||
Sie können aber auch eine Datei laden, die noch gar nicht existiert,
|
||
um so eine neue Datei zu erzeugen: Sie öffnen dazu die
|
||
(nicht-existente) Datei, die natürlich leer ist, und beginnen dann
|
||
einfach Text einzugeben. Wenn Sie jetzt die Datei speichern, erzeugt
|
||
Emacs wirklich die Datei und kopiert den editierten Text in sie
|
||
hinein.
|
||
|
||
|
||
* PUFFER
|
||
--------
|
||
|
||
Manche Editoren können nicht mehr als eine Datei gleichzeitig
|
||
bearbeiten. Wenn Sie jedoch eine zweite Datei in Emacs mit C-x C-f
|
||
laden, dann bleibt die erste in Emacs. Sie können zur ersten
|
||
zurückschalten, indem Sie noch einmal C-x C-f eingeben. Auf diese
|
||
Weise lassen sich eine ganze Reihe von Dateien laden und bearbeiten.
|
||
|
||
Emacs speichert jeden Text, der aus einer Datei in Emacs geladen wird,
|
||
in einem »Puffer«-Objekt. Um eine Liste der momentan existierenden
|
||
Puffer zu sehen, geben Sie
|
||
|
||
C-x C-b (liste Puffer auf)
|
||
|
||
ein.
|
||
|
||
>> Probieren Sie jetzt C-x C-b.
|
||
|
||
Beachten Sie, dass manche Puffer keine zugehörige Datei haben,
|
||
z.B. der mit dem Namen »*Buffer List*«. Er wurde von dem Befehl C-x
|
||
C-b erzeugt, um die Pufferliste darzustellen. JEDER Text, den Sie
|
||
innerhalb Emacs in einem Fenster sehen, ist immer ein Ausschnitt eines
|
||
Puffers.
|
||
|
||
>> Geben Sie jetzt C-x 1 ein, um die Pufferliste wieder verschwinden
|
||
zu lassen.
|
||
|
||
Wieviele Puffer auch in Emacs geladen sind, nur ein einziger ist der
|
||
»momentane« Puffer, nämlich derjenige, den Sie gerade editieren. Will
|
||
man einen anderen Puffer editieren, muss man zuerst zu diesem Puffer
|
||
wechseln (»switch«). Wie schon weiter oben erklärt, kann man mittels
|
||
C-x C-f zu einem Puffer wechseln, der zu einer Datei gehört. Emacs
|
||
hat jedoch einen einfacheren Befehl, C-x b, um einen beliebigen Puffer
|
||
namentlich auszuwählen.
|
||
|
||
>> Geben Sie
|
||
|
||
C-x C-f foo <Return>
|
||
|
||
ein, um eine Datei mit dem Namen »foo« zu erzeugen. Mittels
|
||
|
||
C-x b TUTORIAL.de <RETURN>
|
||
|
||
gelangen Sie wieder zu dieser Einführung.
|
||
|
||
In der Regel ist der Puffername identisch zu einem Dateinamen (ohne
|
||
den Verzeichnispräfix), jedoch nicht immer. Die von C-x C-b erzeugte
|
||
Pufferliste zeigt stets die Namen aller Puffer mit den
|
||
korrespondierenden Dateinamen.
|
||
|
||
Wie schon erwähnt, ist JEDER Text in Emacs Teil eines Puffers, aber
|
||
nicht jeder Puffer entspricht einer Datei. Auch dieser
|
||
»TUTORIAL.de«-Puffer war anfangs keiner Datei zugeordnet, jetzt
|
||
allerdings schon, denn Sie haben im letzten Abschnitt den Befehl C-x
|
||
C-s eingegeben und so den Pufferinhalt als Datei gespeichert.
|
||
|
||
Der Puffer »*Messages*« hat ebenfalls keine Entsprechung als Datei; er
|
||
enthält alle Mitteilungen, die in der untersten Zeile während des
|
||
Arbeitens mit Emacs erscheinen.
|
||
|
||
>> Geben Sie C-x b *Messages* <Return> ein, um sich den
|
||
Mitteilungspuffer anzuschauen.
|
||
Anschließend geben Sie C-x b TUTORIAL.de <Return> ein, um wieder
|
||
hierher in die Einführung zurückzukommen.
|
||
|
||
Wenn Sie Änderungen an einer Datei vornehmen und anschließend eine
|
||
andere Datei laden, dann wird die erste nicht gespeichert. Die
|
||
Änderungen bleiben in Emacs, und zwar in dem zur ersten Datei
|
||
gehörigen Puffer. Das ist sehr praktisch, bedeutet jedoch
|
||
gleichzeitig, dass man einen Befehl braucht, um den Puffer der ersten
|
||
Datei permanent abzuspeichern. Es wäre äußerst umständlich, müsste
|
||
man jedesmal C-x C-f eingeben, um den Puffer dann mit C-x C-s
|
||
abzuspeichern. Daher gibt es den Befehl
|
||
|
||
C-x s (sichere mehrere Puffer in Dateien)
|
||
|
||
Dieser Befehl fragt Sie bei jedem einer Datei zugeordneten Puffer, der
|
||
Änderungen enthält, ob Sie ihn in der Datei speichern wollen.
|
||
|
||
>> Fügen Sie eine Textzeile ein und drücken Sie dann C-x s.
|
||
Emacs fragt Sie jetzt, ob Sie einen Puffer mit dem Namen
|
||
TUTORIAL.de speichern wollen. Bejahen Sie, indem Sie »y« drücken.
|
||
|
||
[Anmerkung: Sie verändern nicht die Originaldatei, sondern eine
|
||
persönliche Kopie.]
|
||
|
||
|
||
* WEITERE BEFEHLE
|
||
-----------------
|
||
|
||
Es existieren viel mehr Emacs-Befehle als Tasten auf der Tastatur. Um
|
||
sie trotzdem alle benutzen zu können, gibt es zwei Erweiterungen:
|
||
|
||
C-x Zeichenerweiterung. Gefolgt von einem Zeichen.
|
||
M-x Befehlserweiterung. Gefolgt von einem (langen) Namen.
|
||
|
||
[Das »x« steht für das englische Wort »extension«.] Diese beiden
|
||
Befehle sind prinzipiell sehr nützlich, werden aber weniger oft
|
||
benötigt als die bisher vorgestellten. Sie haben bereits mehrere
|
||
Befehle aus der ersten Kategorie kennengelernt; unter anderem C-x C-f,
|
||
um eine Datei zu laden, und C-x C-s, um sie zu speichern. Ein
|
||
weiteres Beispiel ist C-x C-c, um Emacs zu beenden -- Sie brauchen
|
||
sich keine Gedanken zu machen, ob Sie beim Beenden von Emacs
|
||
vielleicht vergessen haben, Daten oder Text zu sichern -- Emacs fragt
|
||
bei jedem geändertem Puffer (bzw. Datei), ob er gespeichert werden
|
||
soll.
|
||
|
||
Unter graphischen Oberflächen wie X bewirkt C-z in der Regel, dass
|
||
Emacs ikonofiziert wird, also als Ikone (»Icon«) darauf wartet, mit
|
||
einem Mausklick bei Bedarf wieder vergrößert zu werden. Auf einem
|
||
Textterminal dagegen wird Emacs »suspendiert«, wenn Sie C-z drücken,
|
||
d.h., Sie kehren zurück zur Eingabezeile des Terminals, ohne Emacs zu
|
||
beenden, und können beliebige andere Befehle ausführen. In der Regel
|
||
können Sie später mittels des Befehls »fg« bzw. »%emacs« wieder zu
|
||
Emacs umschalten.
|
||
|
||
Bei Betriebssystemen bzw. Shells, die Suspension von Programmen nicht
|
||
implementiert haben (z.B. MS-DOS), startet C-z einen
|
||
System-Befehlsinterpreter innerhalb von Emacs (»subshell«).
|
||
Normalerweise müssen Sie dann »exit« in die Befehlszeile schreiben, um
|
||
zu Emacs zurückzukehren.
|
||
|
||
Der beste Zeitpunkt für C-x C-c ist, wenn Sie sich ausloggen
|
||
(bzw. Ihren Computer ausschalten); Sie sollten Emacs ebenfalls
|
||
beenden, wenn Sie Emacs von einem anderen Programm aus kurzzeitig
|
||
aufgerufen haben (z.B. einem Programm, das E-Mails liest).
|
||
|
||
Hier ist eine Liste aller C-x-Befehle, die Sie bereits kennengelernt
|
||
haben:
|
||
|
||
C-x C-f lade Datei
|
||
C-x C-s sichere Puffer in Datei
|
||
C-x s sichere einige Puffer in zugehörige Dateien
|
||
C-x C-b zeige Pufferliste an
|
||
C-x b wechsle zu Puffer
|
||
C-x C-c beende Emacs
|
||
C-x 1 lösche alle Fenster außer einem
|
||
C-x u widerrufen
|
||
|
||
Ein Beispiel für einen Befehl mit langen Namen ist replace-string, der
|
||
in der ganzen Datei bzw. Puffer eine Zeichenkette durch eine andere
|
||
ersetzt. Wenn Sie M-x drücken, dann fragt Sie Emacs in der untersten
|
||
Bildschirmzeile nach dem Namen des Befehls (in diesem Fall
|
||
»replace-string«). Geben Sie jetzt »repl s<TAB>« ein und Emacs
|
||
vervollständigt den Namen. Schließen Sie die Eingabe mit <Return> ab.
|
||
[<TAB> bezeichnet die Tabulatortaste.]
|
||
|
||
>> Bewegen Sie den Cursor zu der leeren Zeile sechs Zeilen unter
|
||
dieser. Geben Sie dann
|
||
|
||
M-x repl s <Return> Bildschirm <Return> Text <Return>
|
||
|
||
ein und kehren Sie mit C-u C-SPC an diese Position zurück.
|
||
|
||
Beachten Sie wie diese Bildschirmzeile jetzt aussieht: Sie haben
|
||
den Wortteil »Bildschirm« durch »Text« ersetzt (und zwar im
|
||
ganzen Dokument beginnend von der Cursorposition).
|
||
|
||
>> Drücken Sie jetzt C-x u, um diese Änderungen auf einmal rückgängig
|
||
zu machen.
|
||
|
||
|
||
* AUTOMATISCHES SPEICHERN
|
||
-------------------------
|
||
|
||
Haben Sie Änderungen an einem Dokument vorgenommen, sie jedoch nicht
|
||
gespeichert, dann können sie verloren gehen, falls der Computer
|
||
abstürzt. Um Sie davor zu schützen, sichert Emacs in bestimmten
|
||
Zeitintervallen jede von Ihnen editierte Datei in sogenannten
|
||
»auto save«-Dateien. Sie sind daran zu erkennen, dass sie mit einem #
|
||
beginnen und enden; z.B. ist »#hello.c#« der Name der Auto-Save-Datei
|
||
von »hello.c«. Wenn Sie Ihren Text auf normalem Wege speichern, wird
|
||
die Auto-Save-Datei gelöscht.
|
||
|
||
Stürzt der Rechner einmal wirklich ab, können Sie die Änderungen, die
|
||
beim letzten Auto-Save gespeichert worden sind, folgendermaßen
|
||
wiederherstellen: Laden Sie die Datei auf normalem Wege (die Datei,
|
||
die Sie bearbeitet haben, nicht die Auto-Save-Datei) und geben Sie
|
||
dann »M-x recover-this-file <Return>« ein. Wenn Emacs Sie um
|
||
Bestätigung fragt, antworten Sie mit »yes <Return>«, um den Inhalt der
|
||
Auto-Save-Datei zu übernehmen.
|
||
|
||
|
||
* DER ECHO-BEREICH
|
||
------------------
|
||
|
||
Geben Sie Befehle langsam ein, dann zeigt Ihnen Emacs Ihre eigene
|
||
Eingabe am unteren Bildschirmrand im sogenannten Echo-Bereich (»echo
|
||
area«). Der Echo-Bereich enthält die unterste Bildschirmzeile.
|
||
|
||
[Mini-Puffer und Echo-Bereich fallen normalerweise zusammen, sind aber
|
||
nicht das gleiche, da innerhalb des Echo-Bereiches nichts eingegeben
|
||
werden kann.]
|
||
|
||
|
||
* DIE STATUSZEILE
|
||
------------------
|
||
|
||
Die Bildschirmzeile unmittelbar über dem Echo-Bereich ist die
|
||
Statuszeile (»mode line«). Sie schaut ungefähr so aus:
|
||
|
||
-1:**- TUTORIAL.de 58% L891 (Fundamental)
|
||
|
||
Diese Zeile gibt nützliche Hinweise über den momentanen Zustand von
|
||
Emacs und den Text, den Sie gerade editieren.
|
||
|
||
Sie wissen bereits, was der Dateiname bedeutet. »NN%« zeigt die
|
||
momentane Position innerhalb des Puffertextes an: NN Prozent davon
|
||
sind oberhalb des Bildschirms. Ist der Dateianfang zu sehen, dann
|
||
erscheint »Top« anstelle von »00%«. Analog dazu erscheint »Bot« (für
|
||
das englische Wort »bottom«), wenn das Dateiende sichtbar ist. Wenn
|
||
Sie einen Puffer betrachten, der komplett auf den Bildschirm passt,
|
||
dann erscheint »All«.
|
||
|
||
Das »L« und die nachfolgenden Ziffern geben die aktuelle Zeilennummer
|
||
an, in der sich der Cursor befindet.
|
||
|
||
Am Anfang der Zeile sehen Sie »-1:**-«. Die Zeichen vor dem
|
||
Doppelpunkt geben an, in welcher Kodierung der Text ist und welche
|
||
Eingabemethode verwendet wird. Dazu mehr weiter unten im Abschnitt
|
||
»MULE«.
|
||
|
||
[Anstelle des Doppelpunktes können auch ein »\« und »/« stehen, falls
|
||
Sie Dateien editieren, die der MS-DOS- bzw. der
|
||
Macintosh-Textkonvention folgen: MS-DOS verwendet als
|
||
Zeilenvorschubzeichen CR-LF (Carriage Return gefolgt von Linefeed),
|
||
während Macintosh nur CR benutzt. Emacs verwendet standardmäßig LF.]
|
||
|
||
Die Sterne nach dem Doppelpunkt bedeuten, dass Sie Änderungen am Text
|
||
vorgenommen haben. Wenn Sie gerade eine Datei in Emacs geladen oder
|
||
gespeichert haben, dann erscheinen statt der Sterne zwei Bindestriche.
|
||
Prozentzeichen nach dem Doppelpunkt stehen für eine Datei, die nur
|
||
gelesen, aber nicht editiert werden kann.
|
||
|
||
Der eingeklammerte Teil gibt an, in welchem Editiermodus Sie sich
|
||
befinden. Der Standardmodus heißt »Fundamental« (Sie verwenden ihn
|
||
gerade); er ist ein Beispiel für einen Hauptmodus (»major mode«).
|
||
|
||
Emacs hat viele Hauptmodi implementiert. Manche davon werden für
|
||
verschiedene (Computer-)Sprachen und/oder Textarten verwendet,
|
||
z.B. Lisp-Modus, Text-Modus usw. Es kann immer nur ein Hauptmodus
|
||
aktiviert sein, und der Name befindet sich dort, wo jetzt gerade
|
||
»Fundamental« steht.
|
||
|
||
Einige Befehle verhalten sich jeweils in verschiedenen Hauptmodi
|
||
anders. Es gibt zum Beispiel einen Befehl, um einen Kommentar in den
|
||
Quellcode eines Computerprogramm einzufügen -- die Tastenfolge dafür
|
||
ist zwar (in der Regel) die gleiche, doch wird ein Kommentar mit der
|
||
für die aktuelle Programmiersprache gültigen Syntax eingefügt
|
||
(z.B. »// ...« für ein Programm in C++ oder »; ...« für Lisp). Um in
|
||
einen Hauptmodus zu schalten, hängen Sie einfach das englische Wort
|
||
»-mode« an den (kleingeschriebenen) Namen des Modus an und führen den
|
||
Befehl mittels M-x aus. Beispiel: »M-x fundamental-mode« schaltet in
|
||
den Fundamental-Modus. Weitere wichtige Modi sind c-mode, perl-mode,
|
||
lisp-mode, text-mode u.a. Die meisten davon werden automatisch
|
||
aktiviert, und zwar entsprechend der Namenserweiterung der zu ladenden
|
||
Datei: So wird z.B. durch das Laden der Datei foo.c automatisch der
|
||
C-Modus aktiviert.
|
||
|
||
Wenn Sie deutschen oder englischen Text bearbeiten, dann sollten Sie
|
||
den Textmodus verwenden. [Falls Ihre Tastatur keine Umlaut-Tasten
|
||
hat, müssen Sie noch einen weiteren Nebenmodus aktivieren. Lesen Sie
|
||
dazu den Abschnitt »MULE« weiter unten.]
|
||
|
||
>> Geben Sie »M-x text-mode <Return>« ein.
|
||
|
||
Sie brauchen keine Angst zu haben, dass sich die bisher dargestellte
|
||
Tastaturbelegung von Emacs stark ändert. Beobachten Sie z.B. die
|
||
Befehle M-f und M-b: Apostrophe werden nun als Teil eines Wortes
|
||
betrachtet (wie man's leicht an diesem Beispiel ausprobieren kann),
|
||
wohingegen im Fundamentalmodus Apostrophe als Worttrenner
|
||
(»word-separator«) behandelt werden.
|
||
|
||
Normalerweise ist das eben genannte Beispiel die Methode von
|
||
Hauptmodi: Die meisten Befehle tun »das gleiche«, arbeiten aber
|
||
jeweils ein bisschen anders.
|
||
|
||
Dokumentation zum derzeit aktuellen Hauptmodus bekommen Sie mit C-h m.
|
||
|
||
>> Bewegen Sie den Cursor zur nächsten Zeile.
|
||
>> Drücken Sie C-l C-l, um diese Zeile an den oberen Bildschirmrand zu
|
||
bringen.
|
||
>> Lesen Sie nun mittels C-h m die englische Dokumentation zum
|
||
Textmodus.
|
||
>> Entfernen Sie schließlich das Dokumentationsfenster mit C-x 1.
|
||
|
||
Neben den Hauptmodi gibt es auch Nebenmodi (»minor modes«). Nebenmodi
|
||
sind keine Alternativen zu Hauptmodi, sondern stellen Ergänzungen zur
|
||
Verfügung, die (normalerweise) in allen Hauptmodi funktionieren
|
||
(z.B. der Überschreibmodus: Zeichen werden nicht eingefügt, sondern
|
||
überschreiben den Text). Man kann Nebenmodi ein- und ausschalten
|
||
unabhängig von anderen Nebenmodi und Hauptmodi; mit anderen Worten,
|
||
Sie können zu Ihrem Hauptmodus keinen, einen oder sogar mehrere
|
||
Nebenmodi haben.
|
||
|
||
Ein Nebenmodus, welcher äußerst nützlich ist, besonders für das
|
||
Editieren von Text, ist der automatische Zeilenumbruch (»Auto Fill
|
||
mode«). Ist dieser Modus aktiviert, dann bricht Emacs die laufende
|
||
Zeile selbsttätig zwischen Wörtern um, sobald sie zu lang wird.
|
||
|
||
Sie können den Zeilenumbruchmodus mittels »M-x auto-fill-mode
|
||
<Return>« einschalten. Wenn der Modus aktiviert ist, können Sie ihn
|
||
mit dem gleichen Befehl wieder ausschalten. Mit anderen Worten, der
|
||
Befehl verhält sich wie ein Lichttaster, der bei Betätigung entweder
|
||
das Licht ein- oder ausschaltet, je nachdem, ob das Licht vorher
|
||
ausgeschaltet bzw. eingeschaltet war. Wir sagen, dass dieser Befehl
|
||
den Modus umschaltet (»toggle«).
|
||
|
||
>> Geben Sie nun M-x auto-fill-mode <Return> ein. Fügen Sie
|
||
anschließend eine Zeile ein, die aus lauter »asdf « besteht, und
|
||
zwar so lange, bis die Zeile automatisch umgebrochen wird.
|
||
Vergessen Sie nicht, Leerzeichen einzugeben, da nur dort ein
|
||
Umbruch erfolgt.
|
||
|
||
Normalerweise ist die maximale Zeilenlänge 70 Zeichen (d.h., der linke
|
||
Rand ist ganz links auf Position 1 und der rechte Rand auf
|
||
Position 70), jedoch können Sie das mit dem Befehl C-x f ändern.
|
||
Geben Sie den neuen (rechten) Rand als numerischen Parameter ein.
|
||
|
||
>> Geben Sie C-x mit dem Argument 20 ein (C-u 2 0 C-x f). Schreiben
|
||
Sie nun etwas Text und beobachten Sie, wie Emacs die laufende Zeile
|
||
an Position 20 umbricht. Setzen Sie anschließend den Rand wieder
|
||
zurück auf 70 mit dem gleichen Befehl.
|
||
|
||
Machen Sie Änderungen in der Mitte eines Absatzes, dann reformatiert
|
||
der Zeilenfüllmodus nicht automatisch den Absatz.
|
||
Verwenden Sie dafür den Befehl M-q, wobei der Cursor innerhalb des
|
||
Absatzes stehen muss.
|
||
|
||
>> Bewegen Sie den Cursor zurück zum letzten Absatz und drücken Sie
|
||
M-q.
|
||
|
||
|
||
* SUCHEN
|
||
--------
|
||
|
||
Emacs kann Zeichenketten (»strings«, eine Folge von zusammenhängenden
|
||
Zeichen) entweder in Richtung Pufferende (vorwärts, »forward«) oder in
|
||
Richtung Pufferanfang (rückwärts, »backward«) suchen. Gleichzeitig
|
||
wird der Cursor an die nächste Stelle bewegt, wo diese Zeichenkette
|
||
erscheint.
|
||
|
||
Die Standard-Suchoperation von Emacs ist inkrementelles Suchen, d.h.,
|
||
die Suche beginnt dann, wenn Sie die Zeichen eingeben.
|
||
|
||
Der Befehl für Vorwärtssuchen ist C-s und C-r für Rückwärtssuchen.
|
||
ABER HALT! Probieren Sie bitte diese Befehle noch nicht.
|
||
|
||
Wenn Sie C-s eingeben, dann erscheint die Zeichenkette »I-search:« als
|
||
Eingabeaufforderung im Echobereich. Das bedeutet, dass Emacs jetzt
|
||
eine inkrementellen Suche ausführt und darauf wartet, dass Sie die zu
|
||
suchende Zeichenkette eingeben. <Return> beendet die Suche.
|
||
|
||
>> Geben Sie jetzt C-s ein, um einen Suchvorgang zu starten. Schreiben
|
||
Sie LANGSAM, einen Buchstaben nach dem anderen, das Wort »Cursor«,
|
||
und warten Sie jeweils ab, was mit dem Cursor passiert. Sie haben
|
||
jetzt das Wort »Cursor« einmal gefunden.
|
||
>> Drücken Sie C-s noch einmal, um die nächste Stelle zu suchen, wo das
|
||
Wort »Cursor« vorkommt.
|
||
>> Drücken Sie nun <DEL> viermal und beobachten Sie, wie der Cursor
|
||
zurückspringt.
|
||
>> Beenden Sie die Suche mit <Return>.
|
||
|
||
Verstehen Sie, was gerade vorgegangen ist? Emacs versucht während
|
||
einer inkrementellen Suche zu der Stelle zu gehen, wo die Zeichenkette
|
||
steht, die Sie bis jetzt eingegeben haben. Um die darauffolgende
|
||
Position zu suchen, wo »Cursor« steht, genügt es, noch einmal C-s zu
|
||
betätigen. Wenn es keine nächste Position gibt, dann ertönt ein
|
||
kurzer Ton, und Emacs sagt Ihnen, dass die Suche im Augenblick
|
||
fehlschlägt (»failing«). C-g beendet ebenfalls einen Suchvorgang.
|
||
|
||
Wenn Sie sich mitten in einer inkrementellen Suche befinden und
|
||
<DEL> drücken, wird das letzte Zeichen im Suchstring gelöscht, und
|
||
der Cursor springt zurück auf die letzte Suchposition. Angenommen,
|
||
Sie haben »c« eingegeben, um das erste Auftreten von »c« zu suchen.
|
||
Geben Sie jetzt »u« ein, dann springt der Cursor zu dem ersten
|
||
Auftreten der Zeichenkette »cu«. Wenn Sie jetzt mit <DEL> das »u«
|
||
vom Suchstring löschen, dann springt der Cursor zurück zum ersten »c«.
|
||
Drücken Sie dagegen ein paar mal C-s, um weitere »cu«-Zeichenketten zu
|
||
finden, dann bewirkt <DEL>, dass Sie zum letzten Auftreten von »cu«
|
||
zurückspringen, und erst wenn es kein weiteres »cu« mehr gibt, springt
|
||
der Cursor zum ersten »c« zurück.
|
||
|
||
Die Suche wird ebenfalls beendet, wenn Sie ein CONTROL- oder
|
||
META-Zeichen eingeben (mit ein paar Ausnahmen -- Zeichen, die bei
|
||
einer Suche speziell gehandhabt werden wie C-s oder C-r).
|
||
|
||
C-s versucht, die Zeichenkette NACH der aktuellen Cursorposition zu
|
||
finden. Wollen Sie etwas davor suchen, müssen Sie C-r verwenden. Das
|
||
oben Gesagte gilt völlig analog, jedoch in die entgegengesetzte
|
||
Suchrichtung.
|
||
|
||
|
||
* MEHRFACHE FENSTER
|
||
-------------------
|
||
|
||
Eine weitere, nützliche Fähigkeit von Emacs ist die Möglichkeit, mehr
|
||
als ein Fenster zur gleichen Zeit auf dem Bildschirm darzustellen.
|
||
|
||
[Der Unterschied zu graphischen Fenstern im herkömmlichen Sinn
|
||
(»frame« in der Emacs-Terminologie) wurde bereits weiter oben
|
||
besprochen.]
|
||
|
||
>> Bewegen Sie den Cursor zu dieser Zeile und geben Sie C-l C-l ein.
|
||
|
||
>> Drücken Sie nun C-x 2, um den Bildschirm in zwei Fenster zu teilen.
|
||
Beide Fenster zeigen diese Einführung an, und der Cursor bleibt im
|
||
oberen.
|
||
|
||
>> Verwenden Sie C-M-v, um im unteren Fenster zu blättern (Sie können
|
||
statt dessen auch ESC C-v verwenden, falls Sie keine META-Taste
|
||
haben; siehe auch weiter unten).
|
||
|
||
>> Mittels C-x o (das »o« steht für das englische Wort »other«, »das
|
||
andere«) können Sie den Cursor in das untere Fenster bewegen.
|
||
|
||
>> Benützen Sie C-v und M-v, um im unteren Fenster zu blättern. Lesen
|
||
Sie die Emacs-Einführung jedoch im oberen Fenster weiter.
|
||
|
||
>> Geben Sie C-x o nochmals ein, und der Cursor ist wieder im oberen
|
||
Fenster, genau an der Stelle, wo er vorher war.
|
||
|
||
C-x o ist der Befehl, um zwischen (Emacs-)Fenstern hin- und
|
||
herzuschalten. Jedes Fenster hat eine eigene Cursorposition, aber nur
|
||
das aktuelle Fenster zeigt den Cursor an (auf einer graphischen
|
||
Oberfläche wird die nicht-aktuelle Cursorposition durch ein leeres
|
||
Rechteck dargestellt). Alle normalen Editierbefehle betreffen das
|
||
Fenster, in dem sich der Cursor befindet. Wir nennen dieses Fenster
|
||
»ausgewählt« (»selected window«).
|
||
|
||
Der Befehl C-M-v ist sehr nützlich, wenn man Text in einem Fenster
|
||
editiert und das andere Fenster als Referenz verwendet. Ohne das
|
||
momentante Arbeitsfenster verlassen zu müssen, kann man mit C-M-v im
|
||
anderen Fenster bequem vorwärtsblättern.
|
||
|
||
C-M-v ist ein Beispiel eines CONTROL-META-Zeichens. Haben Sie eine
|
||
META-Taste, dann kann man C-M-v erzeugen, indem man CTRL und META
|
||
gleichzeitig niedergedrückt hält, während man v eintippt. Es ist
|
||
egal, ob zuerst CTRL oder META niedergedrückt wird, da beide Tasten
|
||
gleichberechtigt das jeweils einzugebende Zeichen modifizieren.
|
||
|
||
Haben Sie keine META-Taste, und Sie verwenden stattdessen ESC, dann
|
||
ist die Reihenfolge nicht mehr egal: Sie müssen zuerst ESC drücken,
|
||
gefolgt von CTRL-v. CTRL-ESC v funktioniert nicht! Der Grund dafür
|
||
ist, dass ESC ein eigenes Zeichen ist und keine Modifizier-Taste wie
|
||
META oder CTRL.
|
||
|
||
Der umgekehrte Befehl zu C-M-v ist C-M-S-v, um im anderen Fenster
|
||
rückwärts zu blättern (d.h., Sie müssen die CONTROL-Taste sowie die
|
||
META- und SHIFT-Taste zusammen mit »v« betätigen) -- jetzt werden Sie
|
||
wahrscheinlich verstehen, warum manche Kritiker das Wort Emacs als
|
||
Abkürzung von Escape-Meta-Alt-Control-Shift betrachten. Leider
|
||
funktioniert diese Befehlsfolge normalerweise nur mit graphischen
|
||
Oberflächen, da C-v von C-S-v auf den meisten Textterminals nicht
|
||
unterschieden werden kann.
|
||
|
||
[Auf graphischen Oberflächen kann man außerdem in der Regel mit den
|
||
bequemeren Tastenkombinationen META-»Bild mit Aufwärtspfeil«
|
||
bzw. META-»Bild mit Abwärtspfeil« ebenfalls im anderen Fenster rück-
|
||
bzw. vorwärts blättern.]
|
||
|
||
>> Entfernen Sie mit C-x 1 (eingegeben im oberen Fenster) das untere
|
||
Fenster.
|
||
|
||
(Hätten Sie C-x 1 im unteren Fenster eingegeben, dann wäre das obere
|
||
Fenster geschlossen worden -- eine Eselsbrücke für C-x 1 ist »ich will
|
||
nur das *eine* Fenster, in dem ich mich gerade befinde.«)
|
||
|
||
Sie müssen nicht den gleichen Puffer in beiden Fenstern darstellen.
|
||
Wenn Sie C-x C-f verwenden, um in einem Fenster eine Datei zu laden,
|
||
dann bleibt das andere Fenster unverändert. Sie können in jedem
|
||
Fenster eine andere Datei anzeigen lassen, unabhängig vom anderen
|
||
Fenster.
|
||
|
||
Hier eine andere Möglichkeit, in zwei Fenstern zwei verschiedene
|
||
Texte darzustellen:
|
||
|
||
>> Geben Sie C-x 4 C-f ein, gefolgt vom Namen einer Ihrer Dateien.
|
||
Schließen Sie ab mit <Return>. Beobachten Sie, wie die
|
||
spezifizierte Datei im unteren Fenster erscheint. Der Cursor
|
||
springt ebenfalls in das untere Fenster.
|
||
|
||
>> Bewegen Sie den Cursor mittels C-x o in das obere Fenster und geben
|
||
Sie C-x 1 ein, um das untere Fenster zu schließen.
|
||
|
||
|
||
* MEHRFACHE RAHMEN
|
||
------------------
|
||
|
||
Emacs kann auch mehrfache Rahmen erzeugen, sobald das Programm auf
|
||
einer graphischen Oberfläche ausgeführt wird. In der
|
||
Emacs-Terminologie bezeichnet ein »Rahmen« eine Gruppe von Fenstern,
|
||
gemeinsam mit deren Menus, Scrollbars, Echo-Bereichen, usw. Auf einem
|
||
Textterminal kann genau ein Rahmen dargestellt werden.
|
||
|
||
>> Geben Sie
|
||
|
||
C-x 5 2
|
||
|
||
ein, um einen neuen Rahmen zu erzeugen.
|
||
|
||
Alles, was Sie im ursprünglichen, ersten Rahmen tun können,
|
||
funktioniert genauso im neuen Rahmen. Beide Rahmen sind also völlig
|
||
gleichwertig.
|
||
|
||
>> Geben Sie
|
||
|
||
C-x 5 0
|
||
|
||
ein, um den ausgewählten Rahmen zu entfernen.
|
||
|
||
Ein Rahmen kann auch mit der normalen Methode der graphischen
|
||
Oberfläche entfernt werden; meistens gibt es dafür einen Knopf mit
|
||
einem »X« in der linken oder rechten oberen Ecke des Rahmens. Wird
|
||
der letzte Rahmen geschlossen, beendet man Emacs, wie erwartet.
|
||
|
||
|
||
* REKURSIVE EDITIER-EBENEN
|
||
--------------------------
|
||
|
||
Manchmal kann es passieren, dass Sie in eine sogenannte rekursive
|
||
Editier-Ebene geraten (»recursive editing level«). Sie können das an
|
||
den eckigen Klammern in der Statuszeile erkennen, welche den
|
||
derzeitigen Hauptmodus zusätzlich umschließen, z.B. [(Fundamental)]
|
||
anstelle von (Fundamental).
|
||
|
||
Um eine rekursive Editier-Ebene zu verlassen, geben Sie ESC ESC ESC
|
||
ein. Diese Tastenkombination ist ein allgemeiner
|
||
Ich-will-hier-raus-Befehl. Sie können ihn auch verwenden, um
|
||
unerwünschte Fenster zu schließen und den Minipuffer zu verlassen.
|
||
|
||
>> Geben Sie M-x ein, um in den Minipuffer zu gelangen, und tippen Sie
|
||
dann ESC ESC ESC, um ihn wieder zu verlassen.
|
||
|
||
Mit C-g kann man eine rekursive Editier-Ebene nicht verlassen, da C-g
|
||
Befehle INNERHALB einer rekursiven Editier-Ebene stoppt.
|
||
|
||
Rekursive Editier-Ebenen sind hier in dieser Einführung nicht weiter
|
||
dargestellt. Details finden Sie im Emacs-Handbuch beschrieben.
|
||
|
||
|
||
* MULE
|
||
------
|
||
|
||
Mule ist die Abkürzung für »Multi-lingual Enhancement to GNU Emacs«.
|
||
Früher wurde damit eine spezielle Emacs-Variante bezeichnet, die
|
||
allerdings seit der Version 20 mit Emacs verschmolzen ist.
|
||
|
||
Emacs unterstützt eine große Anzahl von internationalen Zeichensätzen,
|
||
z.B. verschiedene europäische Varianten des lateinischen Alphabets,
|
||
Chinesisch, Russisch oder Thai, um nur einige zu nennen. In dieser
|
||
Einführung wird jedoch nur auf Unicode und Latin-1 sowie
|
||
Eingabemöglichkeiten für Deutsch näher eingegangen.
|
||
|
||
Lesen Sie im Emacs-Handbuch unter dem Stichwort »International« nach,
|
||
welche weitere Optionen es bezüglich Zeichensätze gibt.
|
||
|
||
Die Standard-Zeichensätze für Deutsch sind Latin-1 (auch bekannt unter
|
||
dem Namen ISO-8859-1) und Unicode -- und da besonders dessen
|
||
Kodierungsvariante UTF-8. Werden anstelle der deutschen Umlaute
|
||
unansehnliche Konstrukte wie »\374« dargestellt, hat Emacs die
|
||
Kodierung nicht richtig erkannt. Sie können die Anwendung einer
|
||
Kodierung auf einen Befehl erzwingen, indem Sie diesen mit der Sequenz
|
||
»C-x <Return> c KODIERUNG« einleiten. Das Laden einer Datei »foo« mit
|
||
der Kodierung »UTF-8« ist beispielsweise
|
||
|
||
C-x <Return> c utf-8 <Return> C-x C-f foo
|
||
|
||
Ist die Sprachumgebung (»locale«) Ihres Betriebssystems korrekt auf
|
||
Deutsch gesetzt, verwendet Emacs diese Einstellungen automatisch
|
||
(inklusive einer Standard-Kodierung). Wollen Sie andere Einstellungen
|
||
verwenden, geben Sie »C-x <Return> l« ein (ein Tastenkürzel für die
|
||
Funktion set-language-environment). Mittels
|
||
|
||
C-x <Return> l latin-1 <Return>
|
||
|
||
können Sie z.B. in einer laufenden Emacs-Sitzung auf Latin-1
|
||
umschalten. Dadurch wird erreicht, dass Emacs beim Laden einer
|
||
Datei (und Speichern derselben) standardmäßig die
|
||
Latin-1-Zeichenkodierung verwendet. Sie können an der Ziffer 1
|
||
unmittelbar vor dem Doppelpunkt links unten in der Statuszeile
|
||
erkennen, dass Sie Latin-1 aktiviert haben. Beachten Sie allerdings,
|
||
dass set-language-environment keinen Einfluss auf die Kodierung
|
||
bereits existierender Puffer hat!
|
||
|
||
>> Führen Sie jetzt C-x <Return> l latin-1 <Return> aus und öffnen Sie
|
||
anschließend eine (neue) Datei mit dem Namen »bar« in einem anderen
|
||
Fenster mittels C-x 4 C-f bar <Return>. In der Statuszeile des
|
||
zweiten Fensters sehen Sie die Ziffer 1 unmittelbar vor dem
|
||
Doppelpunkt.
|
||
|
||
>> Schließen Sie das soeben geöffnete Fenster mit C-x 1 wieder.
|
||
|
||
Wie können Sie nun deutsche Umlaute eingeben? Es gibt prinzipiell
|
||
zwei unterschiedliche Fälle: Sie besitzen eine deutsche Tastatur mit
|
||
Tasten für die Umlaute oder Sie haben eine nicht-deutsche Tastatur.
|
||
Im ersteren Fall sollten Sie die Eingabemethode »german« auswählen,
|
||
welche direkt die Umlaute auf die entsprechenden Tasten abbildet. Im
|
||
letzteren Fall gibt es mehrere Möglichkeiten, wovon zwei hier erklärt
|
||
werden sollen, nämlich »latin-1-prefix« und »latin-1-postfix«. Die
|
||
Präfix-Methode erwartet zuerst den Akzent und dann den Basisbuchstaben
|
||
('a wird zu á, "s zu ß etc.), während bei der Postfix-Methode zuerst
|
||
der Basisbuchstabe und dann der Akzent einzugeben ist (a" wird zu ä,
|
||
s/ wird zu ß etc).
|
||
|
||
Aktiviert wird die jeweilige Eingabe mit dem Befehl
|
||
|
||
C-u C-\ Eingabemethode <Return>
|
||
|
||
(z.B. C-u C-\ german <Return>). Durch diese Befehlsfolge wird der
|
||
sogenannte Quail-Nebenmodus aktiviert, was sich durch eine kleine
|
||
Veränderung in der Statuszeile zeigt: Durch zwei oder drei Zeichen
|
||
unmittelbar vor der Pufferkodierung wird die aktuelle Eingabemethode
|
||
angezeigt. Ist der Eingabemodus einmal gewählt, kann man mit C-\ ihn
|
||
ein- und ausschalten.
|
||
|
||
>> Geben Sie C-u C-\ latin-1-postfix <Return> ein. Beobachten Sie,
|
||
wie links unten in der Statuszeile die Anzeige von »1:**-« auf
|
||
»1<1:**-« springt. Probieren Sie ä einzugeben mittels a".
|
||
|
||
>> Deaktivieren Sie den Eingabemodus wieder mit C-\.
|
||
|
||
Folgende Kürzel in der Statuszeile repräsentieren die eben
|
||
beschriebenen Eingabemethoden:
|
||
|
||
DE@ german
|
||
1< latin-1-postfix
|
||
1> latin-1-prefix
|
||
|
||
So bedeutet die Angabe »DE@1:**-«, dass Sie die Eingabemethode
|
||
»german« in einem Puffer mit Latin-1-Kodierung verwenden, und dass die
|
||
Datei bereits modifiziert wurde.
|
||
|
||
[Arbeitet Emacs in einem Terminal, werden noch zwei zusätzliche
|
||
Spalten zwischen Eingabemethode und Pufferkodierung eingefügt, und
|
||
zwar für die Tastatur- und Bildschirmkodierung.]
|
||
|
||
|
||
* WEITERE DOKUMENTATION VON EMACS
|
||
---------------------------------
|
||
|
||
Wir haben uns bemüht, in dieser Einführung genau soviel Information zu
|
||
geben, dass Sie beginnen können, mit Emacs zu arbeiten. Emacs ist
|
||
jedoch so mächtig und umfangreich, dass es den Rahmen einer Einführung
|
||
sprengte, an dieser Stelle mehr zu erklären. Um Sie im weiteren
|
||
Lernverlauf zu unterstützen, stellt Emacs eine Reihe von
|
||
Hilfe-Funktionen zu Verfügung, die alle mit dem Präfix C-h (dem
|
||
Hilfe-Zeichen, »Help character«) beginnen.
|
||
|
||
Nach dem Drücken von C-h geben Sie ein weiteres Zeichen ein, um Emacs
|
||
zu sagen, worüber Sie mehr Informationen brauchen. Sollten Sie
|
||
WIRKLICH verloren sein, geben Sie C-h ? ein, und Emacs sagt Ihnen,
|
||
welche Art von Hilfe er Ihnen zu Verfügung stellen kann. Haben Sie
|
||
C-h versehentlich gedrückt, können Sie mit C-g sofort abbrechen.
|
||
|
||
(Alternativen zu C-h sind die F1-Taste und der lange Befehl M-x help
|
||
<Return>.)
|
||
|
||
Die elementarste Hilfestellung gibt C-h c. Drücken Sie C-h, dann das
|
||
Zeichen c, und dann einen Befehl: Emacs zeigt daraufhin eine kurze
|
||
Beschreibung des Befehls an.
|
||
|
||
>> Geben Sie C-h c C-p ein.
|
||
Die Antwort darauf (im Echo-Bereich) sollte so ähnlich sein wie
|
||
|
||
C-p runs the command previous-line
|
||
|
||
Somit wissen Sie den »Namen der Funktion«. Da Namen in der Regel
|
||
beschreiben, was die jeweilige Funktion tut, können sie auch als sehr
|
||
kurze Beschreibung dienen -- ausreichend, um Sie an Befehle zu
|
||
erinnern, die Sie bereits gelernt haben.
|
||
|
||
Aus mehr als einem Zeichen bestehende Befehle, z.B. C-x C-s oder
|
||
<ESC>v, sind ebenfalls erlaubt nach C-h c.
|
||
|
||
Um eine detaillierte Dokumentation eines Befehls zu erhalten,
|
||
verwenden Sie C-h k anstelle von C-h c.
|
||
|
||
>> Geben Sie C-h k C-p ein.
|
||
|
||
Diese Befehlsfolge zeigt die komplette Dokumentation des Befehls an
|
||
zusammen mit seinem Namen, und zwar in einem eigenem Fenster. Wenn
|
||
Sie die Beschreibung gelesen haben, benützen Sie am besten C-x 1, um
|
||
das Hilfe-Fenster wieder zu schließen. Sie müssen das nicht sofort
|
||
tun -- Sie können weiter Text editieren und das Fenster schließen,
|
||
wenn Sie es nicht mehr brauchen.
|
||
|
||
Hier einige weitere nützliche Optionen von C-h:
|
||
|
||
C-h f Beschreibt eine Funktion. Sie müssen den Namen der
|
||
Funktion eingeben.
|
||
|
||
>> Probieren Sie C-h f previous-line <Return>.
|
||
Alle Information über den C-p-Befehl wird angezeigt.
|
||
|
||
Sie können die Tabulator-Taste stets benützen, um den Namen des
|
||
jeweiligen Befehls zu vervollständigen. Geben Sie z.B. »C-h f
|
||
previous<TAB>« ein, dann werden alle Befehle angezeigt, deren Namen
|
||
mit »previous-« beginnen. Ergänzen Sie die Zeichenkette auf
|
||
»previous-l« und drücken Sie dann <TAB>, bleibt nur noch der Befehl
|
||
»previous-line« übrig, und Sie können mit <Return> abschließen.
|
||
|
||
Ein ähnlicher Befehl ist C-h v. Er zeigt den Wert und die
|
||
Dokumentation von Variablen, deren Werte man ändern kann (um
|
||
beispielsweise Emacs an persönliche Bedürfnisse anzupassen). Auch
|
||
hier kann man die Tabulator-Taste zur Vervollständigung benutzen.
|
||
|
||
C-h a Ein Befehls-Apropos. Gibt man ein Schlüsselwort ein,
|
||
zeigt Emacs alle Befehle, die dieses Schlüsselwort
|
||
enthalten. Alle angezeigten Befehle können mit M-x
|
||
aufgerufen werden. Für einige Kommandos wird
|
||
zusätzlich eine Zeichensequenz (meistens bestehend aus
|
||
einem oder zwei Zeichen) aufgelistet, welche den
|
||
gleichen Befehl startet.
|
||
|
||
>> Geben Sie C-h a file <Return> ein.
|
||
|
||
Alle M-x-Befehle, die das Wort »file« in ihrem Namen enthalten, werden
|
||
angezeigt. Beachten Sie, dass auch C-x C-f aufgelistet wird neben dem
|
||
zugehörigen langen Namen, find-file.
|
||
|
||
>> Blättern Sie mit C-M-v, um sich die Liste der Funktionen anzusehen.
|
||
|
||
>> Schließen Sie das Hilfefenster mit C-x 1.
|
||
|
||
C-h i Dieser Befehl öffnet einen speziellen Puffer »*info*«,
|
||
um Handbücher zu lesen (im »Info«-Format), die auf dem
|
||
verwendeten Computersystem installiert sind. Geben
|
||
Sie z.B. m emacs <Return> ein, um das Emacs-Handbuch
|
||
zu lesen. Haben Sie »Info« noch nie benutzt, tippen
|
||
Sie h, und Emacs führt Sie Schritt für Schritt durch
|
||
die Möglichkeiten des Info-Modus. Wenn Sie diese
|
||
Einführung fertiggelesen haben, sollten Sie das
|
||
Info-Handbuch für Emacs als primäre Dokumentation
|
||
benutzen.
|
||
|
||
|
||
* MEHR FEATURES
|
||
---------------
|
||
|
||
Sie können mehr über Emacs lernen, in dem Sie das Handbuch lesen,
|
||
entweder in der gedruckten Form oder innerhalb von Emacs (benützen Sie
|
||
dazu das Hilfe-Menu oder tippen Sie C-h r). Zwei besonders nützliche
|
||
Features sind Vervollständigung, um weniger tippen zu müssen, und
|
||
Dired, um das Laden von Dateien zu vereinfachen.
|
||
|
||
Das Vervollständigungs-Feature ist eine Methode, um unnötiges Eingeben
|
||
von Zeichen zu vermeiden. Wenn Sie beispielsweise zum
|
||
»*Messages*«-Puffer umschalten wollen, genügt C-x b *M<TAB>, und Emacs
|
||
ergänzt automatisch den Namen des Puffers, soweit das anhand der
|
||
bisherigen Eingabe möglich ist. Vervollständigung funktioniert auch
|
||
für Befehls- und Dateinamen. Eine genaue Beschreibung finden Sie im
|
||
Abschnitt »Completion« des Emacs-Handbuchs.
|
||
|
||
Dired ermöglicht es, Dateien eines Verzeichnisses (auf Wunsch
|
||
inklusive seiner Unterverzeichnisse) aufzulisten, sich innerhalb der
|
||
Liste zu bewegen, Dateien zu besuchen, umzubenennen, zu löschen u.a.
|
||
Eine genaue Beschreibung finden Sie im Abschnitt »Dired« des
|
||
Emacs-Handbuchs.
|
||
|
||
Viele weitere Features sind ebenfalls im Handbuch beschrieben.
|
||
|
||
|
||
* SCHLUSSBEMERKUNG
|
||
------------------
|
||
|
||
Das Wichtigste: Emacs wird mit C-x C-c beendet.
|
||
|
||
Diese Einführung soll für alle neuen Benutzer von Emacs verständlich
|
||
sein. Wenn daher etwas unklar sein sollte, hadern Sie nicht mit sich
|
||
selbst. Schreiben Sie an die Free Software Foundation, den Autor oder
|
||
den Übersetzer und erläutern Sie, was für Sie unklar geblieben ist.
|
||
|
||
|
||
* RECHTLICHES
|
||
-------------
|
||
|
||
Die englische Version dieser Einführung hat eine lange Vorgeschichte.
|
||
Stuart Cracraft hat für die Urversion von Emacs das erste Tutorial
|
||
geschrieben. Übersetzer ins Deutsche ist Werner Lemberg (wl@gnu.org).
|
||
|
||
Beachten Sie bitte, dass im Zweifelsfalle das englische Original
|
||
dieser Urheberrechtsnotiz gültig ist (zu finden in der Datei
|
||
TUTORIAL).
|
||
|
||
Copyright (C) 1985, 1996-1997, 2001-2022 Free Software Foundation,
|
||
Inc.
|
||
|
||
Diese Datei ist ein Bestandteil von GNU Emacs.
|
||
|
||
Hiermit wird für jedermann die Erlaubnis erteilt, wörtliche,
|
||
unveränderte Kopien dieses Dokumentes für jegliches Medium zu
|
||
erstellen, unter der Voraussetzung, dass die Copyright-Notiz sowie
|
||
diese Erlaubnis beibehalten werden. Außerdem muss der Verteiler
|
||
dieses Dokuments den Empfängern die gleichen Rechte einräumen,
|
||
welche durch diese Erlaubnis gegeben sind.
|
||
|
||
Zugleich wird die Erlaubnis erteilt, modifizierte Versionen dieses
|
||
Dokuments, oder Teile davon, zu verteilen, und zwar zu den oben
|
||
gegebenen Bedingungen unter der Voraussetzung, dass eindeutig zu
|
||
erkennen ist, wer zuletzt dieses Dokument verändert hat.
|
||
|
||
Die Vervielfältigungsbedingungen für Emacs selbst sind etwas
|
||
komplexer, folgen aber in etwa den gleichen Richtlinien. Lesen Sie
|
||
bitte die Datei COPYING und geben Sie Emacs an Ihre Freunde weiter!
|
||
Helfen Sie mit, die Idee von freier Software zu propagieren, indem Sie
|
||
freie Software verwenden, verteilen, oder sogar selber schreiben.
|
||
|
||
--- end of TUTORIAL.de ---
|
||
|
||
;;; Local Variables:
|
||
;;; coding: utf-8
|
||
;;; End:
|