Freitag, 13. Oktober 2023
Der Wanderer XCIII
Das integrierte Wörterbuch und Lexikon in Emacs dictionary.el
kann über M-x dictionary
aufgerufen werden. Es ist nicht weiter dokumentiert,
insbesondere gibt es keinen Eintrag im Emacs Manual oder in Info.
Dabei ist es ziemlich praktisch und lohnt oft einen Aufruf, und sei es
nur zur Prokrastination.
Wenn die Wörterbuch-Daten nicht lokal installiert sind, greift das
Wörterbuch auf Server-Lösungen zurück. Vor der Kontaktaufnahme mit dem
Server – standardmäßig: dict.org
– erfolgt eine Nachfrage zur
Freigabe.
Je nachdem, wie man die Suche konfiguriert, erhält man ganz
unterschiedlich nützliche Ergebnisse. Es lohnt sich deshalb, ein
bisschen mit den Optionen zu spielen, um herauszufinden, welche
Einstellungen am besten passen. Am brauchbarsten hat es sich für mich
erwiesen, all
dictionaries zu durchsuchen, und zwar nach exact
en
Treffern. Beides sind Strings, die nicht korrekt über Customize
gesetzt werden konnten. Daher: direkt in die .emacs
eintragen.
Per dictionary-use-single-buffer
begnügt sich das dictionary
mit
einem Buffer; standardmäßig öffnet es für jede Anfrage einen eigenen,
das ufert leicht aus, deshalb lohnt sich diese Änderung.
Nach einer Anregung von Mickey Peterson habe ich M-#
mit der
Funktion dictionary-lookup-definition
belegt. Damit wird das Wort,
auf dem der Cursor gerade steht, direkt an das dictionary
übergeben
und darin nachgeschlagen. Das Ergebnis wird in einem neuen Buffer
ausgegeben, den man durch q
wieder schließen kann.
Mickey Peterson schlägt auch vor, das dictionary
rechts
einzublenden, statt einen eigenen Buffer an der Stelle des aktiven
Buffers zu öffnen.
(setq switch-to-buffer-obey-display-actions t)
(add-to-list 'display-buffer-alist
'("^\\*Dictionary\\*" display-buffer-in-side-window
(side . right) ; wahlweise: left
(window-width . 50)))
Das geht mir aber etwas zu weit; ich finde, das Wörterbuch darf
durchaus auch etwas mehr Raum beanspruchen, und es ist auch nur auf
breiten Bildschirmen wirklich brauchbar, also nicht auf einem normalen
MacBook.
Ich belasse es deshalb bei dieser Konfiguration:
(use-package dictionary
:config
(setq dictionary-default-dictionary "all")
(setq dictionary-default-strategy "exact")
(setq dictionary-use-single-buffer t))
(global-set-key (kbd "M-#") 'dictionary-lookup-definition)
Mit dem Paket osx-dictionary
kann man übrigens auch auf die dictionary.app
von macOS zugreifen. Das Wort at point wird bei mir per M-'
nachgeschlagen. Damit wird eine Funktion von dabbrev
überschrieben,
das ich nicht brauche. Das Gegenstück zu M-x dictionary-search
für
beliebige Abfragen ist M-x osx-dictionary-search-input
.
(global-set-key (kbd "M-'") 'osx-dictionary-search-word-at-point)
Mittwoch, 11. Oktober 2023
Thunderbird 115.3.2
Mit Version 115.3.2 nähert sich Thunderbird seit heute Abend langsam dem, was man eine ziemlich runde und gelungene Lösung nennt. Es hat also drei Monate seit dem Supernova-Release, viel Leiden, viele Bugreports und viel Nacharbeit gedauert, und jetzt ist alles wieder gut. Oder?
Montag, 9. Oktober 2023
Der Wanderer XCII
Der Nobelpreis für Wirtschaftswissenschaft (jaja, etwas locker formuliert, schon klar) geht dieses Jahr an: Claudia Goldin. Einen Artikel in der deutschsprachigen Wikipedia zu ihr gibts seit 2007, angelegt und überwiegend geschrieben von einem Ökonomen und einem Autor, der sich mit Wissenschaftlern beschäftigt, die Mitglied bei der American Academy of Arts and Sciences sind. Gestützt auf das Who is Who in Economics, aber eben aus einer Zeit, als wir noch keine Fußnoten setzten. Der nächste Blick fällt in die GND: Keine Veröffentlichung im Sammelgebiet der Deutschen Nationalbibliothek. Ihr Personen-Datensatz ist bis heute mit keinem Titel verknüpft. Es hat bisher keinen Verlag hierzulande gegeben, der ihre Werke einer Übersetzung für würdig hielt. Kein ganz neues Phänomen: Sie hat über Jahrzehnte publiziert, und zwar über Themen wie: Understanding the Gender Gap: An Economic History of American Women oder Corruption and Reform: Lessons from America’s History, wohl zuletzt: Career and Family: Women’s Century-Long Journey toward Equity.
Donnerstag, 5. Oktober 2023
Der Wanderer XCI
Auf der Mailingliste aquamacs-devel bei Google Groups griff gestern ein Benutzer die Ankündigung von Maintainer Win Treese von vor einem Jahr wieder auf, er arbeite an Aquamacs 4.
Win antwortete letzte Nacht, es sei ihm gelungen, einen Aquamacs auf der Basis von GNU Emacs 28.3 unter Apple Silicon zu kompilieren, es gebe aber noch viele Probleme, die er erst ausräumen wolle, bevor er eine Testversion pushen werde. Die Arbeiten seien sehr aufwändig gewesen. Der Code müsse dann im weiteren Verlauf auf die Grundlage von Emacs 29.1 gebracht werden. Während schon an Emacs 30 gearbeitet wird.
Aquamacs ist die einzige Emacs-Distribution, die mit einem vorinstallierten und vorkonfigurierten AUCTeX ausgeliefert wird und die auch auf die systemweite Rechtschreibkorrektur von macOS zurückgreifen kann. Das funktionierte zuletzt auch noch unter Rosetta. Man darf also gespannt sein und Win Treese die Daumen drücken.
Der Wanderer XC
Der Herbst tut nochmal so, als wäre er Spätsommer. Das schafft er jetzt nur noch am späten Nachmittag, und wir tun gut daran, die Sonne und ihre immer noch enorme Wärme in die Wohnung und ins Herz herein zu lassen. Morgens sieht man noch die größeren Insekten, die am Balkon an der Wand sitzen, wo sie übernachtet haben. Und auch die Eichhörnchen sieht man jetzt wieder öfter. Ich freue mich auf die Sonne. Wenn der Nebel weggeht, und die leichtwarmen Oktoberstrahlen durch dringen, und sei es auch nur für ein paar Stunden.
Dienstag, 3. Oktober 2023
Emacs 29.1 XII
Zu den wertvollsten Verbesserungen für Emacs, auf die ich in den
letzten Wochen gestoßen war, gehört die Möglichkeit, einen harten
Zeilenumbruch leicht wieder rückgängig machen zu können. Das kann
Emacs nämlich nicht von Haus aus, Emacs kann nur neu umbrechen und
umbrechen und umbrechen. Um einen Umbruch zurückzunehmen, hatte ich
früher die wikipedia-unfill-*
-Befehle aus dem Wikipedia Mode von
Chong Yidong und Uwe Brauer benutzt. Das setzt aber voraus, dass man
den Wikipedia Mode zuvor geladen hat. Einfacher zu handhaben ist
dagegen der Vorschlag von Stefan Monnier, der im EmacsWiki überliefert
ist:
(defun unfill-paragraph (&optional region)
"Takes a multi-line paragraph and makes it into a single line of text."
(interactive (progn (barf-if-buffer-read-only) '(t)))
(let ((fill-column (point-max))
;; This would override `fill-column' if it's an integer.
(emacs-lisp-docstring-fill-column t))
(fill-paragraph nil region)))
(define-key global-map "\M-1" 'unfill-paragraph)
Man muss den Absatz nicht markieren, die Funktion greift dort, wo der
Cursor gerade steht. Als eine schöne motorische Eselsbrücke hat sich
bewährt, die neue Funktion global an M-1
zu binden, was direkt neben
dem händischen Umbruch per M-q
liegt.
Sonntag, 1. Oktober 2023
Der Wanderer LXXXVIV
Die Umstellung meiner LaTeX-Einführung von HTML auf Org-Mode ist abgeschlossen. Das Projekt steht jetzt als l2intro auf GitHub und kann direkt für meine Website exportiert und installiert werden, ohne weitere Nachbearbeitung.
Bin noch unsicher, ob ich es damit bewenden lasse oder ob ich auch die restliche Website in Org überführe und dann in Zukunft komplett als Publishing-Projekt exportiere.
Donnerstag, 28. September 2023
Thunderbird 115, Firefox 120
Alle sieben Bug Reports, die ich in den letzten beiden Monaten für
Thunderbird 115 eingericht hatte, sind mittlerweile gefixt
worden, und es wurde sogar ein ganz alter Bug, den ich 2018 für den
Firefox gemeldet hatte und der bis heute noch offen war, aufgegriffen.
Er ist für die übernächste Version Firefox 120 behoben worden. Ob
die Korrektur auch in Version 119 noch einfließen wird, ist derzeit noch
nicht sicher, es gehe nur um eine Zeile Code. Könnte also klappen. Sie
tun was.
Mittwoch, 27. September 2023
Der Wanderer LXXXVIII
Es ist jetzt nicht mehr Spätsommer, sondern schon eher Frühherbst. Am Morgen sehr kühl. Wenn die Sonne aufgeht, wird es dann schnell ziemlich warm. Die Sonne steht auch am Mittag so schräg, dass man die Spinnennetze deutlich sehen kann, an der Ampel sind es gleich zwei, und sie werden offenbar gepflegt, sind also einträglich für die Spinne, die sich durch sie ernährt. Ich stelle mich hinter die Ampel in den Schatten und warte, bis sie auf grün schaltet. Und so schnell, wie die Sonne morgens aufgeht, verschwindet sie am späten Nachmittag auch schon wieder und entzieht der Welt die Wärme, die sie ihr für wenige Stunden nur gab. Wo sind die beiden Schmetterlinge, die heute an meinem Fenster vorbei flogen, jetzt, wo es dunkel wird? Mögen sie beschützt sein!
Montag, 25. September 2023
Emacs 29.1 XI
Es gibt mehrere Completion Frameworks für den GNU Emacs. Sie
sollen die Auswahl von Dateien, Buffern, von Variablen und Funktionen
erleichtern. Und weil sie immer wieder empfohlen, teilweise geradezu
gehypt werden, habe ich die wichtigsten ausprobiert.
- Ido
ist Teil von Emacs. Man muss es also nicht mehr hinzu installieren,
sondern nur noch aktivieren. Es verändert den Mini-Buffer, indem
eine Auswahl in horizontaler Anordnung gezeigt wird, und man kann
diese dann weiter einschränken, indem man weiter tippt, je nach
Konfiguration genau oder fuzzy, oder indem man mit dem Cursor nach
rechts oder links und RET auswählt. Viel mehr macht Ido nicht. Man
kann damit leben.
- Helm von Thierry Volpiatto
wird vielerorts wärmstens empfohlen. Helm hieß früher Anything und
wurde dann umbenannt. Es schaltet sich in sämtliche
M-x
-Dialoge
ein und sorgt für eine Autovervollständigung in eigenen Buffern.
Helm blendet alle verfügbaren Datei- und Befehlsnamen ein, die
irgendwie zum Suchstring passen. Die Auswahl erfolgt über eine
Auswahlliste in einem eigenen Buffer, nicht über den Mini-Buffer, in
den man den Suchstring eintippt – das ist zu Anfang etwas
verwirrend. Ein Nachteil liegt in der Unruhe, die in die Bedienung
kommt. Ich meine, vor allem durch Helm wird die Bedienung sogar eher
erschwert als erleichtert.
- Die dritte Lösung, die ich getestet hatte, ist
Ivy von Oleh Krehel, das
zusammen mit den weiteren Paketen Counsel und Swiper eingesetzt
wird. Ivy wurde offenbar von Helm inspiriert, denn der Mini-Buffer
wird auch hier zu einer Liste, die man direkt durchsuchen kann;
dabei wird sie live gelichtet, und am Ende bleiben nur noch die
Datei- und Buffer-Namen übrig, die irgendwie zur Eingabe passen.
Beim Durchsuchen eines Buffers mit Swiper werden stattdessen die
passenden Zeilen angezeigt, die zu einem Suchmuster passen. Das ist
tatsächlich eine Verbesserung der inkrementellen Suche, die ich zu
schätzen gelernt habe.
- Das vierte Completion Framework ist
Vertico von Daniel Mendler in
Verbindung mit den Paketen Marginalia, Consult, Embark und
Orderless. Vertico baut soweit wie möglich auf den bestehenden
Funktionen in Emacs auf, bietet sie aber anders dar und erlaubt eine
sehr dynamische und interaktive Auswahl. Praktisch ist, dass
Marginalia die Kurzbeschreibungen von Paketen, Variablen und
Funktionen einblendet, das erleichtert den Überblick erheblich.
Insgesamt erinnert es mich aber zu sehr an Helm, das ich nicht mag.
Und so blieb ich am Ende erst einmal bei Ivy, das sich einerseits
noch nach Emacs anfühlt, das andererseits aber auch per Swiper eine
sehr schöne und nützliche Verbesserung der Isearch mitbringt. Die drei
anderen Lösungen habe ich aber noch nicht deinstalliert, sondern
erstmal beibehalten, um immer mal wieder testen zu können. Es mag
sein, dass sich meine Bedarfe im Laufe der Zeit verändern. Außerdem
ist es leichtes Gepäck, denn die nicht genutzten Pakete werden nicht
geladen, wenn man sie im Init-File auskommentiert hat.
Der Verzicht auf Completion Frameworks hat aber auch vieles für sich,
denn die Bedienung, bei der man Vervollständigungen per TAB und die
History der Auswahl per Cursor hoch/runter bedient, ist man schon so
lange vom Terminal gewöhnt, dass sie sehr eingängig ist und einfach.
Außerdem wird der Zugriff auf das Dateisystem durch die Completion
umständlicher. Mein Dateisystem ist Teil meines Wissensmanagements und
erschließt das Material, mit dem ich arbeite, auch inhaltlich. Alle
Frameworks verändern die Bearbeitung des Speicherpfads im Mini-Buffer,
so dass es etwas schwieriger wird, im Pfad zu navigieren, um eine
Datei in einem anderen Verzeichnis neu zu speichern. Vieles muss sich
also bei der Bedienung neu einspielen, wenn man als erfahrener
Emacs-Benutzer solche Lösungen zum ersten Mal einsetzt.
Weniger ist mehr.