Org-режим 9: неможливо оцінювати блоки коду


45

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

Сьогодні я перейшов до org-mode версії 9 від 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-mode, я можу заплутатися, C-c C-cяк очікувалося. Я не зміг знайти жодних змін щодо цього в журналі змін для org-mode 9.

Як увімкнути оцінку блоків коду в org-режимі 9?


1
Чи виникають у вас однакові проблеми, коли ви користуєтесь org-babel-execute-src-block?
bertfred

Перевстановіть org-режим (видаліть org папку з .emacs.d/elpaпершої), можливо, це питання вже було вирішено: list.gnu.org/archive/html/emacs-orgmode/2016-11/msg00054.html
VanLaser

@bertfred призводить до такої ж поведінки, як <kbd> Cc Cc </kbd>.
rrogg

1
У мене була така ж проблема, і мені довелося важко перевстановити (щось подібне, але я не пам’ятаю, тому що я був розчарований і не робив примітки: видалити, вийти з emacs, видалити з elpa, запустити emacs, встановити з elpa, вийти з emacs , початок emacs))
amitp

Мені дуже сумно повідомити, що ця проблема, здається, повернулася. Далі - із свіжої установки в голу машину; оцінка вихідних блоків вимкнена, і я не бачу, як це ввімкнути. Організм, здається, мертвий. (emacs-версія) "GNU Emacs 25.1.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21, версія 10.9.5 (Build 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.
modulitos

38

Детальніше про @erikstokes:

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

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


1
Це працювало для мене з org-9.1.13. Це швидше, ніж перевстановлення. Зверніть увагу, що ім'я org каталогу, ймовірно, буде відрізнятися .
ефсміт

1
Це працювало для мене на космосах
прасад

4

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


Перевстановити ту ж версію чи пізнішу версію?
ЖанП'єр

видалити поточну версію та встановити останню з 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файл до файлу init, оскільки він уповільнює запуск.
Стефан

Я до цього не знав. Дякую за пораду!
Takuya Ebata
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.