Орг-режим 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?


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.


Удивительно, у меня была точно такая же проблема, и я не мог понять, почему она не работает
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 и переустановка его решили.


Переустановка той же версии или более поздней?
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к своему файлу инициализации, поскольку он замедляет запуск.
Стефан

Я не знал этого до сих пор. Спасибо за совет!
Такуя Эбата
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.