“Riskli” yerel değişkenleri yürütme iznini unutmayın


15

Projelerimin çoğunda .dir-locals.eldosyaları derleme komutları gibi projeye özgü değişkenleri ayarlamak için kullanıyorum . Böyle bir dosyayı içeren bir dizinde bir dosyayı açtıktan sonra, "riskli yerel değişkenler"emacs hakkında şikayet eder , özellikle:

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"

Bu özelliği kapatmak istemiyorum, ancak belirli bir .dir-locals.eldosya için (bir emacs oturumu sırasında) yalnızca bir kez sorulmasını istiyorum .

Tüm sourcetree ayrıştırmak isteyen bazı eklentiler kullanıyorum ve ysadece her şeyi ayrıştırmak için yüzlerce kez vurmak oldukça sinir bozucu .

Yani asıl soru:

Can emacs'Yerel değişken yükleme mekanizması yapılandırmak / o / izin bir bütünlüğü için belirli bir yerel değişkenler listesinin yüklenmesini inkar olanak şekilde değiştirilebilir emacsoturumda?

Yanıtlar:


7

Emacs, daha sonraki oturumlar için seçimi kabul etme ve hatırlama seçeneğini sunmalıdır (ve normalde sunar). Durumunuzdaki M-x report-emacs-bugbu eksik seçim hakkında size tavsiyede bulunuyorum.

Bu süre zarfında aşağıdakileri ekleyebilirsiniz ~/.emacs:

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

4
Hatırlamak için hiçbir seçenek bir hata değildir, riskli değişkenler için kasıtlıdır. Değişken güvenli listede değilse Emacs, y / n seçenekleri artı! hatırlamak. Değişken adı belirli bir normal ifadeyle eşleşiyorsa, riskli kabul edilir ve size yalnızca y / n seçenekleri verilir. Bir şey riskli olup olmadığını belirlemek için düzenli ifade de files.el olduğu github.com/emacs-mirror/emacs/blob/...
Dan Midwood

Belki kasıtlı olarak yapıldı, ama bence yanılmıştı ve OP anlaşıyor gibi görünüyor, bu yüzden bir hata raporunu hak ettiğini düşünüyorum.
Stefan

2

Bu "riskli değişkenleri hatırlama" özelliğini aşağıdakilere koyarak devre dışı bırakabilirsiniz ~/.emacs:

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

Ardından yalnızca bir tanesini düzenlediğinizde onaylanır.


1
Ayrıca (advice-add 'risky-local-variable-p :override #'ignore), geri alınamaz olma avantajına sahip yapabilirsiniz advice-remove.
npostavs
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.