emacs

时间:2015-08-31 21:39:30

标签: emacs org-mode

我正在使用define-auto-insert'(" \。org \'"。" org skeleton")宏来插入标头。每当我创建任何新的组织文件时,这都可以正常工作。但它也将自动标题插入到其他空的orgs文件中(由于某些特殊原因使用touch命令创建)。有人可以建议我任何方式,当我在emacs中打开它时,宏不会在已创建的空文件中添加标题吗?

1 个答案:

答案 0 :(得分:1)

Autoinsert并非真正旨在实现这一区别。实现此目的的最简单方法是使用另一个函数包装自动插入函数,并使用新文件挂钩进行注册。例如:

(defun auto-insert-guard ()
   "Prevent auto-insertion for files that exist already"
   (interactive)
   (unless (file-exists-p (buffer-file-name))
     (auto-insert)))

将此用作钩子:

(add-hook 'find-file-hook 'auto-insert-guard)

它显然可能比这更复杂,你可能只希望对某些类型的文件有这种保护。

有时你会看到与defadvice类似的事情,但这往往更加脆弱,以后再回来时很难理解。