「危険な」ローカル変数を実行する権限を覚えておいてください


15

私のプロジェクトの多くでは、.dir-locals.elファイルを使用して、コンパイルコマンドなどのプロジェクト固有の変数を設定しています。そのようなファイルを含むディレクトリ内のファイルを開くと、特に「危険なローカル変数」emacsについて不平を言います。

The local variables list in $DIR$/ contains variables that are risky (**)

Do you want to apply it? You can type
y  -- to apply the local variables list.
n  -- to ignore the local variables list.

** LaTeX-command : "lualatex -shell-escape"

この機能をオフにしたくはありませんが、特定の.dir-locals.elファイルについて(emacsセッション中に)1回だけ尋ねられたいと思います。

ソースツリー全体を解析したいプラグインを使用していますが、yすべてを解析するためだけに何百回もヒットするのは非常に面倒です。

したがって、実際の質問:

することができますemacs"ローカル変数のローディング機構は、configure /それは/許可の全体のために特定のローカル変数リストの読み込みを拒否することを可能にするように修正されemacsたセッション?

回答:


7

Emacsは、後のセッションの選択を受け入れて記憶するオプションを提供する必要があります(通常は提供します)。M-x report-emacs-bugあなたの場合、この欠けている選択についてお勧めします。

それまでの間、次のものをに追加できます~/.emacs

(add-to-list 'safe-local-variable-values
             '(LaTeX-command . "lualatex -shell-escape"))

4
覚えておくべきオプションはバグではなく、リスクのある変数を意図したものです。変数がセーフリストにない場合、Emacsは安全でない可能性があることを報告し、y / nオプションと!覚えておいてください。変数名が特定の正規表現と一致する場合、リスクがあるとみなされ、y / nオプションのみが与えられます。何かが危険かどうかを判断するための正規表現は、github.com / emacs
Dan Midwood

意図的に行われたのかもしれませんが、間違いであり、OPが同意しているように思われるため、バグレポートに値すると思います。
ステファン

2

に以下を入力することにより、この「危険な変数を記憶しない」機能を無効にできます~/.emacs

;; allow remembering risky variables
(defun risky-local-variable-p (sym &optional _ignored) nil)

その後、編集するときにのみ再確認します。


1
することもできます(advice-add 'risky-local-variable-p :override #'ignore)。これには、を介して取り消し可能という利点がありadvice-removeます。
npostavs
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.