Confíe en .dir-locals.el

12

Quiero poner algo de configuración fuera de mi init.elarchivo .dir-locals.el, es decir, lo siguiente:

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

Pero cada vez que intento abrir un archivo en mi .emacs.dcarpeta, emacs me pregunta si es guardar para aplicar este código. Intenté silenciarlo configurando los archivos locales vars:

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

y no ayudó en absoluto, al contrario agrega otro mensaje para confiar en estas configuraciones locales. ¿Cómo puedo hacer que confíe en mi .dir-locals.elcódigo?

4lex1v
fuente
Ha vinculado una variable llamadalet
phils

Respuestas:

8

Puede personalizar safe-local-variable-valuesen su archivo de inicio. Esto requerirá que también especifique qué valores considera seguros.

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

Esto está bien si conoce el conjunto de valores posibles, como su pregunta implica que lo sabe.

Si desea que una variable sea segura para todos los valores que satisfacen un predicado, puede hacer lo siguiente:

(put 'var 'safe-local-variable #'stringp) 
En el sendero de lastimas
fuente
Gracias por este enfoque, pero mientras escribía quiero poner esta configuración en.dir-locals.el
4lex1v
Aún configuraría la configuración del proyectil en un .dir-locals.el. Pero continuará recibiendo advertencias al cargar ese archivo, hasta que realice una de estas acciones. ¿Has probado el 2do? Ese código, en su archivo init, reemplazando 'var con directorios de proyectil-globalmente ignorado, debería evitar las advertencias cuando se carga el .dir-locals.el.
InHarmsWay
Aunque piense en ello, puede necesitar '#listp en lugar de' #stringp, ya que está configurando la barra en una lista de cadenas.
InHarmsWay