Recuerde el permiso para ejecutar variables locales "riesgosas"

15

En muchos de mis proyectos, uso .dir-locals.elarchivos para configurar variables específicas del proyecto, como compilar comandos. Al abrir un archivo dentro de un directorio que contiene dicho archivo, se emacsqueja de "variables locales riesgosas" , específicamente:

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"

No quiero desactivar esta función, pero me gustaría que me pidieran una sola vez (durante una sesión de emacs) un .dir-locals.elarchivo específico .

Estoy usando algunos complementos que quieren analizar todo el árbol de origen y es bastante molesto golpear ycientos de veces solo para analizar todo.

Entonces, la pregunta real:

¿Se emacspuede configurar / modificar el mecanismo de carga de variables locales de modo que permita / niegue la carga de una lista de variables locales específicas para la totalidad de una emacssesión?

elemakil
fuente

Respuestas:

7

Emacs debería ofrecer (y normalmente ofrece) la opción de aceptar y recordar la opción para sesiones posteriores. Le sugiero M-x report-emacs-bugsobre esta opción que falta en su caso.

Mientras tanto, puede agregar lo siguiente a su ~/.emacs:

(add-to-list 'safe-local-variable-values
             '(LaTeX-command . "lualatex -shell-escape"))
Stefan
fuente
44
Ninguna opción para recordar no es un error, es intencional para variables riesgosas. Si la variable no está en la lista segura, ¡Emacs informará que puede ser insegura y le preguntará con las opciones y / n plus! recordar. Si el nombre de la variable coincide con una expresión regular determinada, se considera arriesgado y solo se le dan las opciones y / n. La expresión regular para determinar si algo es arriesgado está en files.el en github.com/emacs-mirror/emacs/blob/…
Dan Midwood
Tal vez se hizo intencionalmente, pero creo que se equivocó y el OP parece estar de acuerdo, por lo que creo que merece un informe de error.
Stefan
2

Puede deshabilitar esta función "no recordar variables riesgosas" colocando lo siguiente en su ~/.emacs:

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

Entonces solo se volverá a confirmar cuando edites uno.

Tommy Jollyboat
fuente
1
También puede hacerlo (advice-add 'risky-local-variable-p :override #'ignore), lo que tiene la ventaja de que se puede deshacer a través de advice-remove.
npostavs