Орг-режим 9: невозможно оценить кодовые блоки

45

Мой конфиг Emacs живет внутри .orgфайла, из которого я путаю исходные блоки в .elфайл. Я мог бы оценить исходные блоки сC-c C-c

Сегодня я обновился до версии 9 режима org от org elpa и теперь оцениваю исходный блок как

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

с C-c C-cпечатью следующее сообщение

Оценка этого блока кода emacs-lisp отключена.

По моему init.elя уже определил языки для org-babel:

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

Если я загружу стандартную версию Emacs в режиме org, я могу запутаться, C-c C-cкак и ожидалось. Я не смог найти никаких изменений по этому поводу в журнале изменений для org-mode 9.

Как включить оценку кодовых блоков в орг-режиме 9?

rrogg
источник
1
У вас есть те же проблемы, когда вы используете org-babel-execute-src-block?
Бертфред
Переустановите org-mode ( .emacs.d/elpaсначала удалите папку org ), возможно, эта проблема уже решена: lists.gnu.org/archive/html/emacs-orgmode/2016-11/msg00054.html
VanLaser
@bertfred приводит к тому же поведению, что и <kbd> Cc Cc </ kbd>.
Ррогг
1
У меня была та же проблема, и мне пришлось переустанавливать ее (что-то вроде этого, но я не помню, потому что я был разочарован и не делал заметок: удалить, выйти из emacs, удалить из elpa, запустить emacs, установить из elpa, выйти из emacs ,
запусти
Мне очень грустно сообщать, что эта проблема, похоже, вернулась. Следующее - от новой установки на голую машину; оценка исходных блоков отключена, и я не вижу, как это включить. Орг-Бабель кажется мертвым. (emacs-версия) "GNU Emacs 25.1.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 версия 10.9.5 (сборка 13F1911)) 2016-09-17" (org-версия) "9.0.5"
Reb.Cabin

Ответы:

42

Я думаю , что эта проблема вызвана изменением в org-babel-check-confirm-evaluateот макро к функции. Если у вас org-mode(и, следовательно, старый макрос) загружен при компиляции нового кода, он видит старый макрос вместо новой функции.

Как уже отмечали другие, org-modeперезапуск Emacs (без загрузки org-mode) и переустановка решат проблему. Вы также можете удалить скомпилированные .elcфайлы и перекомпилировать с byte-recompile-directory.

erikstokes
источник
Удивительно, у меня была точно такая же проблема, и я не мог понять, почему она не работает
Joafigue
1
Да, это хорошее объяснение и решение. Но я нашел решение ниже, с помощью @ בנימן הגלילי гораздо проще, чем удаление / переустановка org-mode.
модуль
38

Чтобы развить @erikstokes:

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

где ORGDIRNAMEимя основного каталога ogrmode. Перезапустите emacs, и теперь вы можете запускать org-babelблоки кода.

בנימן הגלילי
источник
1
Это сработало для меня с org-9.1.13. Это быстрее, чем переустановить. Обратите внимание, что имя каталога org, скорее всего, будет другим .
Эфсмит
1
Это работает для меня на spacemacs
прасад
4

для меня удаление пакета org-plus-contrib и переустановка его решили.

zeltak
источник
Переустановка той же версии или более поздней?
JeanPierre
удалить текущую версию и установить последнюю версию от Melpa
zeltak
3

На Emacs 25.2 (9.0) и используя org-plus-contrib:

  • org-babel-execute-src-block дал мне ту же ошибку, что и C-c C-c
  • удаление .emacs.d/elpaпапки и переустановка не исправить
  • но M-x package-delete [RET] org-plus-contribи переустановка с M-x package-install [RET] org-plus-contrib DID это исправить
ходунки
источник
0

По умолчанию Org разрешает выполнение только блоков кода emacs-lisp 'src'.

org-babel-no-eval-on-ctrl-c-ctrl-c Переменная может использоваться для удаления выполнения блока кода из привязки клавиш "Cc Cc".

Арун Кумар Хаттри
источник
-1

Я думаю, что вы должны добавить следующий код в свой .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)))
Такуя Эбата
источник
Я обычно рекомендую против добавления любого рода requireк своему файлу инициализации, поскольку он замедляет запуск.
Стефан
Я не знал этого до сих пор. Спасибо за совет!
Такуя Эбата