Org-mode 9: no se pueden evaluar los bloques de código

45

Mi configuración de Emacs vive dentro de un .orgarchivo desde el que enredo bloques de origen en un .elarchivo. Podría evaluar bloques fuente conC-c C-c

Hoy actualicé a org-mode versión 9 desde org elpa y ahora estoy evaluando un bloque fuente como

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

con C-c C-cimprime el siguiente mensaje

La evaluación de este bloque de código emacs-lisp está deshabilitada.

En mi init.elya he definido los idiomas para org-babel:

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

Si cargo la versión estándar de Emacs de org-mode, puedo enredarme C-c C-ccomo se esperaba. No pude encontrar ningún cambio al respecto en el registro de cambios para org-mode 9.

¿Cómo habilitar la evaluación de bloques de código en org-mode 9?

Rrogg
fuente
1
¿Tienes los mismos problemas cuando los usas org-babel-execute-src-block?
atrapado el
Vuelva a instalar org-mode (elimine la carpeta org de .emacs.d/elpaprimero), ese problema puede haberse resuelto ya: lists.gnu.org/archive/html/emacs-orgmode/2016-11/msg00054.html
VanLaser
@bertfred produce el mismo comportamiento que <kbd> Cc Cc </kbd>.
rrogg
1
Tuve el mismo problema y tuve que volver a instalarlo (algo como esto pero no lo recuerdo porque estaba frustrado y no tomé notas: desinstalar, salir de emacs, eliminar de elpa, iniciar emacs, instalar desde elpa, salir de emacs , iniciar emacs))
amitp
Me entristece informar que este problema parece haber regresado. Lo siguiente es de una instalación nueva en una máquina desnuda; La evaluación de los bloques de origen está deshabilitada y no veo cómo habilitarla. Org-babel parece estar muerto. (versión emacs) "GNU Emacs 25.1.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 versión 10.9.5 (compilación 13F1911)) de 2016-09-17" (versión org) "9.0.5"
Reb.Cabin

Respuestas:

42

Creo que este problema es causado por el cambio de org-babel-check-confirm-evaluateuna macro a una función. Si ha org-modecargado (y, por lo tanto, la macro anterior) cuando compila el nuevo código, verá la macro anterior en lugar de la nueva función.

Como otros han señalado, desinstalar org-modereiniciar Emacs (sin cargar org-mode) y reinstalar solucionará el problema. También puede eliminar los .elcarchivos compilados y volver a compilar con byte-recompile-directory.

erikstokes
fuente
Impresionante, tuve exactamente el mismo problema, y ​​no podía entender por qué no funcionaba
Joafigue
1
Sí, esta es una buena explicación y solución. Pero encontré la solución a continuación, por @ בנימן הגלילי mucho más fácil que desinstalar / reinstalar org-mode.
modulitos
38

Para elaborar sobre @erikstokes:

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

donde ORGDIRNAMEes el nombre del directorio principal ogrmode. Reinicie emacs y ahora puede ejecutar org-babelbloques de código.

בנימן הגלילי
fuente
1
Esto funcionó para mí con org-9.1.13. Es más rápido que volver a instalar. Tenga en cuenta que el nombre del directorio de organización probablemente será diferente .
ephsmith
1
Esto funcionó para mí en spacemacs
prasad
4

para mí, desinstalar el paquete org-plus-contrib y reinstalarlo lo resolvió.

zeltak
fuente
¿Reinstalar la misma versión o una posterior?
JeanPierre
eliminar la versión actual e instalar la última versión de Melpa
zeltak
3

En Emacs 25.2 (9.0) y usando org-plus-contrib:

  • org-babel-execute-src-block me dio el mismo error que C-c C-c
  • eliminar la .emacs.d/elpacarpeta y reinstalarlo no lo solucionó
  • pero M-x package-delete [RET] org-plus-contriby reinstalar con M-x package-install [RET] org-plus-contrib DID lo arregla
Caminante
fuente
0

Por defecto, Org solo habilita los bloques de código emacs-lisp 'src' para la ejecución.

org-babel-no-eval-on-ctrl-c-ctrl-c La variable se puede utilizar para eliminar la ejecución del bloque de código de la combinación de teclas "Cc Cc".

Arun Kumar Khattri
fuente
-1

Creo que deberías agregar el siguiente código en tu .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
fuente
En general, recomendaría no agregar ningún tipo de requirearchivo de inicio, ya que ralentiza el inicio.
Stefan
No lo sabía hasta ahora. ¡Gracias por el consejo!
Takuya Ebata