law*_*ist 3 emacs elisp org-mode
我使用org-mode被调用的自定义版本lawlist-org-mode- 每个函数和变量都有前缀lawlist-,修改后的版本有许多自定义功能,这些功能在库存版本中不可用.偶尔,我喜欢使用股票org-mode版本 - 但是,这需要手动修改auto-mode-alist然后重新启动Emacs.这是必要的,因为功能和变量org-agenda-files以及执行检查org-mode以验证是否存在正确的主模式.是否有一种有效的方法可以根据被调用的函数以编程方式修改它?
股票org-mode需要这个条目:
(add-to-list 'auto-mode-alist '("\\.todo\\'" . org-mode))
Run Code Online (Sandbox Code Playgroud)
调用的自定义版本lawlist-org-mode需要此条目:
(add-to-list 'auto-mode-alist '("\\.todo\\'" . lawlist-org-mode))
Run Code Online (Sandbox Code Playgroud)
示例:
如果我打电话M-x org-agenda,.todo文件需要在org-mode.
如果我打电话M-x lawlist-org-agenda,该.todo文件需要进入lawlist-org-mode.
一些想法:org-agenda-files通常由org-agenda函数使用以下代码行访问 - (org-agenda-files nil 'ifmode) . . . (while (setq file (pop files)).也许修改功能org-agenda-files可能是一种选择?
条目的FUNCTION一部分auto-mode-alist(即cdr)只是一个函数.原则上它被称为建立主要模式.但它可以做任何事情.
特别是,你可以有一个条目("\\.todo\\'" . foo),其中函数foo有条件地调用lawlist-org-mode或org-mode.
例如,它可以lawlist-org-mode在月亮满时使用,org-mode否则.或者它可以测试一个全局变量,当您想要从一个变量切换到另一个变量时,可以设置该变量.等等.
至少那是我对auto-mode-alistdoc字符串的阅读.我从来没有尝试过.