Wie können Sie das Problem lösen? (versucht einen asynchronen sh-Block auszuführen)
#+BEGIN_SRC sh
/tmp/7.sh
#+END_SRC
Dann mach ich
C-c C-c
Ich bekomme
Symbol's function definition is void: org-babel-get-header
Mein Setup
Vorspiel emacs25 org installiert
;; 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/… Der Fehler bedeutet im unmittelbaren Sinne immer dasselbe, obwohl das richtige Mittel in verschiedenen Fällen unterschiedlich sein kann (z. B. der Versuch, eine Variable als zu verwenden eine Funktion, Paket noch nicht geladen, falsche Emacs-Version). Die häufigste Ursache ist nicht, zuerst die benötigte Bibliothek zu laden. Es wäre großartig, wenn jemand die meisten oder alle dieser Fragen sorgfältig zu einer neuen, allgemeinen Community-Frage mit einer guten Antwort zusammenfassen würde.Antworten:
Laut https://lists.gnu.org/archive/html/emacs-orgmode/2015-11/msg00425.html
ob-sh
wurdeob-shell
in org 8.2 umbenannt ... und ich zitiere von dort:Das heißt , sollten Sie ersetzen
(sh . t)
durch(shell . t)
in Ihrem Ruforg-babel-do-load-languages
. Und vergessen Sie nicht, Emacs danach neu zu starten! ;-);EDIT: Sie brauchen nicht die Ausgangssprache des Quellcodes Blöcke ändern aus
sh
zushell
. Es ist nur wichtig anzurufenorg-babel-shell-initialize
.Die von unterstützten Quellcode-Sprachen werden
ob-shell
in der Option definiertorg-babel-shell-names
(die angepasst werden kann).Der Standardwert von
org-babel-shell-names
ist:'("sh" "bash" "csh" "ash" "dash" "ksh" "mksh" "posh")
Aus diesen Namen werden
org-babel-execute:...
Funktionen von generiertorg-babel-shell-initialize
.quelle