gpt4 book ai didi

emacs - org-mode 文件特定函数

转载 作者:行者123 更新时间:2023-12-01 11:39:18 25 4
gpt4 key购买 nike

我正在组织模式下开发一个识字程序。我的 .emacs 中有几个函数可用于为程序设置 repl,是否可以将这些函数移动到 org-mode 文件中,并且每次打开文件时都会对它们进行评估(如缓冲区本地变量,但使用功能。)

最佳答案

您应该能够使用特殊的eval file-local variable 来做到这一点(强调我的):

Some "variable names" have special meanings in a local variables list:

  • mode enables the specified major mode.
  • eval evaluates the specified Lisp expression (the value returned by that expression is ignored).
  • coding specifies the coding system for character code conversion of this file. See Coding Systems.
  • unibyte says to load or compile a file of Emacs Lisp in unibyte mode, if the value is t. See Disabling Multibyte.

因此,例如,具有第一行的 Org 文件

# -*- eval: (message "foo"); -*-

或文件最后 3000 个字符内的这样一个 block

# Local Variables:
# eval: (message "foo")
# End:

将在文件打开时计算 (message "foo")

这存在安全风险,因此当您打开文件时会收到提示。您可以使用 y 对其求值一次或使用 ! 将其作为安全求值保存在您的自定义文件中,避免以后出现提示。

编辑:

这有点尴尬,但这里有一种在文件加载时评估命名源 block 的方法:

# -*- 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

不幸的是,我没有看到任何直接调用命名 block 的方法,这样你会得到安全提示两次:一次用于eval,一次用于代码块 foo.

关于emacs - org-mode 文件特定函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23154306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com