我有一个Emacs Lisp文件与自定义宏,我想要分化和缩进。代码如下:Emacs每个文件定制
(defmacro* when-let ((var value) &rest body)
`(let ((,var ,value))
(when ,var ,@body)))
(defun func()
(when-let (a 1)
a))
我想when-let
fontified为font-lock-keyword
和上述缩进。我知道我可以在我的.emacs文件中执行此操作,但我更愿意将其设置为本地目录或本地自定义文件。问题在于目录本地和文件本地自定义似乎仅限于设置变量。在我的.emacs文件中,我有以下内容。
(add-hook 'emacs-lisp-mode-hook
(lambda()
(put 'when-let 'lisp-indent-function 1)
(font-lock-add-keywords nil
'(("(\\(when-let\\)\\>" 1
font-lock-keyword-face)))))
我想要这个在.dir-locals.el
,因为它只适用于一个文件。
作为一点澄清,上面的代码块应该放在您希望应用的文件的顶部。这适用于任何类型的文件,只要它以文件的语言显示为注释(例如,在C++文件中,可以用//替换;;;;;;;;;;;;;;;;;;;;;;;;;;;; – jwernerny 2010-12-06 14:22:18