Como você se incomoda em filmar isso? (tentando executar um bloco sh assíncrono)
#+BEGIN_SRC sh
/tmp/7.sh
#+END_SRC
Então eu faço
C-c C-c
eu recebo
Symbol's function definition is void: org-babel-get-header
Minha configuração
prelude 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/… O erro sempre significa a mesma coisa, no sentido imediato, embora o remédio adequado possa ser diferente em diferentes casos (por exemplo, tentar usar uma variável como uma função, pacote ainda não carregado, versão errada do Emacs). A causa mais comum não é carregar primeiro a biblioteca necessária. Seria ótimo se alguém consolidasse cuidadosamente a maioria ou todas essas perguntas em uma nova pergunta genérica da comunidade com uma boa resposta.Respostas:
De acordo com https://lists.gnu.org/archive/html/emacs-orgmode/2015-11/msg00425.html
ob-sh
foi renomeadoob-shell
na organização 8.2 ... e cito a partir daí:Isso significa que você deve substituir
(sh . t)
por(shell . t)
na sua chamada deorg-babel-do-load-languages
. E não se esqueça de reiniciar o emacs depois! ;-)EDIT: Você não precisa alterar o idioma de origem dos blocos de código-fonte de
sh
parashell
. É importante apenas ligarorg-babel-shell-initialize
.Os idiomas do código-fonte suportados por
ob-shell
são definidos na opçãoorg-babel-shell-names
(que pode ser personalizada).O valor padrão de
org-babel-shell-names
é:'("sh" "bash" "csh" "ash" "dash" "ksh" "mksh" "posh")
A partir desses nomes, as
org-babel-execute:...
funções são geradas pororg-babel-shell-initialize
.fonte