[[Vorlage(Getestet, focal, bionic)]] {{{#!vorlage Wissen [:Emacs: Hauptartikel zu Emacs] [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Emacs/emacs_icon.png, 48, align=left)]] Der Editor [:Emacs:] ist sehr stark erweiterbar. Neben dem ELPA gibt es auch Community-Projekte, die darauf abzielen eine weitgehend fertige, vorkonfigurierte Lösungen anzubieten oder Emacs zu erweitern. Hier steht lediglich eine minimale Auswahl an zufälligen Erweiterungen zur Verfügung. \\ Die Hauptseite [1] des Artikels findet man unter [:Emacs:]. Die nachfolgenden Beispiele sind sowohl über die [:Paketverwaltung:], als auch über die emacs-interne Paketinstallation erhältlich. == AUCTeX == Wenn es um [:LaTeX:]-Programmierung geht, bietet [http://www.gnu.org/software/auctex/ AUCTeX] {en} eine sehr leistungsfähige Erweiterung, die eine komfortable Erstellung und Ansicht von LaTeX- und TeX-Dateien ermöglicht. Mit Hilfe der Erweiterung [http://www.gnu.org/software/auctex/preview-latex.html preview-latex] {en} werden bereits im Editor die mit LaTeX-gesetzten Formeln, Bilder und andere grafische Elemente angezeigt. Zu den umfangreichen Möglichkeiten von AUCTeX gehören: * Editieren: * Einfügen von Makros, Umgebungen und Überschriften mit einer einfachen Tastenkombination oder mit einem Menübefehl. Bei dem Einfügen von LaTeX-Kommandos können diese ebenfalls mit Hilfe der Tabulatortaste vervollständigt werden. Bei bekannten Makros werden auch Informationen abgefragt. * Einfügen von Mathematik-Makros mit einfachen Tastenkombinationen oder mit einem Menübefehl. * Ausgeklügelte Darstellung von Befehlen mit Einfluss auf die Schrift (Überschriften, Schriftgrößen, Fettdruck, ...) sowie Einrückung von Makros und Umgebungen. * Falten von Makros und Umgebungen. * Verwaltung von Referenzen, Literaturverzeichniseinträge und Labels mit Hilfe des integrierten [http://www.gnu.org/software/auctex/reftex.html RefTeX] {en}. * Kompilieren * Starten verschiedener TeX/LaTeX Interpreter und benötigter Hilfsprogramme wie BiBTeX und makeindex innerhalb von Emacs. * Anzeigen von Fehlermeldungen beim Kompilieren, dabei wird sogar zu der entsprechenden Stelle im TeX/LaTeX Quellcode gesprungen. * Anzeigen * Starten von Anzeigeprogrammen für erzeugte DVI, PostScript und PDF Dateien. * Hilfe * Über [[Vorlage(Tasten,ctrl+h)]], [[Vorlage(Tasten,i)]], [[Vorlage(Tasten,ctrl+d)]], [[Vorlage(Tasten,m)]] {{{#!vorlage befehl AUCTeX}}} steht eine Dokumentation innerhalb von Emacs bereit. * [ftp://ftp.gnu.org/gnu/auctex/] bietet unter der jeweiligen Versionsnummer eine Referenzkarte ('''tex-ref.pdf''') zum Download. Die Erweiterung AucTeX kann für entsprechende [:Emacs/Installation:Installationen] aus den Ubuntu-Quellen installiert [2] werden. {{{#!vorlage Paketinstallation auctex }}} Zur Aktivierung von AUCTex muss die Konfigurationsdatei um die folgenden Einträge ergänzt werden: {{{#!code lisp ;;; Anpassungen für AUCTeX (load "auctex.el" nil t t) (load "preview-latex.el" nil t t) (require 'tex-site) ;;; Anpassungen für RefTeX (require 'reftex) (add-hook 'LaTeX-mode-hook 'turn-on-reftex) (add-hook 'latex-mode-hook 'turn-on-reftex) (setq reftex-plug-into-AUCTeX t) (setq reftex-external-file-finders '(("tex" . "kpsewhich -format=.tex %f") ("bib" . "kpsewhich -format=.bib %f"))) }}} Wer eine Ausgabe als PDF möchte, kann zusätzlich {{{#!code lisp (setq TeX-PDF-mode t) }}} ergänzen. Dann wird standardmäßig eine PDF erzeugt. == CompAny == [http://company-mode.github.io/ CompAny] {en} (steht für ''complete anything'') bietet Text-Vervollständigung und ist durch Plugins erweiterbar. Die Erweiterung kann für entsprechende [:Emacs/Installation:Installationen] aus den Ubuntu-Quellen installiert [2] werden. {{{#!vorlage Paketinstallation elpa-company, universe }}} Die Aktivierung erfolgt durch {{{#!code lisp (add-hook 'after-init-hook 'global-company-mode) }}} == ECB == '''ECB''' ([https://www.emacswiki.org/emacs/EmacsCodeBrowser Emacs Code Browser] {en}) ist eine Erweiterung für Emacs, die einen graphischen Dateibrowser enthält. Für eine genaue Beschreibung, siehe [http://ecb.sourceforge.net/]. Die Erweiterung kann für entsprechende [:Emacs/Installation:Installationen] aus den Ubuntu-Quellen installiert [2] werden. {{{#!vorlage Paketinstallation ecb }}} '''ECB''' kann in Emacs mit dem Befehl [[Vorlage(Tasten,ALT+x)]] {{{#!vorlage befehl ecb-activate}}} gestartet werden. Alternativ kann man seine Konfigurationsdatei um den folgenden Eintrag ergänzen: {{{#!code lisp (ecb-activate) }}} Beim ersten Start kommt ein Hinweis, dass bestimmte Daten in der Konfigurationsdatei gespeichert werden müssen. Dies erledigt '''ECB''' automatisch. Dazu einfach auf '''save''' bzw. '''speichern''' klicken. Um mit einem anderen Layout von '''ECB''' zu starten, muss man die Konfigurationsdatei nochmals ergänzen ("left14" durch das gewünschte Layout ersetzen): {{{#!code lisp (setq ecb-layout-name "left14") (ecb-activate) }}} Hierbei allerdings darauf achten, dass diese Zeile '''vor''' ''(ecb-activate)'' steht. == Evil-Mode == Für Nutzer von [:VIM:vi/vim] bietet Emacs den [https://www.emacswiki.org/emacs/Evil Evil]-Modus, welcher die Tastaturbelegung von `vi`/`vim` simuliert und so den Umstieg, bzw. die parallele Nutzung vereinfacht. Die Erweiterung kann für entsprechende [:Emacs/Installation:Installationen] aus den Ubuntu-Quellen installiert [2] werden. {{{#!vorlage Paketinstallation elpa-evil, universe }}} Für eine verbesserte Klammersetzung steht das Paket [packages:elpa-evil-paredit:] zur Verfügung. Die Aktivierung erfolgt durch {{{#!code lisp (require 'evil) (evil-mode 1) }}} == org-mode == [[Bild(emacs_orgMode_in_MATE.png, 200, align=right)]] Ein weitere Erweiterung für Emacs ist [http://orgmode.org/ Org-Mode] {en}. Die Stärken der Erweiterung ist das Aufnehmen und Verwalten von Notizen, ToDo-Listen, Projektplanung und Erstellung von Webseiten und PDF-Dateien. Org-Mode ist sehr flexibel einsetzbar und stark dokumentiert. Es wird auch häufig für Zeitmanagement (z.B. Getting Things Done) verwendet. Eine [http://orgmode.org/orgcard.pdf Referenzkarte] {en} ist ebenfalls verfügbar. Die Erweiterung kann für entsprechende [:Emacs/Installation:Installationen] aus den Ubuntu-Quellen installiert [2] werden. {{{#!vorlage Paketinstallation elpa-org, universe }}} Der org-mode ist automatisch in Emacs verfügbar. Es sind jedoch einige Einstellungen empfohlen. {{{#!code lisp ;; Empfohlene Tastenbelegungen (global-set-key (kbd "C-c l") 'org-store-link) (global-set-key (kbd "C-c a") 'org-agenda) (global-set-key (kbd "C-c c") 'org-capture) ;; Standardpfad setzen: ( Ansonsten ist es '~/org' ) (setq org-directory "~/mein/org/pfad") }}} Für den org-mode stehen unter [https://orgmode.org/#docs] {en} diverse Anleitungen und Tutorials zur Verfügung. = Sonstiges = == Eigene Pakete== Eigene Pakete können in Form von ''.el''-Datei(en) ebenfalls angelegt werden und mittels `compile` zu ''.elc'' kompiliert werden. Dabei sieht es Emacs gerne, wenn man die (an sich optionalen) Dokumentations-Zeichenketten verwendet. Die geltende Konvention kann unter [https://www.gnu.org/software/emacs/manual/html_node/elisp/Library-Headers.html#Library-Headers Library-Headers] {en} eingesehen werden. Das Einbinden kann u.a. mittels {{{#!code lisp (load-path "/Pfad/zu/lisp-Dateien/") ;; oder für eine einzelne Datei (load "/Pfad/zur/lisp-Datei") }}} Ein Beispiel für ein eigenes Paket findet sich unter [:Emacs/Konfigurationen#DBUS_in_Emacs:]. === Kompilieren === Emacs Lisp kann in Bytecode kompiliert werden und wird somit schneller. Wächst mit der Zeit die Konfiguration an, kann es sich lohnen Teile davon auszulagern und/oder sein Konfigurations-Verzeichnis zu kompilieren. Die Kompilierung kann mit den elisp-Methoden `byte-compile-file` oder `byte-recompile-directory` erfolgen. Es bietet sich an, dies außerhalb von Emacs zu erledigen, da der Editor nach einem Kompiliervorgang neu gestartet werden sollte: {{{#!vorlage befehl emacs --batch --eval '(byte-compile-file "meinPaket.el")' emacs --batch --eval '(byte-recompile-directory "~/.emacs.d")' }}} == Komplettpakete == Einige Community-Projekte bieten eine fertige Konfiguration an und erweitern Emacs um Standards wie bspw. ''org-mode''. Beispiele (alphabetisch): * [github:hlissner/doom-emacs:doom-emacs] {en} - Emacs mit Evil-Mode * [github:manateelazycat/emacs-application-framework:Emacs Application Framework (EAF)] {en} - Emacs mit PyQt-Binding * [https://www.spacemacs.org/ Spacemacs] {en} - Emacs mit gehirn-gerechten Tastenkürzeln * [github:ch11ng/exwm:Emacs X Window Manager] {en} - Tiling X-Window Manager auf Emacs-Basis == Themes == Emacs bringt einige Themes mit, welche über [[Vorlage(Tasten,ALT+x)]] {{{#!vorlage befehl load-theme}}} geladen werden können. Diese Funktionalität steht auch über das Menü (''Options'' - ''Customize Emacs'' - ''Custom Theme'') zur Verfügung. Die Themen unterteilen sich in zwei unabhängig voneinander entwickelte Bereiche. [https://www.emacswiki.org/emacs/CustomThemes CustomThemes] und [https://www.emacswiki.org/emacs/ColorThemes Color Themes]. Letztere stehen dabei '''nicht''' unter `customize` zur Verfügung und müssen separat behandelt werden. === Thema in der laufenden Instanz wechseln === [[Vorlage(Tasten,ALT+x)]] {{{#!vorlage befehl load-theme [THEMENNAME]}}} === Thema in der Konfiguration festlegen === In der Konfigurationsdatei wird im Abschnitt ''custom-set-variables'' das Thema eingetragen: {{{#!code lisp (custom-set-variables ;; … '(custom-enabled-themes (quote (THEMENNAME))) ;; … ) }}} Der Eintrag kann auch mehrfach eingetragen werden, was zu Darstellungsproblemen führen kann! = Links = == intern == * [:Emacs:] Hauptartikel * [:Emacs/Konfigurationen:] - Konfigurations-Schnipsel in elisp # tag: Editor, Emacs