.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

回答:


8

safe-local-variable-valuesinitファイルでカスタマイズできます。これにより、安全と見なす値も指定する必要があります。

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

可能な値のセットがわかっていれば、これは問題ありません。

述語を満たすすべての値に対して変数を安全にしたい場合は、次のようにすることができます。

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

このアプローチをありがとう、しかし私が書いたように私はこの構成を入れたい.dir-locals.el
4lex1v

それでも、.dir-locals.elで発射物設定を構成します。ただし、これらのアクションのいずれかを実行するまで、そのファイルのロード時に警告が表示され続けます。2回目は試しましたか?そのコードのinitファイルで、 'varをprojectile-globally-ignored-directoriesに置き換えて、.dir-locals.elが読み込まれたときに警告が出ないようにする必要があります。
InHarmsWay 2015

それについて考えていますが、バーを文字列のリストに設定しているため、 '#stringpではなく' #listpが必要になる場合があります。
InHarmsWay 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.