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?


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.


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.


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.


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

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".


-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)))

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.