3
我正在使用组织模式的识字程序。我在我的.emacs中有几个函数用于为程序设置repl,是否可以将这些函数移动到组织模式文件,并且每次打开文件时都会对它们进行评估(如缓冲区局部变量但与功能)组织模式文件特定功能
我正在使用组织模式的识字程序。我在我的.emacs中有几个函数用于为程序设置repl,是否可以将这些函数移动到组织模式文件,并且每次打开文件时都会对它们进行评估(如缓冲区局部变量但与功能)组织模式文件特定功能
你应该能够做到这一点使用特殊eval
file-local variable(重点煤矿):
一些“变量名”有一个局部变量列表特殊含义:
mode
启用指定的主模式。eval
计算指定的Lisp表达式(忽略该表达式返回的值)。coding
指定此文件字符码转换的编码系统。见Coding Systems。unibyte
表示在unibyte模式下加载或编译Emacs Lisp文件,如果值为t
。见Disabling Multibyte。
因此,例如,具有该文件的最后3000个字符中该第一线
# -*- eval: (message "foo"); -*-
或嵌段这样一个组织文件
# 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
不幸的是我没有看到任何方式调用直接命名块,这样你会得到安全提示两次:一次为eval
,一次为代码块foo
。
是否可以通过组织文件评估指定的源代码块? –
@HamzaYerlikaya,我找不到一个很干净的方式来做到这一点,但我已经用似乎有效的东西更新了我的答案。 – Chris