Nachdem ich Emacs 25.1 auf 26.1 aktualisiert habe, funktioniert der org-Modus nicht mehr

12

Ich bin alles andere als ein Emacs-Experte, aber ich benutze Emacs org-modeziemlich häufig. Ich habe Emacs so konfiguriert, dass .orgDateien erkannt werden. Nach dem Update auf Version 26.1 erkennt Emacs nicht mehr nur .orgDateien:

File mode specification error: (file missing Cannot open load file No such file or directory ob-sh)

kann aber nicht mal ändern zu org-mode. M-x org-modegibt:

Cannot open load file No such file or directory ob-sh

Ich habe meine .emacsDatei oder den .emacs.dOrdner nicht verschoben .

Irgendeine Idee?

Martin Petersen
quelle
Nachdem ich meine .emacs-Datei und den .emacs.d-Ordner an einen anderen Speicherort verschoben habe, funktioniert alles einwandfrei. Trotzdem würde ich gerne wissen, was ich falsch gemacht habe.
Martin Petersen
Zu Ihrer Information, Sie haben nichts falsch gemacht. Dies war eine bahnbrechende / rückwärts inkompatible Änderung im Organisationsmodus, und ich vermute, dass viele Leute, die auf Emacs 26 upgraden, davon betroffen sind (und bleiben werden).
Phils
Hier ist ein Tipp, der nichts mit Ihrem Problem zu tun hat: Anstatt .emacsaus dem Weg zu gehen, starten Sie stattdessen einfach mit emacs --no-init-file(unter macOS open -a Emacs --args --no-init-file:). ( --no-init-filekann auf gekürzt werden -q.) Es gibt auch ein Flag --no-site-file, um das Laden von ortsspezifischen Dateien zu stoppen.
Harald Hanche-Olsen

Antworten:

15

Emacs 26.1 enthält eine viel neuere Version des Organisationsmodus als 25.1. ob-shwurde ob-shellin org-mode 8.2 umbenannt, daher müssen Sie die Konfiguration in .emacs anpassen, auf die Bezug genommen wird ob-sh, wie unter Entfernen von ob-sh beschrieben :

** Inkompatible Änderungen

*** ob-sh.elumbenannt in ob-shellDies erfordert möglicherweise zwei Änderungen in der Benutzerkonfiguration.

  1. In org-babel-do-load-languages, Änderung (sh . t)zu (shell . t).

  2. Bearbeiten Sie local.mkDateien, um den Wert von zu ändern BTEST_OB_LANGUAGES, um "sh" zu entfernen und "shell" einzuschließen.

Sie höchstwahrscheinlich müssen Sie Ihre Konfiguration für einen Anruf suchen org-babel-do-load-languagesund ändern shzu shellin der zugehörigen Liste der Sprachen.

rpluim
quelle
Danke für Ihre Hilfe. Ich habe .emacs und .emacs.d nach dem String ob-sh durchsucht, aber ich konnte ihn nicht finden. Auf jeden Fall werde ich meine Konfiguration Schritt für Schritt wiederherstellen.
Martin Petersen
Es könnte eher "sh" als "ob-sh" sein. Wenn Sie Ihre Konfiguration halbieren, sollte das genaue Problem gefunden werden.
rpluim
Auch emacs --debug-initkönnte die Zeile genau feststellen , welche Probleme verursacht.
rpluim
2
@MartinPetersen Suchen Sie in Ihrer Konfiguration nach einem Aufruf org-babel-do-load-languagesoder einer Einstellung der Variablen org-babel-load-languages. Sie müssen sie ändern , shum shelldie Sprache in der zugehörigen Liste. Wenn Sie möglicherweise sowohl die alte als auch die neue Variante unterstützen müssen, lassen Sie es uns wissen, da dies auch arrangiert werden kann.
Phils
Dank euch allen konnte ich das Problem lösen. Alles funktioniert jetzt wie vorgesehen. Nochmals vielen Dank.
Martin Petersen