Dopo aver aggiornato Emacs da 25.1 a 26.1 la modalità org non funziona più


12

Sono tutt'altro che un esperto di Emacs ma uso Emacs org-modeabbastanza frequentemente. Ho configurato Emacs per riconoscere i .orgfile. Dopo aver aggiornato alla versione 26.1 Emacs non riconosce .orgpiù solo i file:

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

ma non può nemmeno cambiare in org-mode. M-x org-modedà:

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

Non ho spostato il mio .emacsfile o la .emacs.dcartella.

Qualche idea?


Dopo aver spostato il mio file .emacs e la cartella .emacs.d in un'altra posizione, tutto funziona correttamente. Vorrei ancora sapere cosa ho fatto di sbagliato.
— Martin Petersen,

Cordiali saluti, non hai fatto niente di male. Si è trattato di una modifica incompatibile all'indietro / incompatibile con la modalità org, e sospetto che molte persone che hanno eseguito l'upgrade a Emacs 26 siano state (e continueranno ad esserlo) inciampate da esso.
— phils,

Ecco un suggerimento, non correlato al tuo problema qui: invece di spostarti .emacsdi mezzo, basta avviare emacs --no-init-file(su macOS:) open -a Emacs --args --no-init-fileinvece. ( --no-init-filepuò essere abbreviato in -q.) C'è anche un flag --no-site-fileper interrompere il caricamento di file specifici del sito.
— Harald Hanche-Olsen,

Risposte:


16

Emacs 26.1 viene fornito con una versione molto più recente di org-mode rispetto alla 25.1. ob-shè stato rinominato ob-shellin modalità org 8.2, quindi dovrai adattare la configurazione a cui si riferisce .emacs ob-sh, come descritto nella rimozione ob-sh :

** Modifiche incompatibili

*** ob-sh.elrinominato in ob-shellQuesto può richiedere due cambiamenti nella configurazione dell'utente.

  1. In org-babel-do-load-languages, cambia (sh . t)in (shell . t).

  2. Modifica i local.mkfile per cambiare il valore di BTEST_OB_LANGUAGESrimuovere "sh" e includere "shell".

Molto probabilmente dovrai cercare una configurazione nella tua configurazione org-babel-do-load-languagese passare sha shellnell'elenco delle lingue associate.


Grazie per l'aiuto. Ho cercato .emacs e .emacs.d per la stringa ob-sh ma non sono riuscito a trovarla. Ad ogni modo, ripristinerò la mia configurazione passo dopo passo.
— Martin Petersen,

Potrebbe essere "sh" anziché "ob-sh". Bisecare la tua configurazione dovrebbe trovare il problema esatto.
— rpluim

Inoltre emacs --debug-initpotrebbe individuare la linea che sta causando problemi.
— rpluim

2
@MartinPetersen Cerca nella tua configurazione una chiamata org-babel-do-load-languageso l'impostazione della variabile org-babel-load-languages. Dovrai passare sha shellnell'elenco associato delle lingue. Se potresti aver bisogno di supportare sia la vecchia che la nuova variante, faccelo sapere, in quanto ciò può anche essere organizzato.
— phils,

Grazie a tutti voi sono stato in grado di risolvere il problema. Ora tutto funziona come previsto. Ancora grazie mille.
— Martin Petersen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.