信任.dir-locals.el


12

我想将一些配置放在init.el文件外部.dir-locals.el,例如:

((nil
  (let ((dirs '(".cask" "core" "packages" "modules" "snippets" "themes")))
   (mapc #'(lambda (path) (add-to-list 'projectile-globally-ignored-directories path)) dirs))))

但是每次我尝试打开文件.emacs.d夹中的任何文件时,emacs都会问我是否保存此代码即可。我试图通过设置文件本地变量来使其静音:

;; -*- enable-local-variables: t; enable-local-eval: t -*-

完全没有帮助,相反,它添加了另一条消息来信任这些本地设置。如何使它信任我的.dir-locals.el代码?


您已绑定了一个名为let
phils

Answers:


8

您可以safe-local-variable-values在init文件中进行自定义。这将要求您还指定您认为安全的值。

(add-to-list 'safe-local-variable-values '(var . value))

如果您知道一组可能的值,这是可以的,因为您的问题暗示您会这样做。

如果要使所有满足谓词的值的变量安全,则可以执行以下操作:

(put 'var 'safe-local-variable #'stringp) 

谢谢您采用这种方法,但是正如我写的那样,我想将此配置放入.dir-locals.el
4lex1v

您仍将在.dir-locals.el中配置射弹设置。但是,在您加载该文件之前,您将继续收到警告,直到您执行以下操作之一。您尝试过第二个吗?该代码在您的init文件中,用'projectile-globally-ignored-directories'替换'var,可以防止在加载.dir-locals.el时出现警告。
InHarmsWay,2015年

尽管考虑了这一点,但由于将栏设置为字符串列表,因此可能需要'#listp而不是'#stringp。
InHarmsWay,2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.