¿Cómo te cuesta disparar esto? (tratando de ejecutar un bloque sh asíncrono)
#+BEGIN_SRC sh
/tmp/7.sh
#+END_SRC
Entonces lo hago
C-c C-c
yo obtengo
Symbol's function definition is void: org-babel-get-header
Mi configuración
preludio emacs25 org instalado
;; my ~/prelude/personal/personal.el
(prelude-require-package 'ob-async)
(require 'ob-async)
(setq org-confirm-babel-evaluate nil)
(org-babel-do-load-languages
'org-babel-load-languages
'(
(sh . t)
(ruby . t)
))
function definition is void
: emacs.stackexchange.com/… El error siempre significa lo mismo, en el sentido inmediato, aunque el remedio adecuado puede ser diferente en diferentes casos (por ejemplo, tratar de usar una variable como una función, paquete aún no cargado, versión incorrecta de Emacs). La causa más común no es cargar primero la biblioteca necesaria. Sería genial si alguien consolidara cuidadosamente la mayoría o todas esas preguntas en una nueva pregunta genérica de la comunidad con una buena respuesta.Respuestas:
De acuerdo con https://lists.gnu.org/archive/html/emacs-orgmode/2015-11/msg00425.html
ob-sh
fue renombradoob-shell
en org 8.2 ... y cito a partir de ahí:Eso significa que debe sustituir
(sh . t)
por(shell . t)
en su llamada deorg-babel-do-load-languages
. ¡Y no olvide reiniciar emacs después! ;-)EDITAR: No es necesario cambiar el idioma de origen de los bloques de código fuente de
sh
ashell
. Solo es importante llamarorg-babel-shell-initialize
.Los idiomas de código fuente que son compatibles
ob-shell
están definidos en la opciónorg-babel-shell-names
(que se puede personalizar).El valor predeterminado de
org-babel-shell-names
es:'("sh" "bash" "csh" "ash" "dash" "ksh" "mksh" "posh")
A partir de estos nombres, las
org-babel-execute:...
funciones son generadas pororg-babel-shell-initialize
.fuente