Це рішення не потребує змін init.el
(з незначними змінами). Хоча це передбачає локальні оцінки файлів - але це саме те, про що вимагала ОП. Перевагами рішення є:
- запитує підтвердження для оцінки коду
- Код elisp можна редагувати і тестувати в середовищі org-babel
- оскільки рішення не потребує змін
init.el
у файлі органода, може бути надано (довіреним) користувачам
Я перефразую рішення тут.
Додайте src-блок десь у вашому файлі:
#+NAME: startup
#+BEGIN_SRC emacs-lisp
(your-code-here)
#+END_SRC
Потім поставте це в кінці свого файлу orgmode:
# Local Variables:
# eval: (progn (org-babel-goto-named-src-block "startup") (org-babel-execute-src-block) (outline-hide-sublevels 1))
# End:
Я додав, (outline-hide-sublevels 1)
тому що мені подобається ховати src-блок всередині заголовка і хочу, щоб підрівні приховувалися під час запуску. Без цього твердження суборівні будуть розширені на (org-babel-goto-named-src-block "startup")
.
За допомогою цього рішення, emacs запитає дозволу на виконання (1-й: застосувати локальні змінні; 2-й: виконати "startup" -src-блок). Оскільки у моєму файлі багато src-блоків, я встановив ще один файл-локальна змінна org-confirm-babel-evaluate
, наприклад, такий:
# Local Variables:
# org-confirm-babel-evaluate: nil
# eval: (progn (org-babel-goto-named-src-block "startup") (org-babel-execute-src-block) (outline-hide-sublevels 1))
# End:
Попередження: З цим доповненням, emacs підкаже лише один раз про дозвіл на виконання - всі src-блоки в цьому файлі тепер можуть бути виконані без додаткового підтвердження. Як вже вказували інші, така поведінка може бути небезпечною, і ви повинні бути дуже обережними з цим налаштуванням.
Тим НЕ менше, я б стверджувати , що це рішення (особливо перша версія) є більш безпечним , ніж один даними Джо Corneli , тому що принаймні у вас буде запропоновані для підтвердження для виконання. Рішення Джо буде оцінювати спеціальний блок без підтвердження, якщо він знайдеться у файлі. Зловмисникові, звичайно, доведеться відгадати назву спеціального блоку ...
Я використовую такий підхід для написання великих документів, які потребують, наприклад, адаптації до механізмів організації експорту.