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.
Sonntag, 24. September 2023
Der Wanderer LXXXVII
Kurz vor dem Wochenende traf die dritte Auflage des LaTeX Companion, des TLC3, ein. Zwei Bände mit zusammengenommen gut 1900 Seiten. 18 Jahre nach dem Erscheinen der deutschen Übersetzung der zweiten Auflage. Ein enormer Gewinn für alle Benutzer und eine große Freude, ein so sorgfältig hergestelltes Buch zu bekommen.
Wobei es nicht ganz einfach war, den Titel zu bestellen, denn Addison-Wesley oder besser gesagt: Pearson ist auch nicht mehr ganz, was es mal war. Das Buch ist zwar in Deutschland über den Buchhandel bestellbar, es wird hierzulande aber nicht gelagert, sondern jeweils direkt beim Verlag aus den USA beschafft. Das sorgt für eine lange Lieferzeit und für vergleichsweise hohe Kosten. Und auch für ungewöhnlich schwankende Kosten. Wenn man die deutsche Buchpreisbindung gewöhnt ist, mag es merkwürdig anmuten, aber die Preisunterschiede zwischen den Buchhändlern sind doch beträchtlich.
Am ärgerlichsten ist aber wohl, dass der Transfer der Metadaten vom amerikanischen zum deutschen Buchhandel nicht so richtig klappen will. Wer das Werk bestellt, möge sich deshalb, bitte, nicht kirre machen lassen, es gibt mehrere Angebote vom Verlag: Man kann beide Bände separat bestellen, beide haben eine eigene ISBN, und es gibt ein Bundle mit beiden, und dann gibt es nochmal ein Bundle zusammen mit der E-Book-Ausgabe, das wäre dann also sozusagen die vollständigste aller Ausgaben. Wer die Auskunft erhält, der zweite Band sei nicht lieferbar, möge ihn reklamieren. Es gibt ihn wirklich, er liegt gerade neben mir auf dem Schreibtisch. Also nicht nur als E-Book, sondern als Book-Book.
Wer sich für LaTeX interessiert, möchte doch wahrscheinlich gerne ein gedrucktes Buch in Händen halten, zumal bei dem besagten Umfang. Fest gebunden auf gutem Papier mit einem schönen dunkelroten Lesebändchen. Und dann hat es also doch noch deutlich vor Weihnachten geklappt. Ich freue mich wirklich darauf! Und alle Beispiele aus dem TLC3 gibt es auf CTAN.
Übrigens habe ich die knappe Einführung in LaTeX, die ich seit ein paar Jahren auf meiner Homepage anbiete, endlich einmal wieder aktualisiert. Viele Weblinks gingen nicht mehr. Einige Angaben waren ebenfalls überholt. Bei der Gelegenheit habe ich den Text von HTML auf Org-Mode umgestellt. Sowohl die Quelle als auch der leicht nachbearbeitete HTML-Export aus Org stehen auf GitHub bereit. Und bei der nächsten Version werde ich auch die Teile, die ich heute noch händisch angegangen hatte, soweit wie möglich in Org umsetzen. Vielleicht kann ich meine gesamte Website als Publishing-Projekt auf Org umstellen. Wahrscheinlich erhalte ich auch beim Lesen des TLC3 eine paar Anregungen, die in den Text einfließen können, ohne ihn zu sehr auszudehnen.
Bei der Gelegenheit habe ich meine Homepage noch mit einem Dark Mode versehen. Das war per @media (prefers-color-scheme: dark) {...}
tatsächlich viel einfacher, als ich gedacht hätte.
Ich stelle mir gerade parallel eine ebenso kurze Einführung in die Installation von Emacs unter macOS vor, in der ich meine Erfahrungen aus den letzten Wochen zusammenfassen könnte, die ich ja teilweise hier auch verbloggt hatte. Ich mag die alte Tradition der gentle introductions sehr, von denen es früher ganz viele im Netz gab, zu allen möglichen Themen. Blogs, Wikis und Webforen sind hilfreich, aber letztlich sind es nur gesammelte Bruchstücke, es fehlt meistens der größere Überblick über ein Thema. Still digging!
Samstag, 16. September 2023
Emacs 29.1 X
Zu den praktischsten neuen Paketen, die mir in den letzten Wochen
untergekommen sind, gehört mit deutlichem Abstand der Company
Mode. Er kam auf mein
System, als ich die Python-Umgebung
elpy nachinstallierte, die
es einsetzt. Beim Tippen werden Vorschläge aus dem restlichen Text in
diesem oder auf Wunsch auch aus weiteren Buffern desselben Modes
angeboten, die man auswählen und annehmen oder verwerfen kann. Die
Vorschläge können also auch ein Projekt mit einbeziehen, das aus
mehreren Dateien besteht. Das funktioniert sowohl bei Code als auch
bei Fließtext, auch in längeren Kommentaren, und für mich als
Vielschreiber ist das Paket natürlich ein Muss. Damit kann ich das
Paket dabbrev-expand deutlich erweitern, das kein Frontend hatte, bei
dem der Text automatisch so schön eingeblendet wurde – man musste
einen Keystroke ausführen, um Autocomplete auszulösen. Company kann so
konfiguriert werden, das auch Groß- und Kleinschreibung beachtet
werden. Mit anderen Worten: Ich bin glücklich.
Der Wanderer LXXXVI
Derzeit bin ich am Räumen. Sehr. Analog und digital. Schon vor einem
Jahr, als ich auf den neuen Rechner umstieg, nahm ich nicht alle Daten
mit. Das riesig angewachsene, aber in iTunes gefangene Archiv ließ ich
zurück und lagerte es auf eine separate Festplatte aus. Ich habe es
ein Jahr lang nicht gebraucht, was dafür spricht, das so zu
lassen. Manchmal befreit einen so ein Datensilo auch von allzuviel
Ballast. Jetzt ist das laufende Wissens- und Projektmanagement
dran. Analog und digital, siehe oben.
Andere Technik, andere Gliederung des Materials, Durchsicht, Ordnen
und auch Löschen sind angesagt. Analog, freilich: Wegwerfen.
Das beendet ein offenes oder auch latentes Leiden und sorgt für
Platz. Außerdem scheint ein Paradigmenwechsel vor mir auf, vom
hermeneutischen und systemischen Denken hin zu was Moderneren. Was das
dann sein wird und wie weit der Umbau da gehen wird, mag sich zeigen.
Fenster auf, gut durchlüften und putzen und räumen. Jedes Mal, wenn
ich rausgehe, nehme ich was mit. Umbruchzeiten sind gute Zeiten, und
sie wollen gestaltet werden.
Samstag, 9. September 2023
Emacs 29.1 IX
Zu den schönsten Paketen für den GNU Emacs, die mir untergekommen sind, gehört golden-ratio von Roman Gonzalez. Gestern kam Version 1.0.1 auf ELPA. golden-ratio nimmt sich des Zuschnitts der Buffer im Verhältnis zueinander an, wenn innerhalb eines Frames in Emacs mehrere Buffer gleichzeitig geöffnet sind.
Das Paket sorgt für zweierlei: Es gibt dem Buffer, in dem man gerade arbeitet, den meisten Platz. Und es legt für das Verhältnis der Buffer-Höhen zueinander den Goldenen Schnitt zugrunde. Und das alles dynamisch und direkt bei der Benutzung, was sehr praktisch ist und auch ziemlich elegant aussieht. Besonders zu empfehlen, wenn man beim Schreiben zum Beispiel zwischen einem Org-Buffer und einem Programm in elpy und mehreren Test-Buffern hin und her schaltet.
Ich war ja skeptisch, aber nach diesem Härtetest bin ich sehr gespannt, ob es tatsächlich Pakete gibt, mit denen sich golden-ratio nicht verträgt – kann mir das aber mittlerweile kaum noch vorstellen. golden-ratio ist wohl schon ziemlich gut getestet worden.
Donnerstag, 7. September 2023
Emacs 29.1 VIII
Da war übrigens noch was: Es gab ein Update zu den Builds bei
emacsformacosx.com. Ich war so sehr mit
dem Konfigurieren und Herumspielen beschäftigt, dass ich das gar nicht
mehr bemerkt hatte. Bei Version 29.1, die David Caldwell
bereitgestellt hatte, war, dem ChangeLog
zufolge,
die brandneue SQLite-Unterstützung nicht enthalten. Die hatte er erst
in einem Build vom 16. August 2023 nachgereicht, die er unter dem
Tag 29.1-1 veröffentlicht hat. Diese Versionsnummer gibts offiziell
zwar nicht, aber hier
doch schon. Installieren tut nicht weh. Auch Version 29.1-1 läuft
tadellos.
Mittwoch, 6. September 2023
Der Wanderer LXXXV
CRE.FM zu
Git aus dem
Jahr 2009 gehört. Man merkt, dass sich in dem Bereich kaum mehr etwas
getan hat. GitHub war am Aufkommen, Wikipedia und „die Wikis“ waren
immer noch ziemlich präsent, aber immer noch viel mehr als „etwas
Neues“ als man es heute beschreiben würde.
Interessant fand ich an mehreren Stellen den Hinweis auf den
Zusammenhang zwischen der Technik, dem Umgang damit und den
gesellschaftlichen Auswirkungen. Das Forken wurde von einer
regelrechten Kampfansage mit hingeworfenem Fehdehandschuh zu einer
geradezu erwünschten Kulturtechnik, die jederzeit grundlegende
Änderungen am Bestand ermöglicht und damit Spielräume öffnet. Das
Forken als praktizierter Liberalismus. Sire, geben Sie Forkfreiheit!
Nicht weiter verfolgt wurde leider die Idee, dass es nachteilig war,
Wikipedia in einem zentralen Repository zu belassen, wenn alle Welt
sonst dezentral arbeitet. Noch heute wird der Fork von Wikipedianern
im alten Sinne als ein Kampfbegriff verstanden, eher als eine Drohung
als eine Chance, eine Entwicklungsmöglichkeit. Die Probleme beim
Forken von Wikipedia wurden immer größer mit der Zeit, weil die
Erweiterungen im Umfeld, vor allem die Integration von Wikidata, aber
auch schon die zentrale Auslagerung aller Bilder auf Wikimedia
Commons, einen eigenen Weg, der davon getrennt verliefe, kaum noch
zulässt. Wikipedia ist als Dump nicht mehr standalone
weiterzuverwenden. Es ist kaum zu ermessen, was diese im Laufe der
Jahre geschaffenen Tatsachen für die Entwicklung von Wikipedia und für
die Community bedeutet haben. Die Inselstellung dürfte sich dadurch
verschärft haben. Die Isolation, die uns vom Rest des Webs
trennt. Brücken zu den dezentralen Strukturen kann auch Wikidata nur
formal aufbauen, nicht mehr inhaltlich.
Der Diff und der Umgang damit ist ein zentrales Instrument der
Content-Entwicklung, das in seinen gesellschaftlichen und kulturellen
Auswirkungen viel zu wenig beachtet wird. In Blog-Systemen spielt es
auch kaum oder gar keine Rolle.
Form follows function. Content follows medium.
Samstag, 2. September 2023
Der Wanderer LXXXIV
Das Usenet lebt, ein bisschen. Als Bram Moolenar starb, gab es dort eine Diskussion über die Rolle, die vi(m) derzeit (noch) spielt. Keine Frage, dass die Bedeutung, die so ein mächtiges technisches Werkzeug spielt, immer schon erheblich war, las man zum Beispiel schon anhand der Geschichte der nettime-l-Mailingliste. Aber als der Tod des Hauptentwicklers von vim bekannt wurde, wurde man in de.comp.editoren doch auch ziemlich nachdenklich und merkte ziemlich schnell, dass auch die Wahl des Editors eine Generationenfrage ist:
Wobei ich den Eindruck habe, dass bei den jüngeren Leuten vim nicht so beliebt ist. Da dominieren nano und Visual Studio Code.
Andererseits:
Die klicken oder wischen bloß noch rum.
Auch mit Word …
… sind viele der heutigen Studenten vermutlich schon
überfordert. ;-)
Geschichten vom Älterwerden.
Der Wanderer LXXXIII
LibreOffice schafft die Begriffe Schusterjungenregelung und
Hurenkinderregelung in seiner Bedienoberfläche ab, weil es die Begriffe bei Microsoft Word und bei Adobe InDesign auch nicht mehr gebe. Es handele sich um einen Drucker-Jargon, der für Joe Sixpack unverständlich sei. Das sind typografische Grundbegriffe. Kann man sich nicht ausdenken. Aber im heutigen Daily-Build schon so umgesetzt.
Freitag, 1. September 2023
Der Wanderer LXXXII
Die Mailinglisten waren schon ganz erheblich geschrumpft, als sich der
Traffic erst in die Webforen und dann in die Sozialen Netzwerke und
die Instant-Messenger-Dienste verschob. Obwohl auch Diskussionen über
Emacs zu einem großen Teil auf StackExchange und Reddit stattfinden,
laufen die Projekt-Mailinglisten aber immer noch sehr gut. In den
letzten vier Wochen liefen über emacs-devel, help-gnu-emacs,
emacs-orgmode und die auctex-Listen fast 2000 Nachrichten. Und
zwar ziemlich gehaltvolle Nachrichten.
Freilich ist emacs-devel mitunter eher so eine Art Seifenoper für
alle, die die Freie-Software-Szene schon etwas länger
verfolgen. Auffällig ist vor allem die Fixierung auf hauseigene
Lösungen, die ganz klar nicht zielführend sein kann. Derzeit wird dort
beispielsweise besprochen, ob man Texinfo durch Org-Mode ersetzen
könne. Man verspricht sich davon entweder (a) gar nichts oder aber (b)
einen verstärkten Zustrom von Entwicklern, die sich bisher von einer
Mitarbeit an GNU-Projekten abgeschreckt fühlten, weil sie nicht bereit
waren, extra Texinfo zu lernen, um auch die Dokumentation regelkonform
abliefern zu können. Das ist nicht ganz abwegig. Es ist ziemlich genau
zwanzig Jahre her, dass ich mal die Überarbeitung eines Manuals
abgebrochen hatte, noch bevor ich damit anfing, weil ich mir das mit
Texinfo nicht antun wollte. Ich hatte gedacht, es wäre bloß LaTeX. Und
jetzt ausgerechnet Org-Mode als Ersatz. Eine eierlegende Wollmilchsau,
eine Mischung aus Outliner, Exporter und Agenda-Planer, die erst
einmal durch Nacharbeit noch einmal gehörig zurechtgebogen werden
müsste, um Texinfo, das für einen sehr speziellen Zweck entwickelt
worden war, ersetzen zu können. Wo doch schon längst alle in Markdown
schreiben, in irgendwelchen Varianten, zugegeben, aber irgendwie geht
es doch.
Nachdem ich nun in den letzten Wochen viel mit Org gearbeitet hatte,
habe ich mir nun endlich auch einmal den Markdown-Mode in Emacs
eingerichtet. Was ich noch nicht wusste: Er stammt von demselben
Entwickler, der auch das Notizen-Frontend Deft geschrieben hat. Deft
hatte ich getestet, gewogen und dann aber doch für zu schwer befunden,
will sagen: Viel zu Umfangreich und unnötig. Wenn ich alle meine
Notizen sowieso in einem Deft-Verzeichnis sammle, kann ich mir auch
gleich ein Bookmark ins Dock setzen und die Org-, Markdown- oder
Text-Dateien von dort aus direkt öffnen und sie händisch in ein
Archiv-Unterverzeichnis verschieben. Hierzu bot Deft keine zusätzliche
Funktion, die nicht schon durch das Betriebssystem bereit gestanden
hätte. Also eher kein Deft-Mode.
Aber eine gute Gelegenheit, der ewigen Konkurrenz zwischen Org und
Markdown
einmal nachzuspüren. Ist da etwas dran? Nach mehreren Wochen finde
ich, dass Markdown zum bloßen Schreiben, etwa um so einen Blogpost wie
diesen hier vorzubereiten, etwas besser geeignet ist als Org, weil die
Syntax stringenter und auf den Text und seine Gliederung beschränkt
ist und dadurch deutlich übersichtlicher bleibt. Ein Org-Dokument ist
in kurzer Zeit überflutet mit Anmerkungen, Tags, Properties, Drawers
und Zeitstempeln verschiedener Art. Dadurch wird der Text immer
unübersichtlicher, auch wenn er durch Syntaxhighlighting optisch
entsprechend aufbereitet worden ist. Auf das Emacs-Theme, das man
verwendet, kommt es dann auch nicht mehr wirklich an. Es sei denn, man
verzichtete grundsätzlich auf all die Ergänzungen, die Org bereithält,
und setzt sie nur ausnahmsweise ein. Dann wären Org und Markdown
insoweit fast identisch.
Um auf die Diskussion über Org-Mode vs. Texinfo zurückzukommen:
Eigentlich stellt sich die Frage schon längst nicht mehr in dieser
Weise, seit alle Welt Markdown schreibt. Seit sogar CTAN für fast
jedes Paket ein README.md bereithält und im Webbrowser anzeigt, weil
die Daten sowieso vorhanden sind. Die meisten Pakete werden auf GitHub
gehostet, weniger kommen von GitLab oder vom Entwickler-eigenen
GitLab. Und bringen daher Markdown standardmäßig mit. GitHub Pages hat
ein weiteres getan.
Aber auf emacs-devel fragen sie sich: Org-Mode oder Texinfo?
BTW: Rezension: „Der Vorweiner“ von Bov
Bjerg – lesen!