我想在保存时将我的组织文件导出到HTML文件到某个目录.我可以使用Emacs和Org-mode但我不知道Elisp.
Emacs有一些在某些事件中被调用的钩子.你正在寻找的钩子可能是after-save-hook.只需将其设置为每次保存文件时要运行的功能.在你的情况下,这将是org-html-export-to-html.
有很多方法可以做到这一点,但以下方法可能是最快的,并不涉及任何"真正的"elisp.将以下行放在org文件中的某处:
# Local variables:
# after-save-hook: org-html-export-to-html
# end:
Run Code Online (Sandbox Code Playgroud)
下次打开该文件时,您将收到警告,并询问是否应设置局部变量(因为这可能不安全,但这里不是问题).按y,一切都应该正常工作.
使用Org-Mode 8.3和Emacs 24.5.1,接受的答案会创建一个伪缓冲区*Org HTML Export*,您必须手动保存,而密钥C-c C-e h h更方便地直接保存文件.
要在后台真正自动导出,请尝试以下代码:
# Local variables:
# eval: (add-hook 'after-save-hook 'org-html-export-to-html t t)
# end:
Run Code Online (Sandbox Code Playgroud)
您可以将此解决方案与以下功能结合使用.emacs:
(defun toggle-html-export-on-save ()
"Enable or disable export HTML when saving current buffer."
(interactive)
(when (not (eq major-mode 'org-mode))
(error "Not an org-mode file!"))
(if (memq 'org-html-export-to-html after-save-hook)
(progn (remove-hook 'after-save-hook 'org-html-export-to-html t)
(message "Disabled org html export on save"))
(add-hook 'after-save-hook 'org-html-export-to-html nil t)
(set-buffer-modified-p t)
(message "Enabled org html export on save")))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2092 次 |
| 最近记录: |