Emacs

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Standardprogramme Office und Co ‹ Emacs



Emacs ist neben Vim, einer der weitverbreitesten Editoren in der freien Software Welt. Emacs nur als Editor zu bezeichen, gleicht einer Beleidigung, denn dieses Programm eignet sich für mehr als nur die Bearbeitung von Texten. Es ist nähmlich auch eine komplette Entwicklungsumgebung, E-Mail-Programm, News-Reader, uvm. Manche Anwender bezeichnen Emacs scherzhaft als eigenes Betriebssystem, da es alle Funktionen beinhaltet die man für die alltägliche Arbeit benötigt. Die Steuerung von Emacs passiert hauptsächlich durch Tastenkombinationen, dadurch benötigt man - wenn man alle Möglichkeiten dieser Software nützen möchte - ein wenig Einarbeitung.

Schnelleinstieg

Emacs gibt es in zwei verschiedenen Versionen, nämlich in GNU-Emacs und in XEmacs (früher hies es Lucid Emacs). Diese zwei Programme ähneln einander sehr, denn beide können sowohl in der Textkonsole als auch unter X verwendet werden, beide stehen unter der GPL und auch ansonsten gibt es viele Gemeinsamkeiten, natürlich auch aber viele kleine Unterschiede (alle hier aufzuzählen würde den Rahmen dieses Artikels sprengen).
Neben diesen zwei großen Emacs-Versionen existieren aber auch kleinere, abgespeckte Varianten z.B. jed, jmacs, jove und zile.
Der Hauptvorteil dieser Varianten ist der geringe Ressourcen bedarf, dadurch eignen sich diese sehr gut für ältere PC's mit langsamen CPU's und geringem Speicher.

Installation

Emacs befindet sich in den Paketquellen und kann somit ohne viel Aufwand installiert werden mit:

root@debian:~# apt-get install emacs

Arbeiten mit Emacs

Starten

Emacs kann man auf unterschiedliche Arten starten, in den meisten grafischen Umgebungen befindet sich das Programm in den Reitern "Entwicklung" und "Zubehör" (z.B. in XFCE und GNOME). Natürlich kann man Emacs auch im Terminal starten, standardmäßig wird Emacs dann in einem neuen Fenster angezeigt. Der Befehl um Emacs zu starten lautet:

user@debian:~$ emacs
Hinweis.png Hinweis: Wenn beim Start von Emacs ein oder mehrere Dateinamen angegeben werden, werden diese Dateien automatisch geladen.


Um Emacs direkt im CLI zu starten muss man den Befehl um "-nw" erweitern, allerdings nur wenn man sich auf einer GUI befindet.

user@debian:~$ emacs -nw

Sofern gar kein X-Server läuft, kann auf den Befehlszusatz "-nw" verzichtet werden.

Weitere Emacs-Startparameter wären z.B. noch:

   -fs (Fullscreen)
   -fh (fullheight = Fensterhöhe maximiert)
   
   -fg  farbe (Vordergrundfarbe - Textfarbe, normalerweise Schwarz) 
   -bg (Hintergrundfarbe - normalerweise Weiß)
   -cr farbe  (Farbe des Textcursors - normalerweise Schwarz)
   -geometry bxh+x+y (Größe - Breite mal Höhe - und Position des Emacs-Fensters voreinstellen; Alle Angaben in Textzeichen)
   -fn zeichensatz (startet Emacs mit dem angegebenen Zeichensatz)

Tutorial

Für Beginner gibt es in Emacs ein eingebautet Tutorial. In diesem Programm internen Tutorial werden die wichtigsten Tastenkombinationen erläutert und am Hilfetext ausprobiert. Es ist sehr zum Empfehlen dieses durchzuarbeiten, da es auch in das Konzept von Buffer und Modi einführt. Das Tutorial wird in Emacs mit "Help" - "Emacs Tutorial" aufgerufen, oder über die Tastenkombination STRG + H + T oder über F1, T. Mit Strg+X, B, Enter gelangt man in den ursprünglichen Text zurück.

info-System

Die wichtigste Informationsquelle über Emacs ist das interne info-System, dieses gilt auch als offizielles Emacs-Handbuch. Die eingebaute Online Hilfe des Emacs liegt im Info-Format vor. Liest man Info-Texte mit Emacs, wird ein eigener Info-Modus aktiviert, in diesem Modus können Querverweise bzw. Menüeinträge einfach mit den Klick der mittleren Maustaste verfolgt werden. Mit L gelangen man zur zueletzt sichtbaren Seite zurück.

Steuerung

Hier ist eine Liste der grundlegendensten Steuerbefehle:

Datei öffnen STRG + X, Strg + F
Datei speichern STRG + X, Strg + S
Zum Beginn der Zeile springen Strg + A
Zum Ende der Zeile springen Strg + E
Ein Zeichen löschen Strg + D
Ein Wort löschen Alt + D
Eine Aktion rückgängig machen STRG + X, U
Vorwärtssuche nach einer Zeichenkette Strg + S
Rückwärtssuche nach einer Zeichenkette Strg + R

Hilfe Steuerung

Übersicht über vorhandene Hilfekommandos F1, F1
Übersicht über alle kommandos, die text enthalten (Apropos) F1, A text Enter
Übersicht über alle Tastenkürzel F1, B
Kurzbeschreibung des zugeordneten Kommandos F1, C tastenkürzel
Kurzbeschreibung des Kommandos F1, F kommando Enter
Emacs-FAQ F1, Shift+F
Startet das info-System zur Anzeige hierachischer Hilfetexte F1, I
Zusammenfassung der Neuerungen in der aktuellen Version im Vergleich zu den früherene Versionen F1, N
Einführung in die Bedienung von Emacs F1, T
Startet das Info-System und gibt Auskunft zum angegebenen Kommando. F1, Strg+F kommando
Dieser Befehl zeigt Informationen über die Idee freier Software F1, Strg+P

Cursor Steuerung

Dieser Befehl bewegt den Cursor ein Wort vor bzw. zurück (For-/Backwards) Alt+F / Alt+B
Dieser Befehl stellt den Cursor an den Beginn bzw. das Ende der Zeile Strg+A / Strg+E
Dieser Befehl stellt den Cursoer an den Beginn bzw. das Ende des Absatzes Alt+A / Alt+E
Dieser Befehl scrollt den Text so, dass der Cursor in der Bildmitte steht. Strg+L
Dieser Befehl bewegt den Text eine Stei nach oben bzw. unten Strg+V Alt+V
Dieser Befehl bewegt den Cursor an den Beginn bzw. das Ende des Textes. Alt+< / Alt+Shift+>
Dieser Befehl stellt den Cursor in Zeile (Zahl angeben) Alt+G ZAHL Enter
Durch diesen Befehl springt der Cursor zu der im Register z gespeicherten Position. Strg+X, R, J z Enter

Emacs konfigurieren

Im Emacs-Programm selbst, ist praktisch alles einstellbar. Man kann behaupten das es sowas wie zwei persönlich gleich konfigurierte Emacs nicht gibt. Emacs kann nämlich genau auf die persönlichen Bedürfnisse und Fähigkeiten seines Benutzers abgestimmt werden.

Konfigurationsdateien

Emacs wird konfiguriert in der Datei ~/.emacs oder in neueren Version in ~/.emcas.d/init.el. Außerdem liest es aus der Datei ~/.Xdefaults.

Teile von Emacs können ebenfalls eigenen Konfigurationsdateien besitzen, z.B Gnus bist eine ganze Liste an Dateien (diese sind ~/.gnus oder ~/.gnus.el, dazu ~/.authinfo, ~/.newsrc, ~/.newsrc.eld).

Optionen sind in Emacs nichts weiter als mit Werten belegte Lisp-Variablen, das bedeutet wenn man Einstellungen tätigen möchte, müssen Variablen gesetzt werden.

Hinweis.png Hinweis: Es macht keinen Unterschied wo die Variablen gesetzt werden in der Konfigurationsdatei.


Man kann - sofern man weiß, was man tut - die gesamte Konfiguration in diesen Dateien von Hand machen. Das ist praktisch, wenn man z.B. auch kleine Code-Blöcke benutzen will. Üblicherweise benutzt man jedoch Emacs selbst, um sich menügesteuert oder über sog. Customizing das Programm einzustellen. Die dabei gemachten Einstellungen gelangen dann in die besagten Dateien und können später, auch von Hand bearbeitet werden.

Häufige Einstellungen

.emacs

(custom-set-variables
 '(auto-save-default nil)                                        ; Keine Dateien zwischenspeichern
 '(blink-cursor-mode nil nil (frame))                            ; Cursor nicht blinken lassen
 '(c-backspace-function (quote backward-delete-char))            ; cc-mode: Backspace als Backspace nutzen
 '(c-basic-offset 8)                                             ; cc-mode: Tabulatorbreite
 '(c-syntactic-indentation nil)                                  ; cc-mode: keine Indentation
 '(case-fold-search nil)                                         ; Suchen am Dateiende beenden
 '(column-number-mode t)                                         ; Zeilennummer in Statuszeile anzeigen
 '(compilation-scroll-output t)                                  ; Im compilation buffer scrollen
 '(current-language-environment "Latin-9")                       ; Zeichensatz
 '(delete-selection-mode t nil (delsel))                         ; Markierten Text mit Entf löschen
 '(dired-recursive-deletes (quote top))                          ; dired: Verzeichnisse rekursiv löschen
 '(display-time-mode t)                                          ; Uhrzeit in Statuszeile anzeigen
 '(gdb-many-windows t)                                           ; Debugger mit komplexem Layout starten
 '(global-font-lock-mode t nil (font-lock))                      ; font-locking einschalten, wenn es möglich ist
 '(gnus-inhibit-startup-message t)                               ; Keinen startup screen für Gnus anzeigen 
 '(inhibit-startup-screen t)                                     ; Keinen startup screen für Emacs anzeigen
 '(make-backup-files nil)                                        ; Keine backup-files erstellen
 '(mouse-autoselect-window t)                                    ; Eingabefokus wandert mit, mit der Maus
 '(require-final-newline (quote ask))                            ; Zeilenende an letzter Zeile erzwingen
 '(scroll-bar-mode nil)                                          ; keine Scrollbars
 '(sentence-end-double-space nil)                                ; keine zwei Leerzeichen nach einem Punkt "."
 '(show-trailing-whitespace t)                                   ; Leerzeichen am Zeilenende anzeigen
 '(tool-bar-mode nil nil (tool-bar))                             ; keine Toolbar
 '(transient-mark-mode t)                                        ; sichtbare Markierung von Text
 '(truncate-lines t)                                             ; lange Zeilen abschneiden, nicht umbrechen 
 '(visible-bell t)                                               ; Piepsgeräusch abstellen
 '(x-stretch-cursor t)                                           ; Cursor bei Tabulatoren breit machen
)

Emacs-Funktionen

Emacs-Dateiverwaltung

Unter Emcas gibt es viele verschiedenen Dateiverwaltungsimplementierungen, die bekanntest jedoch ist die standardmäßige mitgelieferte dired (directory editor).

Emacs-Entwicklungsumgebung

Emacs eignet sich hervorragend als Entwicklungsumgebung, die Software bringt alles mit was man benötigt zum Entwickeln ( editieren, compilieren und debuggen von Quelltexten ist kein Problem für Emacs). Je nachdem welche Endung die Datei besitzt lädt Emacs die benötigten Modus (z.B. für ".c" den cc-Mode).

Shell in Emacs

Unter Emacs gibt es zwei verschiedene Arten von Shell-Implementierungen mit den Namen shell und eshell. Beide Varianten, haben ihre vor und Nachteile man kann nicht genau sagen welche besser ist. Gemeinsam haben beide das sie (wie in einem Terminal) an einem Prompt gewöhnliche Benutzereingaben entgegennehmen, diese ausführen und die Ausgaben wieder im gleichen buffer darstellen.

News und Mails in Emacs

Emacs beinhaltet mehrere Mail-Betriebsarten ( mail, rmail & mh) welche einen unterschiedlichen Funktionsumfang bieten. Außerdem besitzt das Programm noch einen universalen Mail-, News- und RSS-Client, namens Gnus dieser ist der umfassendste Client unter Emacs, er erfordert aber auch die komplexeste Konfiguration und ein wenig Übung im Umgang.

Weitere Betriebsarten

  • Chatten
  • Calendar
  • Lisp-Interpreter
  • Spiele
  • Todo-Listen
  • Twitter

Dokumentation

Emacs ist für ausführlich dokumentiert (self documenting). Wird die Dokumentation aufgerufen gelangt man in den Emacs-eigenen Info-Browser. Den Umgang mit dem Info-System (diese ist die im GNU-Projekt allgemein verwendete Alternative zu Man-Pages) muss man etwas üben.

Emacs-Plugins

Quellen