Vertrauen Sie .dir-local.el

12

Ich möchte eine Konfiguration außerhalb meiner init.elDatei einfügen .dir-locals.el, dh Folgendes:

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

Aber jedes Mal .emacs.d, wenn ich versuche, eine Datei in meinem Ordner zu öffnen , fragt mich emacs, ob es sicher ist, diesen Code anzuwenden. Ich habe versucht, es zum Schweigen zu bringen, indem ich die lokalen Variablen der Datei festgelegt habe:

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

und es hat überhaupt nicht geholfen, im Gegenteil, fügt eine weitere Nachricht hinzu, um diesen lokalen Einstellungen zu vertrauen. Wie kann ich dafür sorgen, dass es meinem .dir-locals.elCode vertraut ?

4lex1v
quelle
Sie haben eine Variable namenslet
phils

Antworten:

8

Sie können safe-local-variable-valuesin Ihrer Init-Datei anpassen . Dazu müssen Sie auch angeben, welche Werte Sie für sicher halten.

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

Dies ist in Ordnung, wenn Sie die möglichen Werte kennen, wie Ihre Frage impliziert.

Wenn Sie eine Variable für alle Werte sicher machen möchten, die ein Prädikat erfüllen, haben Sie folgende Möglichkeiten:

(put 'var 'safe-local-variable #'stringp) 
InHarmsWay
quelle
Vielen Dank für diesen Ansatz, aber wie ich schrieb, möchte ich diese Konfiguration in.dir-locals.el
4lex1v
Sie würden die Projektileinstellung weiterhin in einer .dir-local.el konfigurieren. Sie erhalten jedoch weiterhin Warnungen, wenn Sie diese Datei laden, bis Sie eine dieser Aktionen ausführen. Hast du den 2. ausprobiert? Dieser Code in Ihrer Init-Datei, der 'var durch Projektil-global-ignorierte-Verzeichnisse ersetzt, sollte die Warnungen verhindern, wenn die .dir-local.el geladen wird.
InHarmsWay
Obwohl Sie darüber nachdenken, benötigen Sie möglicherweise '#listp' anstelle von '#stringp', da Sie die Leiste auf eine Liste von Zeichenfolgen setzen.
InHarmsWay