Ham*_*aya 3 emacs literate-programming org-mode org-babel
我正在以组织模式开发一个有文化的程序.我在.emacs中有几个函数用于为程序设置repl,是否可以将这些函数移动到org-mode文件,并且每次打开文件时都会对它们进行评估(比如缓冲区本地变量,但是功能.)
你应该能够使用特殊的eval 文件局部变量(强调我的)来做到这一点:
一些"变量名称"在局部变量列表中具有特殊含义:
因此,例如,具有第一行的Org文件
# -*- eval: (message "foo"); -*-
Run Code Online (Sandbox Code Playgroud)
或者在文件的最后3000个字符内的这样的块
# Local Variables:
# eval: (message "foo")
# End:
Run Code Online (Sandbox Code Playgroud)
将评估(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
Run Code Online (Sandbox Code Playgroud)
不幸的是,我没有看到任何直接调用命名块的方法,这样就会提示安全性两次:一次用于eval代码块,一次用于代码块foo.