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