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?

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"))

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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.