Fidati di .dir-locals.el


12

Voglio mettere un po 'di configurazione al di fuori del mio init.elfile .dir-locals.el, vale a dire il seguente:

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

Ma ogni volta che sto provando ad aprire qualsiasi file nella mia .emacs.dcartella, emacs mi chiede se è necessario salvare questo codice per salvarlo. Ho provato a silenziarlo impostando file locali var:

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

e non ha aiutato affatto, al contrario aggiunge un altro messaggio per fidarsi di queste impostazioni locali. Come posso fidarmi del mio .dir-locals.elcodice?


Hai associato una variabile denominatalet
phils il

Risposte:


8

Puoi personalizzare safe-local-variable-valuesnel tuo file init. Ciò richiederà di specificare anche quali valori si considerano sicuri.

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

Questo va bene se conosci l'insieme di valori possibili, come implica la tua domanda.

Se vuoi rendere sicura una variabile per tutti i valori che soddisfano un predicato, puoi fare:

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

Grazie per questo approccio, ma come ho scritto voglio mettere questa configurazione in.dir-locals.el
4lex1v

Configureresti comunque l'impostazione del proiettile in un .dir-locals.el. Ma continuerai a ricevere avvisi durante il caricamento di quel file, fino a quando non esegui una di queste azioni. Hai provato il 2 °? Quel codice, nel tuo file init, sostituendo 'var con directory projectile-ignorate a livello globale, dovrebbe impedire gli avvertimenti quando viene caricato .dir-locals.el.
InHarmsWay

Sebbene ci stia pensando, potresti aver bisogno di '#listp piuttosto che' #stringp, poiché stai impostando la barra su un elenco di stringhe.
InHarmsWay
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.