Percayai .dir-locals.el


12

Saya ingin menaruh beberapa konfigurasi di luar init.elfile saya .dir-locals.el, yaitu yang berikut:

((nil
  (let ((dirs '(".cask" "core" "packages" "modules" "snippets" "themes")))
   (mapc #'(lambda (path) (add-to-list 'projectile-globally-ignored-directories path)) dirs))))

Tetapi setiap kali saya mencoba membuka file apa pun di .emacs.dfolder saya , emacs bertanya kepada saya apakah menyimpan untuk menerapkan kode ini. Saya sudah mencoba membungkamnya dengan mengatur file vars lokal:

;; -*- enable-local-variables: t; enable-local-eval: t -*-

dan itu sama sekali tidak membantu, sebaliknya menambahkan pesan lain untuk mempercayai pengaturan lokal ini. Bagaimana saya bisa membuatnya mempercayai .dir-locals.elkode saya ?


Anda telah mengikat variabel bernamalet
phils

Jawaban:


8

Anda dapat menyesuaikan safe-local-variable-valuesdi file init Anda. Ini akan mengharuskan Anda untuk juga menentukan nilai mana yang Anda anggap aman.

(add-to-list 'safe-local-variable-values '(var . value))

Ini tidak apa-apa jika Anda tahu set nilai yang mungkin, seperti yang disiratkan oleh pertanyaan Anda.

Jika Anda ingin membuat variabel aman untuk semua nilai yang memenuhi predikat, Anda bisa melakukan:

(put 'var 'safe-local-variable #'stringp) 

Terima kasih atas pendekatan ini, tetapi ketika saya menulis saya ingin memasukkan konfigurasi ini.dir-locals.el
4lex1v

Anda masih akan mengonfigurasi pengaturan proyektil di .dir-locals.el. Tetapi Anda akan terus menerima peringatan setelah memuat file itu, sampai Anda mengambil salah satu dari tindakan ini. Sudahkah Anda mencoba yang ke-2? Kode itu, dalam file init Anda, menggantikan 'var dengan direktori proyektil-diabaikan-global, harus mencegah peringatan ketika .dir-locals.el dimuat.
InHarmsWay

Meskipun memikirkannya, Anda mungkin perlu '#listp daripada' #stringp, karena Anda mengatur bilah ke daftar string.
InHarmsWay
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.