Tin tưởng .dir-locals.el


12

Tôi muốn đặt một số cấu hình bên ngoài init.eltập tin của tôi vào .dir-locals.el, tức là như sau:

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

Nhưng mỗi lần tôi cố gắng mở bất kỳ tệp nào trong .emacs.dthư mục của mình , emacs hỏi tôi có lưu để áp dụng mã này không. Tôi đã cố gắng tắt tiếng bằng cách cài đặt tệp cục bộ:

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

và nó hoàn toàn không giúp ích gì, ngược lại thêm một thông điệp khác để tin tưởng các cài đặt cục bộ này. Làm thế nào tôi có thể làm cho nó tin tưởng .dir-locals.elmã của tôi ?


Bạn đã ràng buộc một biến có tênlet
phils

Câu trả lời:


8

Bạn có thể tùy chỉnh safe-local-variable-valuestrong tập tin init của bạn. Điều này sẽ yêu cầu bạn cũng chỉ định những giá trị nào bạn cho là an toàn.

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

Điều này là ổn nếu bạn biết tập hợp các giá trị có thể, vì câu hỏi của bạn ngụ ý bạn làm.

Nếu bạn muốn tạo một biến an toàn cho tất cả các giá trị thỏa mãn một vị từ, bạn có thể làm:

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

Cảm ơn bạn vì cách tiếp cận này, nhưng như tôi đã viết, tôi muốn đặt cấu hình này vào.dir-locals.el
4lex1v

Bạn vẫn sẽ định cấu hình cài đặt đạn trong .dir-locals.el. Nhưng bạn sẽ tiếp tục nhận được cảnh báo khi tải tệp đó, cho đến khi bạn thực hiện một trong những hành động này. Bạn đã thử lần thứ 2 chưa? Mã đó, trong tệp init của bạn, thay thế 'var bằng các thư mục bị bỏ qua trên toàn cầu, sẽ ngăn các cảnh báo khi .dir-locals.el được tải.
InHarmsWay

Mặc dù suy nghĩ về nó, bạn có thể cần '#listp thay vì' #opesp, vì bạn đang đặt thanh thành một danh sách các chuỗi.
InHarmsWay
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.