Org-mode 9: impossibile valutare i blocchi di codice


45

La mia configurazione di Emacs vive all'interno di un .orgfile da cui aggroviglio i blocchi sorgente in un .elfile. Potrei valutare i blocchi di origine conC-c C-c

Oggi ho aggiornato alla versione 9 in modalità org da org elpa e ora sto valutando un blocco sorgente come

#+BEGIN_SRC emacs-lisp :tangle yes
(setq org-export-coding-system 'utf-8)
#+END_SRC

con C-c C-cstampa il seguente messaggio

La valutazione di questo blocco di codice emacs-lisp è disabilitata.

Nel mio init.elho già definito le lingue per org-babel:

(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . t)
  (org . t)
  (sh . t)))

Se carico la versione originale di Emacs della modalità org, posso aggrovigliarmi C-c C-ccome previsto. Non sono riuscito a trovare modifiche al riguardo nel registro delle modifiche per la modalità organizzazione 9.

Come abilitare la valutazione dei blocchi di codice in modalità org 9?


1
Hai gli stessi problemi, quando lo usi org-babel-execute-src-block?
Bertfred

Reinstallare org-mode (cancellare org cartella dal .emacs.d/elpaprimo), tale questione potrebbe essere stato già risolto: lists.gnu.org/archive/html/emacs-orgmode/2016-11/msg00054.html
VanLaser

@bertfred ha lo stesso comportamento di <kbd> Cc Cc </kbd>.
visita il

1
Ho avuto lo stesso problema e ho dovuto reinstallarlo (qualcosa del genere ma non ricordo perché ero frustrato e non prendevo appunti: disinstalla, esci da emacs, elimina da elpa, avvia emacs, installa da elpa, esce da emacs , avvia emacs))
tra l'

Sono molto triste nel riferire che questo problema sembra essere tornato. Quanto segue proviene da una nuova installazione in una macchina nuda; la valutazione dei blocchi di origine è disabilitata e non vedo come abilitarlo. Org-babel sembra essere morta. (versione emacs) "GNU Emacs 25.1.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 versione 10.9.5 (build 13F1911)) del 2016-09-17" (versione org) "9.0.5"
Reb.Cabin

Risposte:


42

Penso che questo problema è causato dal cambiamento di org-babel-check-confirm-evaluateda una macro a una funzione. Se hai org-modecaricato (e quindi la vecchia macro) quando compili il nuovo codice, vedrà la vecchia macro invece della nuova funzione.

Come altri hanno sottolineato, la disinstallazione org-moderiavvia Emacs (senza caricare org-mode) e la reinstallazione risolverà il problema. È inoltre possibile eliminare i .elcfile compilati e ricompilare con byte-recompile-directory.


Fantastico ho avuto lo stesso identico problema e non riuscivo a capire perché non funzionasse
Joafigue

1
Sì, questa è una buona spiegazione e soluzione. Ma ho trovato la soluzione qui sotto, da @ בנימן הגלילי molto più semplice della disinstallazione / reinstallazione della modalità org.
Modulitos,

38

Per elaborare su @erikstokes:

rm ~/.emacs.d/elpa/ORGDIRNAME/*.elc

dove ORGDIRNAMEè il nome della directory principale ogrmode. Riavvia emacs e ora puoi eseguire org-babelblocchi di codice.


1
Questo ha funzionato per me con org-9.1.13. È più veloce della reinstallazione. Si noti che il nome della directory dell'organizzazione sarà probabilmente diverso .
efsmith,

1
Questo ha funzionato per me sui veicoli spaziali
prasad il

4

per me disinstallare il pacchetto org-plus-contrib e reinstallarlo risolto.


Reinstallare la stessa versione o una successiva?
JeanPierre,

rimuovi la versione corrente e installa l'ultima versione di Melpa
zeltak il

3

Su Emacs 25.2 (9.0) e usando org-plus-contrib:

  • org-babel-execute-src-block mi ha dato lo stesso errore di C-c C-c
  • l'eliminazione della .emacs.d/elpacartella e la reinstallazione non l'hanno riparata
  • ma M-x package-delete [RET] org-plus-contribe reinstallandolo con M-x package-install [RET] org-plus-contrib DID risolvilo

0

Per impostazione predefinita, Org abilita solo i blocchi di codice 'src' di emacs-lisp per l'esecuzione.

org-babel-no-eval-on-ctrl-c-ctrl-c La variabile può essere utilizzata per rimuovere l'esecuzione del blocco di codice dal collegamento "Cc Cc".


-1

Penso che dovresti aggiungere il seguente codice nel tuo .emacs.d/init.el.

;; ditaa
(require 'ob-ditaa)
(setq org-confirm-babel-evaluate nil)
(setq org-ditaa-jar-path
  "/path/to/ditaa-0_10.jar")
(org-babel-do-load-languages
  'org-babel-load-languages
  '((ditaa . t)
    (dot . t)))

In genere consiglierei di non aggiungere alcun tipo di requirefile init, perché rallenta l'avvio.
Stefan,

Fino ad ora non lo sapevo. Grazie per il consiglio!
Takuya Ebata,
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.