Benutzer:Amo: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Amo (Diskussion | Beiträge) |
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. |