albatros | texte

Emacs 29.1 VI

Vielleicht das Schönste an Emacs ist das Prinzip Trial and Error. Es gibt so vieles auszuprobieren. Testen. Verwerfen des Holzwegs. Weiter suchen. Nächster Lösungsvorschlag. Nächster Test. Dadurch lernt man ständig hinzu. Es ergeben sich Beziehungen, die man nicht erwartet hätte. Man findet Antworten auf Fragen, die sich ursprünglich in einem ganz anderen Zusammenhang gestellt hatten. Und stellt dadurch wiederum Zusammenhänge her, die man vorher nicht gesehen hatte. Und lernt dadurch ständig mehr und immer mehr über die Technik, mit der man arbeitet.

Emacs 29.1 V

Beim Org-Mode werde ich auch weiterhin nur die Outliner- und die Publisher-Funktionen nutzen und mein Projektmanagement in Thunderbird belassen. Die Bedienung ist mir bei der Zeit- und Terminverwaltung in Org-Mode nicht eingängig genug. Das lenkt einen zu sehr vom Inhalt ab. Dann lieber ein anderes Tool, das auch funktioniert, zumal man auf Bugreports derzeit bei Thunderbird sehr schnell reagiert.

Damit wäre der Umstieg von Aquamacs auf Emacs 29.1 abgeschlossen.

Emacs 29.1 IV

Zu den Features, die in Emacs 29.1 nicht out of the box funktionieren, zählt die Rechtschreibprüfung Flyspell. Je nach Emacs-Version und Betriebssystem sind verschiedene Anleitungen und Diskussionen zu finden. Unter macOS Ventura funktionierte bei mir folgendes:

  • Aspell über Homebrew nachinstallieren.
  • Load Path und Exec Path setzen (zu Wörterbuch und zu aspell).
  • $LANG in Emacs setzen. Die Locale wurde zwar schon von macOS richtig gesetzt, Emacs bekommt davon aber nichts mit.
  • $LANG und auch die restliche Locale müssen auf de_DE zeigen, und auch das Language Environment muss German sein, sagt das Emacs Manual. Sonst funktioniert LuaTeX nicht.
  • Und nun Flyspell als Minor Mode für die Text Modes aktivieren.
(add-to-list 'load-path "/opt/homebrew/bin/")
(setq exec-path (append "/opt/homebrew/bin/" exec-path))
(add-to-list 'load-path "/opt/homebrew/Cellar/aspell/0.60.8/lib/aspell-0.60")
(setenv "LANG" "de_DE.UTF-8")
(set-locale-environment "de_DE")
(set-language-environment "German")
(add-hook 'text-mode-hook 'flyspell-mode)

M-x flyspell-mode

Welcome to Flyspell.

Es gibt widersprüchliche Ratschläge darüber, wie man Flyspell mit mehreren Sprachen zum Laufen bringt – vorstehend sehen wir nur eine Locale. Da es nicht die Locale des Systems ist, können wir sie ändern, ohne dass es weitere Auswirkungen hat. Man kann also beispielsweise das Wörterbuch für Englisch oder für Esperanto statt für Deutsch einbinden, in dem man de durch en oder eo ersetzt. Dann muss Emacs neu gestartet werden, ein erneutes Laden des Init Files reicht nicht aus. Das funktioniert aber nur für eine Sprache, nicht für mehrere. Still digging!

Update vom 20. August 2023: In der ursprünglichen Fassung des Blogposts hatte ich eine unvollständige Lösung vorgeschlagen. Ein Update von dtk.cls zwang mich gestern, weiter zu graben. Da dtk.cls seit neuestem LuaLaTeX erzwingt, stieß ich auf ein Problem, das, wie eine Suche auf StackExchange ergab, zwar seit längerem schon bekannt ist, mich aber noch nicht erreicht hatte. Wahrscheinlich hatte mich der alte Aquamacs bisher davor bewahrt.

LuaTeX ist etwas zickig und möchte die Locale beim Aufruf mitnehmen. Was unproblematisch ist, wenn man es aus dem Terminal aufruft. Beim Aufruf aus dem Editor heraus, muss es aber in der dortigen Shell ebenfalls eine Locale geben, mit der LuaTeX etwas anfangen kann, und das ist bei Emacs ebenfalls nicht out of the box der Fall. Es reicht also nicht, $LANG in der .emacs zu setzen, es braucht auch eine Locale und, so das Manual, ein passendes Language Environment in Emacs.

Emacs 29.1 III

Den Umstieg von meinem alten Aquamacs auf GNU Emacs 29.1 von Emacs for Mac OS X habe ich nicht bereut. Mit den Apple-Silicon-Binaries reagiert die Oberfläche beim Arbeiten deutlich schneller als über Rosetta. Nachinstalliert wurden noch Lua, BBDB und Org-Mode. Letzteres lohnt sich, weil er ständig weiterentwickelt wird.

Überrascht hatte mich, dass beim Öffnen von Org-Dateien per Doppelklick aus dem Finder ein neuer Frame geöffnet wird, was ich so bisher von keinem Emacs kannte und was auch gar nicht notwendig ist. Man kann es mit einem beherzten (setq ns-pop-up-frames nil) abschalten. Dann wird der neue Buffer, wie gewohnt, im bestehenden Programmfenster geöffnet.

Ido Mode habe ich wieder auskommentiert, weil ich mich damit zu sehr eingeengt fühlte. Ich möchte im Minibuffer frei tippen und navigieren können.

Die neue Version von AUCTeX und Umgebung funktioniert besser als die alte. Es gab nur wenig zu tun, lediglich RefTeX fehlte mir.

Durch dem Neuanfang mit der neuen Version merke ich, wieviel sich unter der Haube in den letzten Jahren bei Emacs getan hat. Allein bei dieser Ausgabe ist der NEWS-File über 4300 Zeilen lang. Dementsprechend gibt es tatsächlich viel zu entdecken, was ich ganz ausgesprochen belebend finde. Ja, wirklich. Ich merke, wie gerne ich mit reinem Text arbeite, mit LaTeX und mit Org-Mode und mit Gnus für Mail und News. Still digging!

Entgangen war mir auch, dass es seit Dezember 2020 eine neue Malingliste für Anwender wie mich gibt: Emacs-humanities: Discussions about using Emacs in the Humanities and related fields. In einem der ersten Postings erzählt Paul W. Rankin über die Zielgruppe der neuen Liste:

I've long suspected there to be a modest number of people who use Emacs for things wholly unrelated to programming, and that for such people their interest in programming might (currently) be little to zero. It's understandable that people without an interest in programming are unlikely to participate in the preexisting GNU lists associated with Emacs, which mostly take a programming focus.

It also seemed that many if not most of this group operated in or around the Humanities, or Liberal Arts (although being firmly rooted in the domain myself, I plausibly suffer from confirmation bias), e.g. people using Emacs to write their PhDs, research projects, novels, screenplays, etc.

EmacsConf 2020 [1] appeared to confirm this, both in its selection of topics, and the concurrent discussions on IRC/Matrix. The recent Emacs Survey [2] also showed that more than two-thirds the number of respondents who use Emacs for software development use it for writing, or if you add "research writing", the tallies between software and writing are almost equal. Over 600 respondents said they did not use Emacs for software development at all.

I'd posit there are still more people who otherwise work with text and are stifled by their mainstream non-free tools, but feel that the free software alternatives are intended only for programmers.

What I thought was needed was for GNU to send a strong signal that the doors are open to people using free software, i.e. Emacs, even if they're not currently interesting in programming, and for this invitation to be specific, i.e. Emacs within the Humanities, rather than vague.

Indeed!

Emacs 29.1 II

So. AUCTeX und Markdown sind eingetroffen und konfiguriert. Die Oberfläche ebenfalls, wie gewohnt. Und Emacs erinnert sich auch an alles, was ich ihm beigebracht habe. Es ist erstaunlich, was man auch nach so vielen Jahren alles erfährt, was man bisher für selbstverständlich hielt. Jedenfalls hat es nur etwa eine Stunde gedauert, seitdem kann ich produktiv arbeiten. Nur mit dem Zeilenumbruch bin ich noch nicht ganz glücklich. Still digging!

Emacs 29.1

Nachdem Jörg Kantel nebenan mit Visual Studio Code so ausgesprochen zufrieden ist, habe ich mir den Nachfolger des eigentlich unsäglichen Atom natürlich auch mal angesehen – und war überrascht. Schöne Integration in macOS und viele nützliche Erweiterungen, auch für Wikitext, was ich häufig brauche. Und Markdown, natürlich.

Aber der Release von GNU Emacs 29.1 hatte mich doch auch neugierig gemacht. Nachdem ich mit Emacs über 20 Jahren lang schon fast alles gemacht habe, was man mit einem Rechner so anstellen kann, war ich ihm natürlich auch damals nach dem Wechsel von Windows zu Linux zu Mac OS X treu geblieben. Erst mit dem Carbon Emacs, dann mit Aquamacs. Und als ich vor einem Jahr vom MacBook Pro auf ein MacBook Air umstieg, war mein System eigentlich erst komplett, nachdem ich MacTeX und Aquamacs aufgespielt und konfiguriert hatte. Letzterer war zwar im Sommer 2019 vorläufig gerettet worden, als David Reitter sein Projekt an Win Treese übergab. Seitdem ist es aber doch ziemlich ruhig geworden um die weitere Entwicklung. Aquamacs beruht immer noch auf GNU Emacs 25.3, der im Sommer 2017 freigegeben worden war. Er läuft mit Rosetta auch auf M1-Macs, aber man fragt sich mittlerweile doch, wie zukunftssicher das alles wohl noch sein wird?

Daher also einen Blick auf den neuen Emacs geworfen. Selbst kompilieren? Oder über Homebrew installieren? Am Ende siegte emacsformacosx.com mit dem Versprechen: Pure Emacs! No Extras! No Nonsense! Was auch stimmt. Was aber auch bedeutet, dass man hier nun wirklich sämtliche Pakete, die mir lieb und wichtig geworden sind, selbst nachrüsten muss. Und meine .emacs für den Aquamacs funktioniert natürlich mit dem Pure Emacs nicht so ohne weiteres.

Das Gerüst für meine Konfiguration stammt noch aus den 2000er Jahren, als ich mit dem NTEmacs begonnen hatte. Und wenn man schon die Tastaturbelegung hier als erstes angehen muss, noch bevor man zu weiterem übergehen kann, merkt man schnell, was in den Distributionen alles schon vorbereitet wurde. Der Aquamacs ist ein Rundum-Sorglos-Paket, in dem alles auf Anhieb funktioniert. Aber ich traue der Ruhe um mein wichtigstes Arbeitspferd nicht mehr. Und die anderen TeX-Editoren sind keine wirklichen Alternativen. Been there, seen that.

Deshalb werde ich nun erst einmal ausprobieren, ob mir ausreicht, was der Kollege Hendrik Sünkler in seiner Konfiguration vorschlägt. Ich habe zwar nicht vor, meine stundenweise Abrechnung in Org-mode zu loggen. Aber meine gewohnte LaTeX-Umgebung hätte ich schon gerne und die paar Programmier- und Auszeichnungssprachen, mit denen man es immer wieder zu tun hat, sollten auch so funktionieren wie gewohnt. Still digging!

Sie sind nicht angemeldet