เชื่อถือ. dir-locals.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 จะถามฉันว่าจะใช้รหัสนี้หรือไม่ ฉันพยายามเงียบโดยการตั้งค่า vars เฉพาะไฟล์:

;; -*- 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

คุณจะยังคงกำหนดค่าการตั้งค่า projectile ใน. dir-locals.el แต่คุณจะยังคงได้รับคำเตือนเมื่อทำการโหลดไฟล์นั้นจนกว่าคุณจะดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้ คุณเคยลองครั้งที่ 2 หรือยัง รหัสนั้นในไฟล์ init ของคุณแทนที่ 'var ด้วยไดเรกทอรี projectile-global-ละเว้น-ไดเรกทอรีควรป้องกันคำเตือนเมื่อโหลด. dir-locals.el
InHarmsWay

แม้ว่าคุณจะคิดถึงมันคุณอาจต้อง '#listp มากกว่า' #stringp เนื่องจากคุณกำลังตั้งค่าแถบเป็นรายการสตริง
InHarmsWay
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.