“위험한”지역 변수를 실행할 권한을 기억하십시오


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 세션 동안) 요청하고 싶습니다 .

전체 소스 트리를 구문 분석하려는 플러그인을 사용하고 있으며 y모든 것을 구문 분석하기 위해 수백 번 히트하는 것은 상당히 성가신 일입니다.

실제 질문 :

emacs의 로컬 변수 로딩 메커니즘은 구성 /가 / 수의 전체에 대한 특정 지역 변수 목록의 로딩을 거부 할 수 있도록 수정할 수 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 옵션 만 제공됩니다. 위험한 것이 있는지 판단하기위한 정규식은 files.el ( github.com/emacs-mirror/emacs/blob/)에 있습니다.
Dan Midwood

어쩌면 의도적으로 이루어 졌을 수도 있지만 잘못 생각하고 OP가 동의하는 것 같습니다. 그래서 버그 보고서가 필요하다고 생각합니다.
Stefan

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.