Mehr mitgelieferte Batterien in Emacs
(karthinks.com)- Die Standardfunktionen von Emacs umfassen viele Werkzeuge, die ohne zusätzliche Pakete nutzbar sind, aber kaum auffallen; selbst in modernem Emacs 28.1+ lassen sich weiterhin praktische Funktionen entdecken, die man in fünf Minuten lernen kann
- Alltägliche Aufgaben wie Dateien öffnen, URLs sammeln, vergleichen und Änderungen nachverfolgen lassen sich zu großen Teilen allein mit
find-file,dired,ffap-menu,compare-windowsundhighlight-changes-modeerledigen - Backup-Dateien und Versionsverwaltungsdateien lassen sich durch das Erweitern der
vc-diff-Befehlsfamilie in ein einziges Arbeitsmodell „mit vorheriger Version vergleichen“ zusammenführen - Bearbeitungs-, Navigations- und Anzeigeaufgaben lassen sich mit bereits enthaltenen Funktionen wie der
apropos-Familie,find-function-on-key,kmacro-edit-lossage,subword-modeund der Keymap zur Bildbearbeitung schnell verbessern - Die zentrale Erkenntnis ist, dass selbst wenn das
lisp-Verzeichnis von Emacs nicht groß ist, mit den standardmäßig eingebauten Funktionen weiterhin Spielraum besteht, den eigenen Arbeitsablauf zu erweitern
Überblick und Umfang
- Bei Emacs-Funktionen gibt es ein Problem der Auffindbarkeit, und dieser Artikel ist ein Versuch, dieses Problem zu verringern, indem er nützliche, aber wenig bekannte eingebaute Funktionen einzeln vorstellt
- Dies ist der dritte Artikel über nützliche, aber weniger bekannte Funktionen, die standardmäßig in Emacs enthalten sind
- „Weniger bekannt“ ist eine subjektive Einschätzung und meint grob Funktionen, die in den letzten 20 Jahren in Online-Diskussionen über Emacs weniger als fünfmal erwähnt wurden oder die der Autor überhaupt nicht gesehen hat
- Neue Emacs-Nutzer sollten besser nicht hier beginnen; nützlicher wird diese Liste, nachdem man sich mit den Grundkonzepten und weithin empfohlenen Paketen vertraut gemacht hat
- Die Kriterien sind: nur pures Emacs ohne Pakete, keine steile Lernkurve, Ausschluss von Spielereien und häufig erwähnten Funktionen, und als Voraussetzung modernes Emacs 28.1+
Wörterbuch per Mouseover: M-x dictionary-tooltip-mode
- Wenn
dictionary-tooltip-modeaktiviert ist, kann man die Bedeutung eines Worts als Tooltip sehen, wenn man mit der Maus darüberfährt - Auch
tooltip-modemuss aktiviert sein, ist aber standardmäßig eingeschaltet - Wenn ein lokales Wörterbuch eingerichtet ist, wird es zuerst verwendet; das Emacs-Wörterbuch kann über Wiktionary meist auch moderne Begriffe und Slang finden
Wildcards in find-file und dired
- Auch bei der interaktiven Nutzung von
find-fileunddiredlassen sich Wildcards verwenden - Verwendet man in
find-fileein Muster wie*foo*.txt, können mehrere Dateien auf einmal geöffnet werden - Gibt man beim Öffnen eines Verzeichnisses in Dired einen Dateinamen-Wildcard an, lässt sich eine benutzerdefinierte Liste nur mit bestimmten Dateien erstellen
- Der Beispielablauf sucht mit dem Muster
*/*_region_*nach temporären AucTeX-Dateien in Unterverzeichnissen, wählt sie in Dired aus und löscht sie und öffnet danach erneut per Wildcard mehrere TeX-Dateien in Unterverzeichnissen - In der Funktionssignatur ist diese Möglichkeit bei Programmaufrufen sichtbar, aber dass sie auch interaktiv nutzbar ist, erkennt man meist erst, wenn man die vollständige Docstring liest
- Die Wildcard-Funktion von Dired mag gegenüber modernen Dired-Abläufen mit
consult-findundembark-exportzurückstehen, funktioniert aber sofort im Auslieferungszustand
URI-Liste im Buffer: M-x ffap-menu
ffapist die find-file-at-point-Funktion, die prüft, ob die Cursorposition auf einen gültigen Dateipfad oder eine URL zeigt, und diese dann öffnen kannffap-menudurchsucht den gesamten Buffer und erstellt eine Liste von Einträgen, die wie Dateipfade oder URLs aussehen- Da es die
completing-read-Schnittstelle nutzt, kann man die gefilterte Kandidatenliste in einen Buffer exportieren oder einige bzw. alle Einträge kopieren, öffnen oder mit Embark verarbeiten -
Links mit Eigenschaften auflisten
- Emacs-Anwendungen wie EWW fügen URLs teils nicht als Klartext-Links, sondern als Texteigenschaften ein, und
ffap-menuübersieht diese - Um das auszugleichen, kann man mit einem von
ffap-menuinspirierten benutzerdefinierten Befehl auch die Texteigenschaftshr-urleinsammeln - Der Beispielbefehl
my/search-occur-browse-urlist so aufgebaut, dass er sowohl normale URL-RegExps als auch die Eigenschaftshr-urlfindet, daraus Vervollständigungskandidaten bildet und die gewählte URL mitbrowse-urloderbrowse-url-genericöffnet
- Emacs-Anwendungen wie EWW fügen URLs teils nicht als Klartext-Links, sondern als Texteigenschaften ein, und
Fenster vergleichen: M-x compare-windows
- Emacs hat viele Vergleichsbefehle wie
diff,diff-buffers,diff-backup,dired-diff,vc-diffund verschiedeneediff-*-Befehle compare-windowsvergleicht Text ab den Cursorpositionen zweier Fenster, hält an der nächsten Abweichung an und meldet diese- Verglichen werden das aktive Fenster und das Fenster, das
other-windowauswählen würde; gegenüber Ediff oder diff ist es funktionsärmer, aber leichter und schneller auszuführen - Unabhängig von Buffer-Typ, Änderungsstatus, Datei oder Versionsverwaltungsstatus wird nur der tatsächlich in den beiden Fenstern sichtbare Text verglichen
- Zeigt man in zwei Fenstern verschiedene Teile desselben Buffers an, lassen sich auch zwei Textausschnitte innerhalb desselben Buffers vergleichen
- Auch Verzeichnislisten lassen sich vergleichen; im Beispiel wird die Dateiänderungszeit als erste Abweichung erkannt
- Mit einem Präfixargument lassen sich Unterschiede in Leerraum ignorieren
Verzeichnisse mit Dired vergleichen: M-x dired-compare-directories
dired-compare-directoriesfragt in Dired nach dem zu vergleichenden Verzeichnis und markiert in beiden Dired-Listen Dateien mit unterschiedlichen Namen- Dieser Ansatz deckt die häufigsten Anwendungsfälle für Verzeichnisvergleiche ab
- Da auf Dateiebene verglichen wird, lassen sich benutzerdefinierte Abgleichsbedingungen einschließlich Dateiattributen wie Änderungszeit oder Größe angeben
- Die Bedingung
(> mtime2 mtime1)kann Dateien markieren, die neuer geändert wurden - Die Bedingung
(/= size1 size2)kann Dateien markieren, die denselben Namen, aber unterschiedliche Größen haben - Wenn ein interaktiverer Vergleich nötig ist, kann auch
ediff-directoriesverwendet werden
Buffer-Änderungen hervorheben: M-x highlight-changes-mode
highlight-changes-modehebt Stellen mit Dateiänderungen hervor und kann als „Live“-Alternative zu diff-Befehlen wiediff-buffer-with-filedienen- Das Standardverhalten hebt Änderungen vom Zeitpunkt des Aktivierens des Modus bis zu seinem Ausschalten hervor; es geht nicht automatisch nur um ungespeicherte Änderungen
- Mit
before-save-hookundafter-save-hooklässt sich ein Ablauf bauen, bei dem die Hervorhebung vor dem Speichern ausgeschaltet und danach wieder eingeschaltet wird, sodass nur Änderungen vor dem Speichern hervorgehoben werden - Der Beispielcode aktiviert
highlight-changes-modein Datei-Buffern übertext-mode-hookund steuert den Hervorhebungszustand mit Hooks vor und nach dem Speichern - In Form eines eigenständigen
highlight-unsaved-modewürde daraus ein Minor Mode, der alle Änderungen bis zum Speichern hervorhebt - Mit
highlight-changes-next-changeundhighlight-changes-previous-changekann man zur nächsten bzw. vorherigen Änderungsstelle springen - Mit
highlight-changes-remove-highlightlässt sich die visuelle Hervorhebung entfernen und nur die auf Änderungsverfolgung basierende Navigation weiter nutzen
Backup-Dateien tatsächlich nützlich machen: die vc-diff-Familie
-
Das Problem mit Emacs-Backups
- Emacs erstellt standardmäßig regelmäßig Backups von Dateien, die bearbeitet und gespeichert werden
- Dieses Backup-System wird oft als lästige Funktion erwähnt, die man mit
make-backup-filesabschalten sollte - Bei sensiblen Dateien kann es Sicherheitsbedenken geben, wenn Kopien an anderer Stelle auf der Festplatte landen
- Abgesehen davon besteht das Problem vor allem darin, dass Backups im Arbeitsverzeichnis verstreut werden und es an einer leicht nutzbaren UI zum Durchsehen oder Verwalten der Backup-Dateien fehlt
- Mit Benutzeroptionen wie
backup-directory-alist,kept-old-versionsundkept-new-versionslassen sich Speicherort und Anzahl der Backups anpassen - Das externe Paket
backup-walkerbietet eine Oberfläche, mit der sich Backups wie eine Zeitreise durchsuchen lassen
-
Erweiterung der VC-Oberfläche
- Das in Emacs eingebaute VC-Paket bietet eine Oberfläche, um ältere Versionen versionsverwalteter Dateien anzusehen
vc-diffvergleicht eine Datei per Diff mit der vorherigen oder einer angegebenen Versionvc-ediffstartet Ediff mit der vorherigen oder einer angegebenen Version einer Dateivc-revision-other-windowzeigt die vorherige oder eine angegebene ältere Version neben der aktuellen Datei an- Diese Oberfläche ist nicht auf Git beschränkt, funktioniert aber nicht bei nicht versionsverwalteten Dateien
- Wenn man die drei VC-Befehle überlädt, lassen sich ungespeicherte Buffer, versionsverwaltete Dateien und Backups nicht versionsverwalteter Dateien in einem Modell „mit vorheriger Version vergleichen“ zusammenführen
- Bei ungespeicherten Dateien vergleichen
vc-diffundvc-ediffden Buffer mit der Datei - Bei versionsverwalteten Dateien laufen die ursprünglichen
vc-diff,vc-ediffundvc-revision-other-windowunverändert weiter - Bei nicht versionsverwalteten Dateien wird mit dem zuletzt nummerierten Backup oder mit einem per Präfixargument gewählten nummerierten Backup verglichen bzw. dieses angezeigt
Die apropos-Familie
describe-key, alsoC-h k, ist eine äußerst nützliche Hilfetaste, weil man direkt nachsehen kann, welche Funktion ein Tastendruck aufruft- Als zweite Hilfefunktion, die man lernen sollte, ist
aproposbesonders mächtig und ein Einstieg, um die Anordnung der Emacs-Funktionen zu verstehen, wenn man noch nicht weiß, wonach man suchen muss aproposist nicht nur ein einzelner Befehl, sondern eine Familie spezialisierter Suchbefehle wieapropos-library,apropos-function,apropos-command,apropos-variable,apropos-user-option,apropos-documentationundinfo-apropos- Die Beispielkonfiguration ersetzt
apropos, indem sie diese Befehle unter einer Keymap aufC-h alegt - Auch ohne einen Prompter wie
which-keykann man nach dem PräfixtastendruckC-h amitC-hdie Liste der verfügbaren Befehle anzeigen customize-apropossammelt passende Optionen, Faces und Gruppen zu einem Suchbegriff und erstellt daraus einen angepassten Customize-Buffer
find-func-Werkzeuge: M-x find-function-on-key, M-x find-function
- Wenn einem ein Keybinding nicht gefällt oder man sein Verhalten verstehen möchte, kann man zur Definition des von dieser Taste aufgerufenen Befehls springen, um den Code zu lesen oder zu ändern
- Der übliche Ablauf ist, mit
describe-keyoderC-h kzuerst den von der Taste aufgerufenen Befehl zu prüfen und dann mitszum Quelltext zu springen find-function-on-keyverkürzt diesen zweiten Schritt und springt direkt vom Keybinding zum Quelltext der Funktion- Die Beispielkonfiguration bindet in
help-mapC-h M-kanfind-function-on-key
copy-from-above-command und duplicate-dwim
- In Emacs wurden zuletzt mehrere Befehle zum Duplizieren von Text aufgenommen, die viele Nutzer schon seit Langem verwenden
copy-from-above-commandkopiert Text aus der ersten nicht leeren Zeile über der aktuellen Zeile und ähnelt VimsC-yduplicate-dwimkopiert die aktuelle Zeile oder den aktiven Bereich unter die aktuelle Zeile und ähnelt Vimsyy<N>pcopy-from-above-commandkopiert entsprechend dem Präfixargument Zeichen aus der oberen Zeile, aber das Beispiel-Advice verändert einC-u-Präfixargument zu „gesamte obere Zeile kopieren und auskommentieren“- Mit einem numerischen Präfixargument
C-<N>kann man wie bisher eine festgelegte Anzahl Zeichen von oben kopieren - Bei
duplicate-dwimmuss entschieden werden, ob der Cursor nach dem Duplizieren auf dem Original oder auf der Kopie stehen soll; das lässt sich über Benutzeroptionen festlegen - Die Beispielkonfiguration setzt
duplicate-region-final-positionundduplicate-line-final-positionauf-1, sodass Cursor und Bereich zum duplizierten Text verschoben werden
Tastenanschläge in ein Makro verwandeln: M-x kmacro-edit-lossage
- Emacs-Tastaturmakros können nicht nur Texttransformationen, sondern jede Aktionssequenz in Emacs inklusive Mausklicks aufzeichnen und wiedergeben
- Tastaturmakros sind mächtig, erzeugen aber kognitive Last, weil man vor dem Start der Aufzeichnung eine Wiederholungsmöglichkeit vorhersehen und eine fehlerfreie verallgemeinerte Aktion ausführen muss
- Vims
.-Befehl und das Emacs-Paketdot-modeentschärfen das Problem wiederholter Bearbeitung, haben aber einen anderen Umfang als vollständige Tastaturmakros view-lossage(C-h l) zeigt die letzten ungefähr 300 Tastenanschläge ankmacro-edit-lossageermöglicht es, jederzeit aus diesem Tastenprotokoll ein Makro zu machen- Lossage ist tatsächlich editierbar, sodass man beim Erstellen eines Makros neue Befehle in das Protokoll einfügen kann
- Bereits definierte Makros lassen sich häufiger mit
edit-kbd-macro(C-x C-k e) bearbeiten, aberkmacro-edit-lossageist nützlich, um in seltenen Situationen eine gerade ausgeführte komplexe Aufgabe wiederholbar zu machen - Um ein verallgemeinerbares Makro zu erstellen, muss man oft einen Aufruf von
kbd-macro-queryin die Lossage einfügen
subword-mode, superword-mode und Wortgrammatik
- Die wortbasierten Bewegungs- und Bearbeitungsbefehle von Emacs verwenden je Major Mode eine Syntaxtabelle, und was als Wort gilt, kann vom Benutzer angepasst werden
- Im
subword-modewird jede Komponente eines CamelCase-Symbols als eigenes Wort behandelt - Beispielsweise wird
GtkWindowinGtkundWindow,EmacsFrameClassinEmacs,Frame,ClasssowieNSGraphicsContextinNS,Graphics,Contextaufgeteilt - Im
superword-modewerden snake_case-Symbole wiethis_is_a_symbolals ein einziges Wort behandelt - In der Praxis ist
superword-modeweniger nützlich alssubword-mode, weil sich die Bearbeitung von Symbolen bereits gut mit*-sexp-Befehlen abdecken lässt - Schon ein paar Minuten Arbeit an der Syntaxtabelle eines Major Mode können Reibung bei struktureller Navigation verringern
- Im Lisp-Umfeld kann man
:als wortbildendes Zeichen definieren, damit sich Keywords wie:fooleichter mitbackward-kill-wordverarbeiten lassen - Im Org mode kann man die Trennzeichen
=und~so behandeln, als gehörten sie zur Wortbildung - Wie Zeichensyntax angegeben wird, lässt sich mit
describe-syntax(C-h s) undmodify-syntax-entrynachsehen
Bildanzeige steuern
- Fast überall in Emacs, wo Bilder angezeigt werden, kann man den Cursor auf ein Bild setzen und mit
idie Darstellung steuern - Dieselben Steuerungen funktionieren auch bei der Vorschau von Bildlinks im Org mode und bei Bildern in Elfeed-Eintragsbuffern
i +undi -sind nützlich zum Vergrößern und Verkleinern,i rdreht das Bild um 90 Grad- Mit
i ckann man das Bild auch zuschneiden; die vollständigen Tasten findet man unterM-x describe-keymap RET image-map - Auch das aus Browsern und anderen Anwendungen vertraute Kürzel
C-<wheel>kann verwendet werden - Mit
repeat-modelassen sich nach dem ersten Aufruf+,-undrohne das Präfixiwiederholen - Diese Funktion wird über eine auf dem Bild liegende Keymap bereitgestellt und muss nicht extra aktiviert werden
- Verändert wird nicht die Bilddatei auf der Festplatte, sondern nur der Anzeigestatus
- Auf Webseiten und in gerenderten HTML-Buffern zerlegt
z(shr-zoom-image) Bilder in mehrere horizontale Streifen und wechselt zyklisch die Größe, um Beschränkungen bei der Anzeige großer Bilder zu entschärfen
Gesamten Text anzeigen: M-x visible-mode
- Emacs kann Buffer-Text selektiv unsichtbar machen; darauf basieren Faltfunktionen wie in Magit sections, Outline mode und Org mode
- Modi mit Faltfunktionen bieten normalerweise Keybindings zum Umschalten des Faltzustands, und
TABfunktioniert meist - Wenn es schwer ist, sich modusspezifische Keybindings zu merken, oder man sie nicht oft genug benutzt, kann man mit
visible-modeallen versteckten Text anzeigen visible-modedeaktiviert die Unsichtbarkeit von Text für den gesamten Buffer und stellt beim erneuten Ausführen den vorherigen Unsichtbarkeitszustand wieder her- In Buffern mit dynamischer Falt-UI kann die Anzeige während aktiviertem
visible-modekaputt oder unordentlich wirken - Die Funktion ist eher eine temporäre Maßnahme oder ein Debugging-Werkzeug, kann aber mit einem Befehl sämtlichen Text im Buffer einheitlich sichtbar machen
Unsichtbaren Text ignorieren: isearch-toggle-invisible
- Einige Emacs-Befehle wie Isearch ignorieren standardmäßig die Text-Unsichtbarkeit, damit sich das tatsächliche gesamte Dokument leicht durchsuchen lässt
- Wenn der sichtbare Buffer-Zustand als Navigationshilfe dient, kann eine Suche, die gefalteten Text automatisch aufdeckt, anders als erwartet funktionieren
- Wenn man Isearch eher als Navigationswerkzeug denn als Suche verwendet, wird es problematisch, zu Treffern in gefalteten Bereichen zu springen
- Während Isearch kann man mit
isearch-toggle-invisible, gebunden anM-s i, umschalten, ob unsichtbarer Text durchsucht wird - Im Beispiel wurde nach
zerogesucht, um zur letzten Überschrift in einem Org-Dokument zu springen, dabei aber zu einem Treffer in einem gefalteten Bereich gesprungen; bei der erneuten Suche wurdeM-s igedrückt, um nur noch zu Treffern im sichtbaren Text zu springen - Die Umschalttasten für das Isearch-Verhalten liegen unter dem
M-s-Keymap, passend zum Standard-BindingC-s
Lineal: M-x ruler-mode
- In Emacs sind als Relikte früherer WYSIWYG-Textverarbeitungsfunktionen noch Features wie die Befehle
center-*erhalten - Die Befehle
center-*zentrieren Zeilen, Absätze oder Regionen anhand vonfill-columnund können etwa für dekorative Kommentare in Code verwendet werden - Die Breite von display margin und fringe ist Bildschirmfläche, in der sich viele Funktionen unterbringen lassen, aber die display margin direkt zu ändern ist nicht einfach
set-left-marginundset-right-marginändern nicht die Breite der display margin, sondern verhalten sich ähnlich wie diecenter-Befehle und rücken den eigentlichen Buffer-Text ein- Für die Konfiguration der display margin gibt es keinen direkten Befehl, und Änderungen werden erst wirksam, wenn das Fenster erneut dargestellt wird
- Wenn man
ruler-modeaktiviert, kann man die Bedienung über Tooltips in der header-line sehen - Mit
S-<mouse-1>undS-<mouse-3>lassen sich die linken und rechten margins des Buffers setzen - Mit Drag auf
<mouse-2>lässt sich auchfill-columnsetzen - Wenn man margins spontan statt über Preset-Breiten umschalten möchte, kann
ruler-modebenutzerfreundlicher sein als Pakete wievisual-fill-columnoderolivetti
Text erneut umbrechen: M-x refill-mode
- Emacs bietet mehrere
fill-*-Befehle zum Umbrechen von Text sowieauto-fill-mode, das Zeilenumbrüche während der Eingabe behandelt auto-fill-modewird schon früh im Emacs-Tutorial behandelt, was zeigt, dass Textumbruch als wichtige Bearbeitungsfunktion giltauto-fill-modeist in Wirklichkeit nicht vollständig automatisch: Es bricht nur die aktuelle Zeile um, und Verschiebungen in früheren Absätzen, etwa durch Einfügen, müssen manuell korrigiert werdenrefill-modeist die tatsächlich automatische Textumbruch-Funktion in Emacs, die ein Dokument anfill-columnausgerichtet hält- Mit
M-x refill-modekann man dieses Verhalten aktivieren
Alle Fenster gemeinsam scrollen: M-x scroll-all-mode
scroll-other-windowerlaubt es, ein anderes, nicht ausgewähltes Fenster ohne Fokuswechsel zu scrollen, was nützlich ist, wenn man im aktuellen Fenster arbeitet und im nächsten Referenzmaterial betrachtetfollow-modedient dazu, einen einzelnen Buffer fortlaufend über mehrere Fenster hinweg anzuzeigenscroll-all-modeist weniger bekannt, scrollt aber alle Fenster eines Frames gleichzeitig- Das ist nützlich, wenn man Buffer betrachten muss, die miteinander synchronisiert werden sollten; im Beispiel wird es genutzt, um zwei Dateiversionen visuell zu vergleichen, ohne eine Ediff-Sitzung zu starten
- Der gezeigte Ablauf öffnet mit
vc-revision-other-windowein bestimmtes älteres Backup der aktuellen Datei, aktiviert dannscroll-all-modeund scrollt anschließend wie gewohnt, wobei sich alle Fenster gleichzeitig bewegen -
Scrollen in anderen Fenstern und
master-mode- Wenn mehr als zwei Fenster auf dem Bildschirm sind und das zu scrollende Fenster nicht das von Emacs gewählte
next-windowist, kann es Probleme geben - Das eingebaute
master-modeerlaubt es, einen Buffer, der aus einem anderen Buffer heraus gescrollt werden kann, vorab oder spontan festzulegen - Ein direkterer Weg ist es, die Strategie zum Finden des zu scrollenden Fensters festzulegen
(setq other-window-scroll-default #'get-lru-window)sorgt dafür, dass immer das am längsten nicht benutzte Fenster gescrollt wird- Das ist nützlich, wenn man ein Fenster mit Referenzmaterial scrollen möchte, das man selbst kaum auswählt
- Wenn sich unter mehreren Fenstern zwei häufig bearbeitete Fenster befinden, kann man per Lambda-Funktion festlegen, dass das zuletzt benutzte Fenster als anderes Fenster gescrollt wird
- Solche Kombinationen aus Einstellungen helfen dabei,
scroll-other-windowdas beabsichtigte Fenster scrollen zu lassen
- Wenn mehr als zwei Fenster auf dem Bildschirm sind und das zu scrollende Fenster nicht das von Emacs gewählte
Beenden verweigern: M-x emacs-lock-mode
- Wenn ungespeicherte Dateien vorhanden sind, verweigert Emacs das Beenden, bis beantwortet ist, wie mit jeder Datei verfahren werden soll
emacs-lock-modeerweitert diese Idee und erlaubt es dem Benutzer, beliebige Buffer zu sperren- Bis die Sperre aufgehoben wird, verweigert der betreffende Buffer das Killen und gibt Meldungen wie
Buffer "*scratch*" is locked and cannot be killedaus - Wenn gesperrte Buffer vorhanden sind, verweigert auch Emacs das Beenden und zeigt Meldungen wie
Emacs cannot exit because buffer "*scratch*" is locked - Das ist nützlich, um Informationen in Buffern, die keine Datei besuchen, nicht versehentlich zu verlieren oder sich daran zu erinnern, dass in diesem Buffer noch Arbeit offen ist
- Nach Org-capture ist der erste Fall selten geworden, aber um Ausgaben oder Zustände von Shell-, Compilation-Buffern, Websites oder anderen speziellen Anwendungen nicht zu verlieren, ist die Funktion weiterhin nützlich
Frame wiederherstellen: M-x undelete-frame-mode, M-x undelete-frame
- Wenn man einen sorgfältig eingerichteten Emacs-Frame versehentlich schließt, kann man ihn mit
undelete-framewiederherstellen - Um diese Funktion zu nutzen, muss
undelete-frame-modeaktiviert sein - Sie tut für Frames das, was die eingebauten Funktionen
winnerundtab-bar-historyfür Fenster bereitstellen - Wenn
undelete-frame-modezusammen mit Emacs dauerhaft aktiviert ist, muss man sich weniger Sorgen machen, Frames zu schließen - Es lassen sich bis zu 16 gelöschte Frames wiederherstellen
Verbleibende und ausgeschlossene Funktionen
- Von den Funktionen, denen man in den letzten sechs Jahren begegnet ist, haben 20 den praktischen Emacs-Alltag des Jahres 2026 überlebt
- Viele zufällig entdeckte Emacs-Bibliotheken waren eher von archäologischem Interesse als stabile Lösungen für Anforderungen normaler Benutzer
allout-modeist ein Outline-Manager aus einer Parallelwelt, ähnlich dem Org mode, und bringt Funktionen wie Org-Speed-Keys und subtreeweise Verschlüsselung mitshadowfileimplementiertunisoninnerhalb von Emacs, aber sein Nutzen ist fraglichdouble-modeist eine auf Tastenumwandlung basierende Methode zur Eingabe nicht auf der Tastatur vorhandener Zeichen und älter alsquail- Die Bibliothek
bswar ein Versuch, einen intelligenterenlist-buffers-Befehl zu schaffen, wurde aber durch das bessereibufferweitgehend überflüssig - Auch oberflächlich nützliche Funktionen wie das Umhüllen einer Region mit Trennzeichen per
electric-pair-modewurden ausgeschlossen, weil der Nutzen im Verhältnis zur Umständlichkeit gering ist - Für solche Zwecke sind externe Pakete wie
wrap-region,smartparensundembracebesser geeignet - Eingebaute Org- und Org-nahe Bibliotheken wie
apptsind interessant, aber groß genug für einen eigenen Artikel - Bibliotheken wie
thunk, die vor allem für Elisp-Entwickler nützlich sind, brauchen ebenfalls eine eigene Zusammenstellung - Das mit Emacs mitgelieferte Verzeichnis
lispist nicht besonders groß, aber es gibt weiterhin Raum, nützliche Standardfunktionen darin zu entdecken
1 Kommentare
Lobste.rs-Kommentare
Das Öffnen von mehreren Dateien per Wildcard wie
*foo*.txtinfind-file(C-x C-f) ist meistens ein Versehen, deshalb habe ichfind-file-noselectperadvice-addso angepasst, dassfind-filebei Verwendung von Wildcards direktdiredöffnetWenn
file-expand-wildcards2 oder mehr Ergebnisse liefert, wird andired-noselectübergeben, andernfalls wird das ursprünglichefind-file-noselectaufgerufenruler-modemacht wirklich Spaß. Ich wusste überhaupt nicht, dass Emacs so eine WYSIWYG-Funktion hat, und Emacs ist wirklich eine seltsame, aber erfreuliche SoftwareIch dachte, ich hätte mit normalem Emacs schon fast alles gesehen, aber es gibt noch viel mehr zu entdecken.
ruler-modeist ziemlich cool zum SchreibenFrüher habe ich Magit viel häufiger benutzt, aber inzwischen bin ich auf das eingebaute
vc-modeund diediff-Werkzeuge umgestiegen, und beides funktioniert sehr gut, womit ich sehr zufrieden binSolche Beiträge mag ich. Wenn man komplexe und anpassbare Editoren wie Emacs oder Neovim benutzt, installiert man oft zuerst eine aufgeblähte Distribution und legt zu schnell los, bevor man versteht, was der Standardeditor alles kann
Wenn man Zeit hat, ist es ziemlich lohnend, das Handbuch zu lesen und die Konfiguration von Grund auf selbst aufzubauen. Eine wenig bekannte Emacs-Funktion ist
finder-list-keywords; wenn man sie ausführt, erscheint ein Menü, mit dem sich schwer auffindbare Emacs-Funktionen erkunden lassen. Wusstest du zum Beispiel, dass es 24 eingebaute Spiele gibt?