Benutzer:Amo: Unterschied zwischen den Versionen

Aus Physik
Zur Navigation springen Zur Suche springen
 
K
 
(23 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==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. Dies äußert sich vor
allem darin, dass im Zusammenhang mit Emacs ungewohnte Begriffe für
ansich Bekanntes verwendet werden (Siehe Kapitel Konzepte). Außerdem
werden für die meisten Aktionen auch andere Shortcuts verwendet. Eine
Übersicht über die wichtigsten ist im letzten Kapitel zu finden. 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 dadruch einen seiner Vorteile. Deshalb ist es auf jeden
Fall notwendig, eine kurze Einleitung zu lesen. <br>
Gründe die für Emacs sprechen:<br>
* 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 zur
Verfügung stehenden Icons in der Symbolleiste (z.B. News lesen mit
gnus).<br>
Im Rahmen dieser Einführung werden nur die wichtigsten Funktionen
vorgestellt. Wer an den weiteren Funktionen interressiert ist wird
auf das [http://www.gnu.org/software/emacs/manual/ emacs manual] verwiesen.
===Starten von Emacs===
Gestartet wird Emacs mit Hilfe des entsprechenden Menüeintrages oder
durch Eingabe des [[Shell]]befehles
$ 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:
{| border="1" cellpadding="5" cellspacing="0"
|-
|'''Aktion''' || '''Shortcut'''
|Eine Marke setzen || C-SPC
|-
|Paragraph markieren || M-h
|-
|Gesamten Buffer markieren || C-x h
|}
Um einen Bereich zu markieren wird mit der Tastenkombination C-SPC eine
Marke 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>
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.
===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 unt die Entertaste betätigt.
==Buffer, Frame und Window==
EMACS stellt für jeden geöffneten File einen Buffer bereit, der den
gesamten Inhalt dieses Files 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 eines Files mehr oder
weniger gleichzeitig bearbeiten kann. Man kann damit z.B. recht
einfach Teile vom Anfang eines langen Files in einem weit entfernten
Bereich einfügen.

Im unteren Bereich des Frames gibt es noch den sogenannten Minibuffer
in dem EMACS-Kommandos ausgeführt werden. Dorthin springt z.B. der
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
hier] zu finden.

==Der Minibuffer==
Der Minibuffer dient der Kommunikation mit dem Editor. Er erfüllt drei
Aufgaben:
# 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.
# 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.
# 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 Fenster in dem alle Komplettierungsmöglichkeiten angezeigt werden. Die
[SPACE] Taste dient zur Komplettierung von maximal einem Wort.<br>
Begonnene Eingaben werden mit der Tastenkombination
''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 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 einem XTerm 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

==Tabellen wichtiger Shortcuts==
===Files,Buffers und Windows===
{| border="1" cellpadding="5" cellspacing="0"
|'''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.

{| border="1" cellpadding="5" cellspacing="0"
|'''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===
{| border="1" cellpadding="5" cellspacing="0"
|'''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===
{| border="1" cellpadding="5" cellspacing="0"
|'''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===
{| border="1" cellpadding="5" cellspacing="0"
|'''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===
{| border="1" cellpadding="5" cellspacing="0"
|'''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.

Aktuelle Version vom 30. November 2005, 09:42 Uhr