Org-mode 9: impossible d'évaluer les blocs de code

45

Ma configuration Emacs réside à l'intérieur d'un .orgfichier à partir duquel j'embrouille des blocs source dans un .elfichier. Je pourrais évaluer les blocs sources avecC-c C-c

Aujourd'hui, j'ai mis à jour la version 9 d'org-mode pour org elpa et j'évalue maintenant un bloc source comme

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

avec C-c C-cimprime le message suivant

L'évaluation de ce bloc de code emacs-lisp est désactivée.

Dans mon init.elj'ai déjà défini les langues pour org-babel:

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

Si je charge la version stock d'emacs d'Emacs, je peux me débrouiller C-c C-ccomme prévu. Je n'ai trouvé aucun changement à ce sujet dans le journal des modifications de org-mode 9.

Comment activer l'évaluation des blocs de code dans org-mode 9?

rrogg
la source
1
Avez-vous les mêmes problèmes, lorsque vous utilisez org-babel-execute-src-block?
Bertfred
Réinstallez org-mode (supprimez le dossier org en .emacs.d/elpapremier), ce problème a peut-être déjà été résolu: lists.gnu.org/archive/html/emacs-orgmode/2016-11/msg00054.html
VanLaser
@bertfred a le même comportement que <kbd> Cc Cc </ kbd>.
Rrogg
1
J'avais le même problème et devais réinstaller avec difficulté (quelque chose comme cela, mais je ne me souviens pas parce que j'étais frustré et que je ne prenais pas de notes: désinstaller, quitter emacs, supprimer d'elpa, démarrer emacs, installer d'elpa, quitter emacs. , commencez emacs))
amitp
Je suis très triste de dire que ce problème semble être revenu. Ce qui suit provient d’une nouvelle installation sur une machine nue; l'évaluation des blocs source est désactivée et je ne vois pas comment l'activer. Org-Babel semble être mort. (emacs-version) "GNU Emacs 25.1.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 version 10.9.5 (version 13F1911)) du 2016-09-17" (version orgale) "9.0.5"
Reb.Cabin

Réponses:

42

Je pense que ce problème est causé par le passage d' org-babel-check-confirm-evaluateune macro à une fonction. Si vous avez org-modechargé (et donc l'ancienne macro) lors de la compilation du nouveau code, l'ancienne macro est affichée à la place de la nouvelle fonction.

Comme d'autres l'ont fait remarquer, désinstaller le org-moderedémarrage d'Emacs (sans le charger org-mode) et sa réinstallation résoudront le problème. Vous pouvez également supprimer les .elcfichiers compilés et recompiler avec byte-recompile-directory.

Erikstokes
la source
Génial j'ai eu exactement le même problème, et je ne pouvais pas comprendre pourquoi cela ne fonctionnait pas
Joafigue
1
Oui, c'est une bonne explication et solution. Mais j'ai trouvé la solution ci-dessous, par @ ימן הגלילי beaucoup plus facile que de désinstaller / réinstaller org-mode.
Modulitos
38

Pour élaborer sur @erikstokes:

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

ORGDIRNAMEest le nom du répertoire principal ogrmode. Redémarrez emacs et vous pouvez maintenant exécuter org-babeldes blocs de code.

ימן הגלילי
la source
1
Cela a fonctionné pour moi avec org-9.1.13. C'est plus rapide que de réinstaller. Notez que le nom du répertoire org sera probablement différent .
ephsmith
1
Cela a fonctionné pour moi sur spacemacs
Prasad
4

pour moi, désinstaller le paquet org-plus-contrib et le réinstaller l'a résolu.

Zeltak
la source
Réinstaller la même version ou une version ultérieure?
JeanPierre
supprime la version actuelle et installe la version la plus récente de Melpa
zeltak
3

Sur Emacs 25.2 (9.0) et en utilisant org-plus-contrib:

  • org-babel-execute-src-block m'a donné la même erreur que C-c C-c
  • la suppression du .emacs.d/elpadossier et la réinstallation ne l'ont pas corrigé
  • mais M-x package-delete [RET] org-plus-contribet réinstaller avec M-x package-install [RET] org-plus-contrib DID résoudre ce problème
Marcheur
la source
0

Par défaut, Org n'active que les blocs de code emacs-lisp 'src' pour l'exécution.

org-babel-no-eval-on-ctrl-c-ctrl-c variable peut être utilisée pour supprimer l’exécution de bloc de code de la combinaison de touches "Cc Cc".

Arun Kumar Khattri
la source
-1

Je pense que vous devriez ajouter le code suivant dans votre .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)))
Takuya Ebata
la source
Je recommanderais généralement de ne pas ajouter quelque type que ce soit requireà son fichier init, car cela ralentit le démarrage.
Stefan
Je ne le savais pas jusqu'à maintenant. Merci pour le conseil!
Takuya Ebata