我正在 org 模式下开发一个识字程序。我的 .emacs 中有几个函数用于为程序设置 repl,是否可以将这些函数移动到 org-mode 文件并在每次打开文件时对其进行评估(如缓冲区本地变量,但使用功能。)
问问题
624 次
1 回答
5
您应该能够使用特殊的eval
文件局部变量(强调我的)来做到这一点:
一些“变量名”在局部变量列表中具有特殊含义:
因此,例如,具有此第一行的 Org 文件
# -*- eval: (message "foo"); -*-
或文件最后 3000 个字符内的类似块
# Local Variables:
# eval: (message "foo")
# End:
(message "foo")
将在打开文件时进行评估。
这是一个安全风险,因此当您打开文件时会提示您。您可以使用y
它来评估一次或!
将其保存为自定义文件中的安全评估并避免将来出现提示。
编辑:
这有点尴尬,但这是一种在文件加载时评估命名源块的方法:
# -*- eval: (progn (org-babel-goto-named-src-block "foo") (org-babel-execute-src-block-maybe)) -*-
#+NAME: foo
#+BEGIN_SRC emacs-lisp :results silent
(message "Yes, it worked")
#+END_SRC
不幸的是,我没有看到任何直接调用命名块的方法,这样你会得到两次安全提示:一次用于 the eval
,一次用于代码块foo
。
于 2014-04-18T14:17:06.257 回答