Emacs: Unterschied zwischen den Versionen

Aus Physik
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
==Vorbemerkungen==
 
==Vorbemerkungen==
Der Emacs ist unter Linux (einer) der wichtigste(n) Editor(en). Für Neulinge
+
Der EMACS ist unter Linux (einer) der wichtigste(n) Editor(en). Für
ist er nicht unbedingt auf Anhieb problemlos bedienbar. Dies liegt vor
+
Neulinge ist er nicht unbedingt auf Anhieb problemlos bedienbar. Dies
allem daran, dass er im Gegensatz zu bekannten Computerprogrammen
+
liegt vor allem daran, dass er im Gegensatz zu bekannten
andere Konzepte verfolgt. Ein wichtiger Punkt ist, dass
+
Computerprogrammen andere Konzepte verfolgt, und im Zusammenhang mit
  +
EMACS ungewohnte Begriffe für an sich Bekanntes verwendet werden (Siehe
der Emacs sehr stark auf Bedienung mit der Tastatur ausgelegt
 
  +
Kapitel Grundwissen). Außerdem werden für die meisten Aktionen auch
ist. Er läßt sich zwar auch mit der Maus bedienen verliert aber
 
  +
andere Shortcuts verwendet (dazu später mehr). Ein wichtiger Punkt
dadruch einen seiner Vorteile. Deshalb ist es auf jeden Fall
 
  +
ist, dass der EMACS sehr stark auf Bedienung mit der Tastatur
  +
ausgelegt ist. Er läßt sich zwar auch mit der Maus bedienen, verliert
  +
aber dadurch einen seiner Vorteile. Deshalb ist es auf jeden Fall
 
notwendig, eine kurze Einleitung zu lesen. <br>
 
notwendig, eine kurze Einleitung zu lesen. <br>
Gründe die für Emacs sprechen:<br>
+
Gründe, die für EMACS sprechen:<br>
 
* spezifische Unterstützung verschiedener Dateiformate (z.B. durch formatabhängige Menüs, Highlighting)
 
* spezifische Unterstützung verschiedener Dateiformate (z.B. durch formatabhängige Menüs, Highlighting)
 
* durch Shortcuts gut bedienbar (schnell!)
 
* durch Shortcuts gut bedienbar (schnell!)
Zeile 14: Zeile 17:
 
* Matlab-, C/C++-, LaTeX-, Fortran, mail-, Browser-, html-, java-Umgebung
 
* Matlab-, C/C++-, LaTeX-, Fortran, mail-, Browser-, html-, java-Umgebung
 
Je nachdem in welcher Sprache programmiert wird ändern sich die zur
 
Je nachdem in welcher Sprache programmiert wird ändern sich die zur
Verfügung stehenden Shortcuts, die Menüzuteilung und teilweise die zur
+
Verfügung stehenden Shortcuts, die Menüzuteilung und teilweise die
Verfügung stehenden Icons in der Symbolleiste (z.B. News lesen mit
+
Icons in der Symbolleiste (z.B. News lesen mit gnus).<br>
gnus).<br>
 
 
Im Rahmen dieser Einführung werden nur die wichtigsten Funktionen
 
Im Rahmen dieser Einführung werden nur die wichtigsten Funktionen
 
vorgestellt. Wer an den weiteren Funktionen interressiert ist wird
 
vorgestellt. Wer an den weiteren Funktionen interressiert ist wird
auf das [http://www.gnu.org/software/emacs/manual/ emacs manual] verwiesen.
+
auf das [http://www.gnu.org/software/emacs/manual/ EMACS manual] verwiesen.
===Starten von Emacs===
+
===Starten von EMACS===
Gestartet wird Emacs mit Hilfe des entsprechenden Menüeintrages oder
+
Gestartet wird EMACS mit Hilfe des entsprechenden Menüeintrages oder
 
durch Eingabe des [[Shell]]befehles
 
durch Eingabe des [[Shell]]befehles
 
$ emacs
 
$ emacs
 
Soll der Editor im Textmodus (also ohne graphische Oberfläche)
 
Soll der Editor im Textmodus (also ohne graphische Oberfläche)
verwendet werden ist
+
verwendet werden, ist
 
$ emacs -nw
 
$ emacs -nw
  +
einzugeben.
zu verwenden.
 
  +
==Grundwissen==
  +
Hier werden die wichtigsten Aspekte im Umgang mit EMACS erklärt.
  +
Außerdem werden die wichtigsten Tastenkombinationen vorgestellt. Eine
  +
etwas größere Liste ist am Ende des Dokuments zu finden.
  +
===Syntax bei Tastenkombinationen===
  +
Bei der Beschreibung von Tastenkombinationen werden folgende Abkürzungen verwendet:
  +
*C-x: Control-Key (Strg oder Ctrl) gleichzeitig gedrückt mit einer weiteren Taste (hier x).
  +
*C-x s: Control-Key gleichzeitig gedrückt mit einer weiteren Taste (hier x); Nach dem Loslasen drücken einer weiteren Taste (hier s).
  +
*M-x: Meta-Key (Alt) gleichzeitig gedrückt mit einer weiteren Taste.
  +
*C-M-x: Control- und Meta-Key gleichzeitig gedrückt mit einer weiteren Taste.
  +
*ESC: Escape-Key (Esc) gleichzeitig gedrückt mit einer weiteren Taste.
  +
*RET: Return- oder Eingabetaste.
  +
*SPC: Space oder Leerzeichen.
  +
*TAB: Tabulator.
  +
*DEL: Delete- oder Entfern-Taste.
  +
*BSP: Backspace- oder Lösch-Taste.
  +
===Markieren===
  +
Tastenkombinationen:
  +
{| border="1" cellpadding="5" cellspacing="0"
  +
|-
  +
|'''Aktion''' || '''Shortcut'''
  +
|-
  +
|Eine Marke setzen<sup>1</sup> || C-SPC
  +
|-
  +
|Paragraph markieren<sup>2</sup> || M-h
  +
|-
  +
|Gesamten Buffer markieren || C-x h
  +
|}
  +
<sup>1</sup> Um einen Bereich zu markieren wird mit der Tastenkombination C-SPC eineMarke gesetzt und mit den Cursortasten der gewünschte Bereich markiert. Mit Hilfe der Maus ist das markieren eines Bereiches auf gewohnte Weise möglich.<br>
  +
<sup>2</sup> Ein Paragraph endet und beginnt in der Regel mit einer Leerzeile.
  +
  +
===Kopieren, Ausschneiden, Einfügen und Löschen===
  +
Auch hier werden eigene Ausdrücke (und Shortcuts) verwendet. Folgende Tabelle gibt
  +
eine Übersicht:
  +
{| border="1" cellpadding="5" cellspacing="0"
  +
|-
  +
|'''Aktion''' || '''Bezeichnung''' || '''Shortcut'''
  +
|-
  +
|kopieren || copy || M-w
  +
|-
  +
|ausschneiden|| kill || C-w
  +
|-
  +
|einfügen || yank || C-y
  +
|}
  +
===Maustastenbelegung===
  +
Im EMACS ist oft die mittlere Maustaste (Mouse-2) anstatt wie erwartet
  +
die linke zu verwenden.<br>
  +
'''Beispiel''':<br>
  +
# Öffnen einer Datei. Wird die Tastenkombination ''C-x C-f RET'' eingegeben so wird das Homeverzeichnis des Benutzers angezeigt. Will man hier in ein Verzeichnis wechseln ist das gewünschte Verzeichnis mit der mittleren Maustaste anzuklicken. Danach öffnet sich ein neues Fenster in dem der Inhalt des Verzeichnisses angezeigt wird.
  +
===Automatischer Zeilenumbruch===
  +
Zeilen können im EMACS automatisch umbrochen werden. Um dies zu
  +
aktivieren ist im Menü ''Options'' der Eintrag ''Word Wrap in Text Modes (Auto Fill)''
  +
zu wählen. Oft ist nach dem Editieren eines Bereiches das neuerliche
  +
umbrechen der Zeilen notwendig. Um dies zu erreichen markiert man
  +
diesen Bereich und aktiviert durch drücken von ''M-x'' den Minibuffer
  +
(siehe auch entsprechendes Kapitel). In den Minibuffer wird dann
  +
''fill-region'' eingegeben und mit ''RET'' bestätigt.
 
==Buffer, Frame und Window==
 
==Buffer, Frame und Window==
EMACS stellt für jeden geöffneten File einen Buffer bereit, der den
+
EMACS stellt für jede geöffnete Datei einen Buffer bereit, der den
gesamten Inhalt dieses Files beinhaltet. Außerdem können Buffer noch
+
gesamten Inhalt dieser Datei beinhaltet. Außerdem können Buffer noch
 
für andere Aufgaben verwendet werden:
 
für andere Aufgaben verwendet werden:
   
Zeile 42: Zeile 101:
 
Buffers kann nun in einem Window dargestellt werden, wobei der Inhalt
 
Buffers kann nun in einem Window dargestellt werden, wobei der Inhalt
 
eines Buffers auch in mehreren Windows vorhanden sein kann. Dies hat
 
eines Buffers auch in mehreren Windows vorhanden sein kann. Dies hat
den Vorteil, dass man verschiedene Bereiche eines Files mehr oder
+
den Vorteil, dass man verschiedene Bereiche einer Datei mehr oder
 
weniger gleichzeitig bearbeiten kann. Man kann damit z.B. recht
 
weniger gleichzeitig bearbeiten kann. Man kann damit z.B. recht
einfach Teile vom Anfang eines langen Files in einem weit entfernten
+
einfach Teile vom Anfang einer langen Datei in einem weit entfernten
 
Bereich einfügen.
 
Bereich einfügen.
   
  +
Unter dem Window in dem der Buffer dargestellt wird liegt die
Im unteren Bereich des Frames gibt es noch den sogenannten Minibuffer
 
  +
'''Mode Line'''. In ihr wird Information zum geöffneten Buffer
in dem EMACS-Kommandos ausgeführt werden. Dorthin springt z.B. der
 
  +
dargesteltt Mehr Information dazu ist
Editor, wenn ein File geöffnete wird.
 
 
Zwischen dem Window in dem der Buffer dargestellt wird und dem
 
Minibuffer liegt die '''Mode Line'''. Mehr Information dazu ist
 
 
[http://www.gnu.org/software/emacs/manual/html_node/Mode-Line.html#Mode%20Line
 
[http://www.gnu.org/software/emacs/manual/html_node/Mode-Line.html#Mode%20Line
 
hier] zu finden.
 
hier] zu finden.
   
 
==Der Minibuffer==
 
==Der Minibuffer==
Der Minibuffer dient der Kommunikation mit dem Editor. Er erfüllt drei
+
Die letzte Zeile jedes Frames stellt den Minibuffer dar. Er erfüllt drei
 
Aufgaben:
 
Aufgaben:
# Nach Betätigung eines Shortcuts werden hier eventuell notwendige Argumente abgefragt.
+
# Nach Betätigung eines Shortcuts oder dem Aufruf einer Funktion werden hier eventuell notwendige Argumente abgefragt.
 
#* Zum Beispiel wird hier nach Betätigung von ''C-x C-f (find file)'' der Dateiname abgefragt.
 
#* Zum Beispiel wird hier nach Betätigung von ''C-x C-f (find file)'' der Dateiname abgefragt.
# Aufrufen von Funktionen, die an keine Tastenkombination gebunden sind. Dabei muss der Minibuffer zuerst durch Eingabe von ''M-x'' aktiviert werden. Der Minibuffer wartet nun auf die Angabe der gewünschten Funktion.
+
# Hier können Funktionen, die an keine Tastenkombination gebunden sind, aufgerufen werden. Dabei muss der Minibuffer zuerst durch Eingabe von ''M-x'' aktiviert werden. Der Minibuffer wartet nun auf die Angabe der gewünschten Funktion.
 
# Ausgabe von Meldungen an den Benutzer.
 
# Ausgabe von Meldungen an den Benutzer.
 
Auch im Minibuffer steht für fast alle Situationen eine
 
Auch im Minibuffer steht für fast alle Situationen eine
Zeile 67: Zeile 123:
 
Taste aufgerufen werden (damit werden eindeutige Zeichenfolgen
 
Taste aufgerufen werden (damit werden eindeutige Zeichenfolgen
 
komplettiert). Zweimaliges schnelles Betätigen der [TAB] Taste öffnet
 
komplettiert). Zweimaliges schnelles Betätigen der [TAB] Taste öffnet
ein Fenster in dem alle Komplettierungsmöglichkeiten angezeigt werden. Die
+
ein Window in dem alle Komplettierungsmöglichkeiten angezeigt werden. Die
 
[SPACE] Taste dient zur Komplettierung von maximal einem Wort.<br>
 
[SPACE] Taste dient zur Komplettierung von maximal einem Wort.<br>
 
Begonnene Eingaben werden mit der Tastenkombination
 
Begonnene Eingaben werden mit der Tastenkombination
 
''C-g'' abgebrochen.
 
''C-g'' abgebrochen.
  +
==EMACS und Matlab==
  +
Am besten startet man den Editor mit eingabe von <tt> edit </tt> am
  +
matlab prompt. Sollte hier nicht der EMACS geöffnet werden, bitte den
  +
Anweisungen unter Punkt 2 (Configure MATLAB to use EMACSLink) der Datei
  +
/afs/itp.tugraz.at/opt/matlab/7/java/extern/EmacsLink/install.html
  +
folgen. Der Matlabmodus wird automatisch geladen, wenn eine Datei mit
  +
der Endung .m geöffnet wird. In diesem Modus existiert ein Menü MATLAB
  +
das die Sonderfunktionen dieses Modus zur Verfügung stellt. Daneben
  +
existiert ein Menü mit dem Namen Mdb, das Funktionen zum Debuggen von
  +
Matlab Skripten enthält.<br>
  +
'''Anmerkungen''':<br>
  +
* Zu beachten ist, dass das Ausführen von Skripten durch die Tastenkombination ''C-c C-s'' nur möglich ist, wenn sich Matlab im richtigen Verzeichnis befindet. (Wechselbar mit dem Befehl <tt> cd </tt> im Matlab command window oder im Fenster ''current directory'').
  +
* Die Verknüpfung mittels EMACS-Link funktioniert nicht, wenn Matlab mit der Kommandozeilenoption <tt> -nojvm </tt> gestartet wird. Soll matlab in einem XTerm verwendet werden und auch EMACS-Link zur Verfügung stehen, ist die Kommandozeilenoption <tt> -nodesktop</tt> zu verwenden.
   
  +
==EMACS konfigurieren==
==Tastenkombinationen==
 
===Syntax===
+
===Graphisch===
  +
Das Options Menü stellt die Schnittstelle zur "graphischen"
Bei der Beschreibung von Tastenkombinationen werden folgende Abkürzungen verwendet:
 
  +
Konfiguration von EMACS dar.Unter
*C-x: Control-Key (Strg oder Ctrl) gleichzeitig gedrückt mit einer weiteren Taste (hier x).
 
  +
Options -> Customize Emacs -> Browse Customization Groups
*C-x s: Control-Key gleichzeitig gedrückt mit einer weiteren Taste (hier x); Nach dem Loslasen drücken einer weiteren Taste (hier s).
 
  +
kann EMACS detailliert konfiguriert werden. Allerdings
*M-x: Meta-Key (Alt) gleichzeitig gedrückt mit einer weiteren Taste.
 
  +
ist es hier nicht ganz leicht, die richtigen Einträge zu finden. Man
*C-M-x: Control- und Meta-Key gleichzeitig gedrückt mit einer weiteren Taste.
 
  +
kann anschließend Änderungen über den Knopf ''State'' speichern, oder
*ESC: Escape-Key (Esc) gleichzeitig gedrückt mit einer weiteren Taste.
 
  +
auch nur für die aktuelle Sitzung aktivieren. Wird die Einstellung
*RET: Return- oder Eingabetaste.
 
  +
gespeichert, so fügt EMACS in seiner Konfigurationsdatei
*SPC: Space oder Leerzeichen.
 
  +
~/.emacs
*TAB: Tabulator.
 
  +
einen Eintrag hinzu (~ steht wie üblich für das Home-Verzeichnis).
*DEL: Delete- oder Entferne-Taste.
 
  +
===Konfigurationsdatei===
*BSP: Backspace- oder Lösch-Taste.
 
  +
EMACS kann auch durch direktes ändern der Konfigurationsdatei
  +
konfiguriert werden. Auch hier wird auf das
  +
[http://www.gnu.org/software/emacs/manual/html_node/Init-File.html#Init%20File EMACS manual]
  +
verwiesen.<br>
  +
  +
==Tips==
  +
===Shortcuts definieren===
  +
Shortcuts können in der ''.emacs-Datei'' definiert werden. Folgendes Listing
  +
bindet die Tasten [f4] an die Funktion ''query-replace'' (interaktives
  +
suchen und ersetzen), und die Taste [f3] an ''dabbrev-expand''
  +
(dynamisches expandieren von Zeichenketten):
  +
(global-set-key [f4] 'query-replace)
  +
(global-set-key [f3] 'dabbrev-expand)
  +
  +
===Wichtige Funktionen===
  +
...nach Meinung des Autors
  +
* query-replace
  +
* tags-query-replace
  +
* dabbrev-expand
  +
* compile
  +
* comment-region
  +
* uncomment-region
   
  +
==Tabellen wichtiger Shortcuts==
 
===Files,Buffers und Windows===
 
===Files,Buffers und Windows===
 
{| border="1" cellpadding="5" cellspacing="0"
 
{| border="1" cellpadding="5" cellspacing="0"
Zeile 230: Zeile 322:
 
ersetze alle Weiteren; ^ zurück zum vorherigen Suchresultat; RET
 
ersetze alle Weiteren; ^ zurück zum vorherigen Suchresultat; RET
 
beende den Ersetzungsmodus; E editiere die Ersetzungszeichen.
 
beende den Ersetzungsmodus; E editiere die Ersetzungszeichen.
 
==Emacs und Matlab==
 
Am besten startet man den Editor mit eingabe von <tt> edit </tt> am
 
matlab prompt. Sollte hier nicht der Emacs geöffnet werden bitte den
 
Anweisungen unter Punkt 2 (Configure MATLAB to use EmacsLink) der Datei
 
/afs/itp.tugraz.at/opt/matlab/7/java/extern/EmacsLink/install.html
 
folgen. Der Matlabmouds wird automatisch geladen, wenn eine Datei mit
 
der Endung .m geöffnet wird. In diesem Modus existiert ein Menü MATLAB
 
das die Sonderfunktionen dieses Modus zur Verfügung stellt. Daneben
 
existiert ein Menü mit dem Namen Mdb das Funktionen zum Debuggen von
 
Matlab Skripten enthält.<br>
 
'''Anmerkungen''':<br>
 
* Zu beachten ist, dass das Ausführen von Skripten durch die Tastenkombination ''C-c C-s'' nur möglich ist, wenn sich Matlab im richtigen Verzeichnis befindet. (Wechselbar mit dem Befehl <tt> cd </tt> im Matlab command window oder im Fenster ''current directory'').
 
* Die Verknüpfung mittels Emacs-Link funktioniert nicht, wenn Matlab mit der Kommandozeilenoption <tt> -nojvm </tt> gestartet wird. Soll matlab in der Konsole verwendet werden und auch Emacs-Link zur Verfügung stehen ist die Kommandozeilenoption <tt> -nodesktop</tt> zu verwenden.
 
 
==Emacs konfigurieren==
 
===Graphisch===
 
Das Options Menü stellt die Schnittstelle zur graphischen
 
Konfiguration von Emacs dar. Hier sollten auf jeden Fall die ersten
 
drei Punkte ausgewählt und anschließend ''Save Options'' geklickt
 
werden. Ist es unerwünscht, dass Zeilen automatisch umgebrochen werden
 
ist der Punkt ''Word Wrap in Text Modes'' abzuwählen.
 
Unter Options -> Customize Emacs -> Browse Customization Groups
 
Kann Emacs wesentlich detaillierter konfiguriert werden. Allerdings
 
ist es hier nicht ganz leicht, die richtigen Einträge zu finden. Man
 
kann anschließend Änderungen über den Knopf ''State'' speichern, oder
 
auch nur für die aktuelle Sitzung aktivieren. Wird die Einstellung
 
gespeichert so fügt Emacs in seine Konfigurationsdatei
 
~/.emacs
 
einen Eintrag hinzu (~ steht wie üblich für das Home-Verzeichnis).
 
===Konfigurationsdatei===
 
Emacs kann auch durch direktes ändern der Konfigurationsdatei
 
konfiguriert werden. Auch hier wird auf das
 
[http://www.gnu.org/software/emacs/manual/html_node/Init-File.html#Init%20File manual]
 
verwiesen.<br>
 
 
==Tips==
 
===Shortcuts definieren===
 
Shortcuts können in der <tt> .emacs-Datei</tt> definiert werden. Folgendes Listing
 
bindet die Tasten [f4] an die Funktion ''query-replace'' (interaktives
 
suchen und ersetzen), und die Taste [f3] an ''dabbrev-expand''
 
(dynamisches expandieren von Zeichenketten):
 
(global-set-key [f4] 'query-replace)
 
(global-set-key [f3] 'dabbrev-expand)
 
 
===Wichtige Funktionen===
 
...nach Meinung des Autors
 
* query-replace
 
* tags-query-replace
 
* dabbrev-expand
 
* compile
 
* comment-region
 
* uncomment-region
 

Version vom 18. Jänner 2005, 18:19 Uhr

Vorbemerkungen

Der EMACS ist unter Linux (einer) der wichtigste(n) Editor(en). Für Neulinge ist er nicht unbedingt auf Anhieb problemlos bedienbar. Dies liegt vor allem daran, dass er im Gegensatz zu bekannten Computerprogrammen andere Konzepte verfolgt, und im Zusammenhang mit EMACS ungewohnte Begriffe für an sich Bekanntes verwendet werden (Siehe Kapitel Grundwissen). Außerdem werden für die meisten Aktionen auch andere Shortcuts verwendet (dazu später mehr). Ein wichtiger Punkt ist, dass der EMACS sehr stark auf Bedienung mit der Tastatur ausgelegt ist. Er läßt sich zwar auch mit der Maus bedienen, verliert aber dadurch einen seiner Vorteile. Deshalb ist es auf jeden Fall notwendig, eine kurze Einleitung zu lesen.
Gründe, die für EMACS sprechen:

  • spezifische Unterstützung verschiedener Dateiformate (z.B. durch formatabhängige Menüs, Highlighting)
  • durch Shortcuts gut bedienbar (schnell!)
  • besitzt einen Textmodus (arbeiten über ssh)
  • Matlab-, C/C++-, LaTeX-, Fortran, mail-, Browser-, html-, java-Umgebung

Je nachdem in welcher Sprache programmiert wird ändern sich die zur Verfügung stehenden Shortcuts, die Menüzuteilung und teilweise die Icons in der Symbolleiste (z.B. News lesen mit gnus).
Im Rahmen dieser Einführung werden nur die wichtigsten Funktionen vorgestellt. Wer an den weiteren Funktionen interressiert ist wird auf das EMACS manual verwiesen.

Starten von EMACS

Gestartet wird EMACS mit Hilfe des entsprechenden Menüeintrages oder durch Eingabe des Shellbefehles

$ emacs

Soll der Editor im Textmodus (also ohne graphische Oberfläche) verwendet werden, ist

$ emacs -nw

einzugeben.

Grundwissen

Hier werden die wichtigsten Aspekte im Umgang mit EMACS erklärt. Außerdem werden die wichtigsten Tastenkombinationen vorgestellt. Eine etwas größere Liste ist am Ende des Dokuments zu finden.

Syntax bei Tastenkombinationen

Bei der Beschreibung von Tastenkombinationen werden folgende Abkürzungen verwendet:

  • C-x: Control-Key (Strg oder Ctrl) gleichzeitig gedrückt mit einer weiteren Taste (hier x).
  • C-x s: Control-Key gleichzeitig gedrückt mit einer weiteren Taste (hier x); Nach dem Loslasen drücken einer weiteren Taste (hier s).
  • M-x: Meta-Key (Alt) gleichzeitig gedrückt mit einer weiteren Taste.
  • C-M-x: Control- und Meta-Key gleichzeitig gedrückt mit einer weiteren Taste.
  • ESC: Escape-Key (Esc) gleichzeitig gedrückt mit einer weiteren Taste.
  • RET: Return- oder Eingabetaste.
  • SPC: Space oder Leerzeichen.
  • TAB: Tabulator.
  • DEL: Delete- oder Entfern-Taste.
  • BSP: Backspace- oder Lösch-Taste.

Markieren

Tastenkombinationen:

Aktion Shortcut
Eine Marke setzen1 C-SPC
Paragraph markieren2 M-h
Gesamten Buffer markieren C-x h

1 Um einen Bereich zu markieren wird mit der Tastenkombination C-SPC eineMarke gesetzt und mit den Cursortasten der gewünschte Bereich markiert. Mit Hilfe der Maus ist das markieren eines Bereiches auf gewohnte Weise möglich.
2 Ein Paragraph endet und beginnt in der Regel mit einer Leerzeile.

Kopieren, Ausschneiden, Einfügen und Löschen

Auch hier werden eigene Ausdrücke (und Shortcuts) verwendet. Folgende Tabelle gibt eine Übersicht:

Aktion Bezeichnung Shortcut
kopieren copy M-w
ausschneiden kill C-w
einfügen yank C-y

Maustastenbelegung

Im EMACS ist oft die mittlere Maustaste (Mouse-2) anstatt wie erwartet die linke zu verwenden.
Beispiel:

  1. Öffnen einer Datei. Wird die Tastenkombination C-x C-f RET eingegeben so wird das Homeverzeichnis des Benutzers angezeigt. Will man hier in ein Verzeichnis wechseln ist das gewünschte Verzeichnis mit der mittleren Maustaste anzuklicken. Danach öffnet sich ein neues Fenster in dem der Inhalt des Verzeichnisses angezeigt wird.

Automatischer Zeilenumbruch

Zeilen können im EMACS automatisch umbrochen werden. Um dies zu aktivieren ist im Menü Options der Eintrag Word Wrap in Text Modes (Auto Fill) zu wählen. Oft ist nach dem Editieren eines Bereiches das neuerliche umbrechen der Zeilen notwendig. Um dies zu erreichen markiert man diesen Bereich und aktiviert durch drücken von M-x den Minibuffer (siehe auch entsprechendes Kapitel). In den Minibuffer wird dann fill-region eingegeben und mit RET bestätigt.

Buffer, Frame und Window

EMACS stellt für jede geöffnete Datei einen Buffer bereit, der den gesamten Inhalt dieser Datei beinhaltet. Außerdem können Buffer noch für andere Aufgaben verwendet werden:

  • *scratch*: Ein Bereich für Notizen, die nicht automatisch zum Speichern vorgesehen sind.
  • *messages*: Nachrichten von EMACS.
  • andere: Z.B. für die Ausgabe von Programmen, die aus EMACS aufgerufen werden.

Die Darstellung der Buffer erfolgt in sogenannten Frames (eigene Fenster am Bildschirm), die unter Umständen in mehrere Windows (Bereiche in einem Frame) aufgeteilt sein können. Der Inhalt eines Buffers kann nun in einem Window dargestellt werden, wobei der Inhalt eines Buffers auch in mehreren Windows vorhanden sein kann. Dies hat den Vorteil, dass man verschiedene Bereiche einer Datei mehr oder weniger gleichzeitig bearbeiten kann. Man kann damit z.B. recht einfach Teile vom Anfang einer langen Datei in einem weit entfernten Bereich einfügen.

Unter dem Window in dem der Buffer dargestellt wird liegt die Mode Line. In ihr wird Information zum geöffneten Buffer dargesteltt Mehr Information dazu ist [http://www.gnu.org/software/emacs/manual/html_node/Mode-Line.html#Mode%20Line hier] zu finden.

Der Minibuffer

Die letzte Zeile jedes Frames stellt den Minibuffer dar. Er erfüllt drei Aufgaben:

  1. Nach Betätigung eines Shortcuts oder dem Aufruf einer Funktion werden hier eventuell notwendige Argumente abgefragt.
    • Zum Beispiel wird hier nach Betätigung von C-x C-f (find file) der Dateiname abgefragt.
  2. Hier können Funktionen, die an keine Tastenkombination gebunden sind, aufgerufen werden. Dabei muss der Minibuffer zuerst durch Eingabe von M-x aktiviert werden. Der Minibuffer wartet nun auf die Angabe der gewünschten Funktion.
  3. Ausgabe von Meldungen an den Benutzer.

Auch im Minibuffer steht für fast alle Situationen eine Komplettierungsfunktion zur Verfügung. Diese kann mit Hilfe der [TAB] Taste aufgerufen werden (damit werden eindeutige Zeichenfolgen komplettiert). Zweimaliges schnelles Betätigen der [TAB] Taste öffnet ein Window in dem alle Komplettierungsmöglichkeiten angezeigt werden. Die [SPACE] Taste dient zur Komplettierung von maximal einem Wort.
Begonnene Eingaben werden mit der Tastenkombination C-g abgebrochen.

EMACS und Matlab

Am besten startet man den Editor mit eingabe von edit am matlab prompt. Sollte hier nicht der EMACS geöffnet werden, bitte den Anweisungen unter Punkt 2 (Configure MATLAB to use EMACSLink) der Datei

/afs/itp.tugraz.at/opt/matlab/7/java/extern/EmacsLink/install.html

folgen. Der Matlabmodus wird automatisch geladen, wenn eine Datei mit der Endung .m geöffnet wird. In diesem Modus existiert ein Menü MATLAB das die Sonderfunktionen dieses Modus zur Verfügung stellt. Daneben existiert ein Menü mit dem Namen Mdb, das Funktionen zum Debuggen von Matlab Skripten enthält.
Anmerkungen:

  • Zu beachten ist, dass das Ausführen von Skripten durch die Tastenkombination C-c C-s nur möglich ist, wenn sich Matlab im richtigen Verzeichnis befindet. (Wechselbar mit dem Befehl cd im Matlab command window oder im Fenster current directory).
  • Die Verknüpfung mittels EMACS-Link funktioniert nicht, wenn Matlab mit der Kommandozeilenoption -nojvm gestartet wird. Soll matlab in einem XTerm verwendet werden und auch EMACS-Link zur Verfügung stehen, ist die Kommandozeilenoption -nodesktop zu verwenden.

EMACS konfigurieren

Graphisch

Das Options Menü stellt die Schnittstelle zur "graphischen" Konfiguration von EMACS dar.Unter

Options -> Customize Emacs -> Browse Customization Groups

kann EMACS detailliert konfiguriert werden. Allerdings ist es hier nicht ganz leicht, die richtigen Einträge zu finden. Man kann anschließend Änderungen über den Knopf State speichern, oder auch nur für die aktuelle Sitzung aktivieren. Wird die Einstellung gespeichert, so fügt EMACS in seiner Konfigurationsdatei

~/.emacs

einen Eintrag hinzu (~ steht wie üblich für das Home-Verzeichnis).

Konfigurationsdatei

EMACS kann auch durch direktes ändern der Konfigurationsdatei konfiguriert werden. Auch hier wird auf das EMACS manual verwiesen.

Tips

Shortcuts definieren

Shortcuts können in der .emacs-Datei definiert werden. Folgendes Listing bindet die Tasten [f4] an die Funktion query-replace (interaktives suchen und ersetzen), und die Taste [f3] an dabbrev-expand (dynamisches expandieren von Zeichenketten):

(global-set-key [f4] 'query-replace)
(global-set-key [f3] 'dabbrev-expand)

Wichtige Funktionen

...nach Meinung des Autors

  • query-replace
  • tags-query-replace
  • dabbrev-expand
  • compile
  • comment-region
  • uncomment-region

Tabellen wichtiger Shortcuts

Files,Buffers und Windows

TASTE BEDEUTUNG TASTE BEDEUTUNG
C-z Suspend C-x C-c Beendet
C-x C-s Speichert File C-x s Speichert alle Files
C-x C-w Speichert File als C-x C-v Ersetzt File
C-x C-f Öffnet File C-x i Einfügen eines Files
C-x b Anderer Buffer C-x k Killt (entfernt) Buffer
C-x C-b Liste aller Buffer

Eine Eigenart von EMACS ist die Tatsache, dass man für das Öffnen eines neuen, nicht existierenden Files ebenfalls C-x C-f für das Anlegen verwendet. Man wird dann im Minibuffer zum Eingeben des Filenamens aufgefordert.

TASTE BEDEUTUNG TASTE BEDEUTUNG
C-x 2 Split Window C-x 5 2 Neuer Frame
C-x 0 Entfernt Window C-x 5 0 Entfernt Frame
C-x 1 Entfernt andere Windows C-x 3 Split Window seitlich
C-M-v Scrollt anderes Fenster C-x ^ Macht Window größer
C-x { Macht Window schmäler C-x } Macht Window breiter
C-x o Cursor in anderes Window C-x 5 o Cursor in anderen Frame
C-x 4 b Auswahl Buffer in anderem Window C-x 5 b Auswahl Buffer in anderem Frame
C-x 4 C-o Buffer in anderem Window C-x 5 C-o Buffer in anderem Frame
C-x 4 f Öffne File in anderem Window C-x 5 f Öffne File in anderem Frame

Navigation durch den Buffer

TASTE BEDEUTUNG TASTE BEDEUTUNG
C-b Buchstabe rückwärts C-f Buchstabe vorwärts
M-b Wort rückwärts M-f Wort vorwärts
C-p Zeile rückwärts C-n Zeile vorwärts
C-a Zeilenanfang C-e Zeilenende
M-a Satz rückwärts M-e Satz vorwärts
M-{ Paragraph rückwärts M-} Paragraph vorwärts
M-x [ Seite rückwärts M-e ] Seite vorwärts
C-M-a Funktion rückwärts C-M-e Funktion vorwärts
M-< Bufferanfang M-> Bufferende
M-v Scroll Schirm rückwärts C-v Scroll Schirm vorwärts
C-x < Scroll Schirm links C-x > Scroll Schirm rechts
C-u C-l Zeile in Schirmmitte

Markieren, Kopieren und Löschen

TASTE BEDEUTUNG TASTE BEDEUTUNG
C-SPC Setze Markierung C-x C-x Tausche Markierung und Cursor
M-h Markiere Paragraph C-x C-p Markiere Seite
C-M-h Markiere Funktion C-x h Markiere Buffer
BSP Entferne Zeichen rückwärts DEL Entferne Zeichen vorwärts
M-DEL Lösche Wort rückwärts M-d Lösche Wort vorwärts
M-0 C-k Lösche Zeile rückwärts C-k Lösche Zeile vorwärts
C-x DEL Lösche Satz rückwärts M-k Lösche Satz vorwärts
C-w Lösche Region M-w Kopiere Region
C-y Einfügen M-y Tauscht letzte Einfügung gegen vorherige

Als Region bezeichnet man dabei einen markierten Bereich. Diese kann sowohl mit Hilfe der Tastatur, als auch mit Hilfe der Maus (linke Taste) markiert werden. Das Einfügen erfolgt ebenfalls mit Hilfe einer Tastenkombination C-y, bzw. mit Hilfe der mittleren Maustaste.

Formatierung, Änderung, Tausch

TASTE BEDEUTUNG TASTE BEDEUTUNG
TAB Einrückung Zeile C-M-\ Einrückung Region
C-x TAB Einrückung Region erzwungen
C-o Neue Zeile C-M-o Restliche Zeile nach unten
C-x C-o Entferne leere Zeilen M-^ Verbinde Zeile mit voriger
M-\ Entferne leere Zeichen M-SPC Exakt ein Leerzeichen
M-q Fülle Paragraph C-x f Setzte Füll Spalte
M-u Großbuchstaben Wort (upper) M-l Kleinbuchstaben Wort (lower)
M-c Erster Buchstaben groß (capitalize)
C-x C-u Großbuchstaben Region (upper) C-x C-l Kleinbuchstaben Region (lower)
C-t Austausch Zeichen M-t Austausch Worte
C-x C-t Austausch Zeilen

Suchen und Ersetzen

TASTE BEDEUTUNG TASTE BEDEUTUNG
C-s Suche vorwärts C-r Suche rückwärts
M-p Wähle vorherigen Suchstring M-n Wähle nächsten Suchstring
RET Beende Suche C-g Abbruch der Suche
M-% Suche und Ersetzen (interactiv)

Im Suchen und Ersetzen Modus M-% sind die folgenden Antworten möglich: ? Hilfe; SPC ersetze und geh weiter; , ersetze und bleibe am selben Platz; . ersetze und beende; DEL ersetze nicht und geh weiter; ! ersetze alle Weiteren; ^ zurück zum vorherigen Suchresultat; RET beende den Ersetzungsmodus; E editiere die Ersetzungszeichen.