Довіряйте .dir-localals.el


12

Я хочу помістити деякий конфігурацію поза моїм init.elфайлом .dir-locals.el, тобто таке:

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

Але кожного разу, коли я намагаюся відкрити будь-який файл у своїй .emacs.dпапці, emacs запитує мене, чи не зберегти це застосування цього коду. Я спробував замовкнути це, встановивши локальний файл файлу:

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

і це зовсім не допомогло, навпаки додає ще одне повідомлення про довіру цим локальним налаштуванням. Як я можу змусити його довіряти своєму .dir-locals.elкоду?


Ви зв'язали змінну на ім'яlet
phils

Відповіді:


8

Ви можете налаштувати safe-local-variable-valuesу своєму файлі init. Це вимагає, щоб ви також вказали, які значення ви вважаєте безпечними.

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

Це добре, якщо ви знаєте набір можливих значень, як ви розумієте, що ви ставите своїм запитанням.

Якщо ви хочете зробити змінну безпечною для всіх значень, що задовольняють предикат, ви можете зробити:

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

Дякую за такий підхід, але, як я писав, я хочу поставити цю конфігурацію.dir-locals.el
4lex1v

Ви все-таки налаштуєте налаштування снаряда в .dir-locals.el. Але ви будете отримувати попередження після завантаження цього файлу, поки не зробите одну з цих дій. Ви пробували 2-й? Цей код у вашому файлі init, замінюючи 'var на каталоги снарядів-глобально ігнорованих, повинен запобігати попередженням при завантаженні .dir-locals.el.
InHarmsWay

Незважаючи на те, що ви думаєте про це, вам може знадобитися "#listp, а не" #stringp, оскільки ви встановлюєте смужку в список рядків.
InHarmsWay
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.