Emacs

Aus Linupedia.org
Wechseln zu: Navigation, Suche
OnkelchenTobi Baustelle.png




Emacs
Emacs.png
Emacs x.jpg
Emacs unter X
Basisdaten
Entwickler: Richard Stallman
Aktuelle Version: 22.1
letzte Veröffentlichung: 2. Juni 2007
Betriebssystem: GNU/Linux, FreeBSD, AIX, Mac OS X, MS DOS, MS Windows, NetBSD, OpenBSD, Solaris, SunOS, Ultrix
Kategorie: Office, Texeditor, Entwicklungsumgebung
Lizenz: GPL
Deutschsprachig: Nein
Webseite: Webseite

Info

1976 wurden unter dem Namen Emacs diverse Makros als Samlung für den Editor TECO zusammen getragen. So kommt auch der eigentliche Name Emacs zu stande - Editor MACroS. Im Jahre 1984 wurde vom bekannten Richard Stallman an einer neuen Implementierung gearbeitet woraus später GNU Emacs das erste Programm des GNU-Projektes entstand. Damals stand Emacs unter der GNU Emacs General Public License welche die Grundlage von GPL General Public License war.


Besonderheiten

Emacs ist ein Editor welche nicht nur für das schreiben von reinem Text gedacht ist. Viel mehr ist es eine Entwicklungsumgebung für die unterschiedlichsten Bereiche. Der Emacs Editor verfügt über diverse Mods, somit kann wür jede Aufgabe ein Entsprechender Modus gewählt werden welche für genau diese Aufgabe angepasst ist.


Mods

In den meisten verschiedenen Metriebsarten Mods wird zum Beispiel die Syntaxhervorhebung unterstützt. Diese sorg dafür das Wöter oder auch Zeichen in Farben, Schriftarten und -stilen dargestellt werden können was bei Programm-Quelltexten und Konfigurationsdateien sehr hilfreich ist um die Übersicht nicht zu verlieren da es die Lesbarkeit von texten verbessert. Natürlich bieten die diversen Modi noch einiges mehr was einem die Arbeit erleichtert. Hierzu gehören zum Beispiel auch Übersetzungsvorgänge, Syntaxprüfer und Debugger etc. Ich möchte nun schnell ein paar der bekanntesten aufzählen um sich vorstellen zu können wo man Emacs überall einsetzen kann.

  • Text
  • LISP
  • HTML
  • Perl
  • Java
  • C
  • LaTeX
  • Very High Description Language
  • Kalender
  • Newsreader
  • Mailreader
  • Shell
  • FTP Client
  • Webbrowser
  • WikiMode
  • IRC Client
  • Instand Messenger
  • WebServer
  • MP3-Player
  • Psychotherapeut

Da die Auswahl so gross ist, habe ich hier die bekanntesten genannt. Im Internet gibt es noch unzählig weitere welche man installieren und in Emacs verwenden kann. Jeh nach Distribtuion und Installation sind bei Emacs die Modi vorhanden. Wem welche fehlen und gerne diese haben möchte muss sie daher eventuell selbst nachinstallieren.


Installation

Debian

apt-get update
apt-get install emacs22


Emacs Konsole

Emacs kann nach der Installation unter der Grafischen Oberfläche in einer Konsole im Textmodus gestartet werden, hierzu Emacs mit vollgender Option in der Konsole oder einem Terminal starten.

emacs -nw
Emacs im Textmodus


Emacs unter X

Um Emacs unter X mit einer grafischen GUI zu nutzen reicht die Eingabe des Befehls.

emacs

Zum normalen Emacs gibt es auch noch ein weiteres Projekt welches sich vorgenommen hat Emacs an X anzupssen. Dieses weitere Projekt ist selbständig und gehört nicht zum eigentlichen Emacs. Der von diesem Projekt angepasste Editor nennt sich so Xemacs und muss in der Regel seperat installiert werden da er nicht zum eigentlichen Emacs dazu gehört.


Bedienung

Emacs ist ein Editor der ohnde Maus auskommt und so komplett mit Tastenkombinationen gesteuert werden kann. Ich kann hier nicht alle Kombinationen aufgrund der Fielfalt nennen, möchte aber die wichtigsten nicht ausen vor lassen.

Es gibt jede Menge von Beispielen und Anleitungen im Internet in denen die Tastenkombinationen entsprechend dargestellt werden. Hier eine kleine Erklärung:

  • C-
    • Bedeutet STRG
  • M-
    • Bedeutet ALT




  • F10
    • Help Modus über welchen auch Aktionen ausgeführt werden können.


  • F1
    • Ruft die Hilfe auf
  • M-x Tabulator
    • Listet die möglichen Befehle mit Autoverfollständigung




Wir wollen nun mit der Kombination zum beenden von Emacs beginnen. Diese würde man in den üblichen Anleitungen so schreiben:

  • C-x C-c
    • Dies bedeutet das wir zum beenden die Tasten STRG x und STRG c hintereinander drücken müssen.


Datei

öffnen * speichern * beenden


  • (Öffnen) - Öffnen einer Datei, d.h. den Inhalt in einen Buffer laden.
    • C-x C-f
  • (Speichern) - Speichern vom Buffer Inhalt.
    • C-x C-s
  • (Speichern unter) - Speichern vom Buffer Inhalt in einer neuen Datei.
    • C-x C-w
  • (Beenden) - Beendet Emacs und frägt bei noch nicht gespeichertem nach.
    • C-x C-c


Buffer

listen * wählen * löschen

Bei Emacs werden geöffnete Inhalte in einen Buffer geladen, es können so auch mehrere Dateien geöffnet werden dessen Inhalt in mehreren Buffern zu finden ist und zwischen denen man hin und her schalten kann.


  • (listen) - Listet alle Buffer auf.
    • C-x C-b
  • (wählen) - Taste STRG x b drücken und anschliessend den Buffername schreiben um in ihn zu wechseln; zuvor am besten offene Buffer auflisten lassen.
    • C-x b <buffername>

Einzutragen ist dies im untersten Emacs Fenster nach der Kombination C-x b wo steht:

Switch to buffer (default *scratch*):

Beispiel:

Switch to buffer (default *scratch*): *Messages*
  • (löschen) - Löscht den aktuellen Buffer
    • C-x k


Fenster

teilen * wechseln * abschalten

Die div. Fenster in denen der Bufferinhalt oder sonstiges zu sehen ist kann entsprechend den eigenen Wünschen angepasst werden. So kann man zum Beispiel im oberen Teil ein Fenster mit einem Text geöffnet haben um daraus zu lesen und es in das untere Fenster zu schreiben.


  • (teilen) - Teilt ein Fenster horizontal.
    • C-x 2
  • (wechseln) - In ein anderes Fenster wechseln.
    • C-x o
  • (abschalten) - Das aktuelle Fenster abschalten.
    • C-x 0


Modus

Wenn wir unseren Emacs starten, so ist dieser als Standart meist im (Lisp) Modus. Weiter oben wurde ja bereit geschrieben das Emacs diverse unterschiedliche Modi zur verfügung stellt welche diverse Funktionen für bestimmte Aufgaben haben. Emacs ist in der Regel recht schlau und nimmt uns was die Wahl des Modi angeht schon einiges an Arbeit ab. Haben wir also unseren Emacs gestartet, und öffnen mit ihm nun eine Datei welche HTML Code beinhaltet, so schatet Emacs automatisch um und öffnet diese Date im HTML-Modus. Wir können immer sehen in welchem Modus wir uns gerade befinden, dazu muss man sich die leiste am unteren Rand nur etwas genauer ansehen. Der (Lisp Interaction) ist in der Regel der Standartmodus und wird so auch in der Statusleiste angezeit. Wenn man sich den Screenshot vom Emacs im Textmodus anschaut so wird man hier den (Emacs-Lisp) Modus sehen, beim Screenshot von Emacs unter X ist es (HTML-Fly) da hier eine HTML Datei geöffnet ist. So aber wie können wir nun selbst unseren Modus in welchem wir arbeiten wollen bestimmen.

  • < modus > -mode
    • M-x < gewünschter modus > -mode




  • Text Modus
    • M-x text-mode
  • HTML Modus
    • M-x html-mode
  • LaTeX Modus
    • M-x latex-mode
  • C++ Modus
    • M-x c++-mode
  • LISP Modus
    • M-x lisp-mode
  • Perl Modus
    • M-x perl-mode
  • Java Modus
    • M-x java-mode
  • Very High Description Language Modus
    • M-x vhdl-mode
  • Kalender Modus
    • M-x calendar
  • Newsreader Modus
    • M-x gnus
  • Shell script Modus
    • M-x sh-mode
  • FTP Client
    • M-x ftp
  • Webbrowser
    • M-x w3m


Und noch viel mehr sind jeh nach Installation verfügbar. Sollte ein Modus nicht vorhanden sein, so kann dieser in der Regel nachinstalliert werden. Das MeltiMedia Modus wäre so zum Beispiel der emms-mode um MP3 Files abspilen zu können. Wer eine kleine Übersicht haben möchte welche Befehle ihm unter ALT-x zu verfügung stehen kann dort einmal die Tabulatortaste für die Vervollständigung drücken.

Da jeder Modus eigene Funktionen und Optionen mit sich bringt, kann ich dies hier alles nicht aufzählen, mehr Infos soltext ihr aber in den Dokumentationen oder dem Netz finden. Auf ein paar kleine Funktionen und Einstellungen werde ich in der Emacs Konfigurationsdatei eingehen.


Emacs Konfiguration

Man kann für Emacs eine Konfigurationsdatei anlegen in der bestimmte Dinge den eigenen Wünschen angepasst werden können. Ich kann dies nur jedem empfehlen der vorhat sich ein bisschen mehr mit Emacs zu beschäftigen. Die entsprechende Konfigurationsdatei ist im /home/ ~ / anzulegen und nennt sich .emacs

/home/ ~ /.emacs

Anzeige

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;
;;; Anzeige
;;;;;;;;;;;

; Zeilenposition
; Durch diese Zeile wird die Zeilenprosition in der unteren Statusleiste angezeigt.
  (setq line-number-mode t)

; Spaltenposition
; Durch diese Zeile wird die Spaltenprosition in der unteren Statusleiste angezeigt.
  (setq column-number-mode t)

; Hervorhebung 
; Zusammengehoerenden Klammerpaaren werden hervorgehoben. 
; Nummer 1 bedeutet yes und nummer 0 bedeutet no.
; Sollte nicht im Betrieb geaendert werden.
  (show-paren-mode 1)

; Anzeigen von Uhrzeit und Datum in der unteren Statusleiste.
 (setq display-time-24hr-format t)
 (setq display-time-day-and-date t)
 (display-time)

; Keine Startup Message Meldung mehr beim starten von Emacs.
 (setq inhibit-startup-message t)

; Anti Aliasing
 (setq allow-anti-aliasing t
       fill-column 72)

; Laufleiste ein oder aus ausschalten
  (scroll-bar-mode -1)

; Schaltet blinkenden Cursor ein/aus.
  (blink-cursor-mode nil)

; Setzt Frame Titel und Buffer Name.
  (setq frame-title-format '("good luck " ("%f %m %b %a %D %I:%M:%S%p")))

; Setzt Icon Titel und Buffer Name.
  (setq icon-title-format '"Gnu Emacs")

; Im Konsolenmodus "emacs -nw" keine obere Menueleiste
 (unless window-system
 (menu-bar-mode 0))


Effekte

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;
;;; Effekte
;;;;;;;;;;;

; Sound 
; Schaltet den Pip-Ton ab.
(defun jbn-no-beep())
(setq ring-bell-function 'jbn-no-beep)


Default Mode

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Default Modus einstellen
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Hier kann ein default Modus eingestellt werden.
; Text Modus waere in diesem Beispiel default.
  (setq default-major-mode 'text-mode)

; P.S. Man sollte wirklich gut überlegen ob man den dies möchte, da es mir nicht gerade sinvoll erscheint !


Rechtschreibprüfung

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;;;;;;;;;;;;;;
;;; Rechtschreibpruefung
;;;;;;;;;;;;;;;;;;;;;;;;

; Rechtschreibpruefung kann unter Emacs in allen Modi verwendet werden.
; Hier wird fuer die Rechtschreibpruefung das Programm ''ispell'' verwendet welches bei jeder Distribution
; mit dabei sein sollte. Anstelle von ispell kann auch aspell verwendet werden.
  (setq-default ispell-program-name "ispell")

; Ispell wird automatisch fuer den Buffer geladen.
  (autoload 'ispell-buffer "ispell")

; Ispell kann manuell mit der Tasenkombination C-c C-v also STRG-c STRG-v gestartet werden.
  (global-set-key "\C-c\C-v" 'ispell-buffer)

; Ispell wird im ''Text Modus'' waerend dem eigentlichen schreiben verwendet und muss nicht manuell
; gestartet werden.
  (add-hook 'text-mode-hook 'flyspell-mode)

; Ispell kann auch manuell in jedem Mode aufgerufen werden durch die Eingabe von M-x ispell also ALT-x ispell

; P.S. Die Datei für Ispell welche neu hinzugefuegte Wörter beinhaltet ist in ~/.ispell zu finden.


Text-Mode

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;;;
;;; Text-Mode
;;;;;;;;;;;;;

; TEXT Mode mit Zeilenumbruch bei dem 72 Zeichen.
; Es wird also nach spaetestens dem 72 Zeichen umbrochen.
  (add-hook 'text-mode-hook
  (lambda ()
  (setq fill-column 72)

; Der Zeilenumbruch.
; Wird automatisch waerend dem schreiben durchgefuehrt. Manuell mit M-q also ALT-q
  (turn-on-auto-fill)))

; README Dateien werden im Text-Mode geoeffnet.
  (setq auto-mode-alist (cons '("\\README" .
  text-mode) auto-mode-alist))

; TXT Dateien werden im Text-Mode geoeffnet:
  (setq auto-mode-alist (cons '("\\.txt$" .
  text-mode)auto-mode-alist))


LaTeX-Mode

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;;;;;
;;; LaTeX-Mode
;;;;;;;;;;;;;;;

; TEX Dateien werden im LaTeX-Mode geoeffnet.
(setq auto-mode-alist (cons '("\\.tex$" .
latex-mode)auto-mode-alist))

; LaTeX-Mode mit ''nicht Automatischem'' Zeilenumbruch. 
; Manuell mit M-q also ALT-q möglich.
 (add-hook 'latex-mode-hook
 (lambda ()

; Umbruch bei 72 Zeichen 
 (setq fill-column 72)

; Schaltet Automatischen Umbruch ab.
(turn-off-auto-fill)))

; Programm zum Kompilieren der LaTeX TeX Dateien.
  (setq-default latex-run-command 'latex)


HTML-Mode

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;;;;
;;; HTML-Mode
;;;;;;;;;;;;;;

; HTML Dateien werden im HTML-Mode geoeffnet.
(setq auto-mode-alist (cons '("\\.html$" .
html-mode)auto-mode-alist))

; HTM Dateien werden im HTML-Mode geoeffnet.
(setq auto-mode-alist (cons '("\\.htm$" .
html-mode)auto-mode-alist))

; HTML-Mode  mit ''nicht Automatischem'' Zeilenumbruch. 
; Manuell mit M-q also ALT-q möglich.
  (add-hook 'html-mode-hook
  (lambda ()

; Umbruch bei 72 Zeichen 
  (setq fill-column 72)

; Schaltet Automatischen Umbruch ab.
  (turn-off-auto-fill)))


Mutt

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Emacs im MUTT Mail-Client
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Wird der Mail-Client ''Mutt'' verwendet mit dem Editor Emacs, so wird mit Hilfe dieser Zeile der Editor Emacs
; beim schreiben einer neuen Mail im Text-Mode gestartet welcher zudem bei 72 Zeichen umbricht und mit der 
; Rechtschreibprüfung Ispell arbeitet. (Falls installiert und entsprechend konfiguriert. Siehe Konfigurationsbeispiele!)
  (setq auto-mode-alist (cons '("\\mutt" .
  text-mode) auto-mode-alist))

; P.S. In der .muttrc waere als Editor "emacs -nw" einzutragen.


Backup

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;;;;;;
;;; Backup-Datei
;;;;;;;;;;;;;;;;

; Backups generell erstellen.
  (setq-default make-backup-files t)

; Copy-File anstelle von Ren-File.
  (setq-default backup-by-copying t)

; Wie viele alte Backup Versionen sollen beibehalten werden.
; Default ist hier 2.
  (setq-default kept-new-versions 10)

; Automatisches speichern einer Datei.
  (setq-default auto-save-default t)

; Automatisches speichern alle paar Sekunden oder Minuten
; Hier den Wert in Sekunden angeben. 
  (setq-default auto-save-timeout 300)


Kalender

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;;
;;; Kalender
;;;;;;;;;;;;

; Pfad zur Kalenderdatei in welcher die Daten gespeichert werden. 
; Die .diary Datei im Homeverzeichniss.
 (setq diary-file "~/.diary")

; Kalender Benachrichtigung bei Ereignissen
 (display-time)
 (add-hook 'diary-hook' appt-make-list)
 (diary 0)


Tabulator

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Tabulator Einstellung
;;;;;;;;;;;;;;;;;;;;;;;;;

; Ein Tabulator ist 8 Spaces.
; Der Wert 8 ist auch default.
  (setq-default tab-width 8)


F-Tasten Belegung

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;;;;;;;;;;;
;;; F-Tasten Belegung
;;;;;;;;;;;;;;;;;;;;;

; Belegt die F4 Taste mit der Rechtschreibpruefung "ispell".
  (define-key global-map [(f4)] 'ispell)

; Belegt die F5 Taste mit dem Kalender.
  (define-key global-map [(f5)] 'calendar)


Frame Grösse

;;; Ausgeklammerter Text im Code welcher nicht zu beruecksichtigen ist wird mit dem Semikolo (;) gekennzeichnet.

;;;;;;;;;;;;;;;;;
;;; Frame Groesse
;;;;;;;;;;;;;;;;;

; Hier kann die Frame Groesse eingestellt werden. Es ist die Groesse des Emacs bereiches in der Konsole.
; Diese werte bitte vorsichtig waehlen, wir haben hier die Standartgroesse wie man sie von Konsolen mit 25x80 kennt.
  (set-frame-height (selected-frame) 25)
  (set-frame-width (selected-frame) 80)

; P.S. In der Regel werden diese Einstellungen nicht benoetigt und sollten daher weg gelassen werden.


Versionen


Links



zurück zu Office