หากกรณีการใช้งานกำลังแชร์ไดเรกทอรี ".emacs.d" การกำหนดค่า emacs เดียวกับผู้ใช้เครื่องลินุกซ์ดังนั้นวิธีการแก้ปัญหานี้https://emacs.stackexchange.com/a/4258/5488จะทำงานในกรณีส่วนใหญ่ แต่ในบางกรณี เคส emacs พยายามเขียนไฟล์ชั่วคราวไปยังไดเร็กทอรี user-emacs-(เช่นไฟล์ .ido.last) ในกรณีเช่นนี้หากไดเรกทอรีการกำหนดค่าที่แชร์มีสิทธิ์ในการเขียนสำหรับผู้ใช้ทั้งหมดมันจะทำงานได้ แต่อาจไม่เป็นที่ต้องการเนื่องจากผู้ใช้ระบบแต่ละคนอาจไม่ต้องการแชร์ไดเรกทอรีเดียวกันเพื่อจัดเก็บไฟล์ชั่วคราว ในกรณีเช่นนี้การแก้ปัญหาต่อไปนี้จะเป็นทางเลือกที่ดีกว่า
ไฟล์ config ที่ใช้ร่วมกันทั่วไป. emacs.d / init.el ควรเริ่มต้นด้วย
;; should come before calling package-initialize as it will populate
;; everything under common config "~/.emacs.d/elpa"
(setq user-init-file (or load-file-name (buffer-file-name)))
(setq package-user-dir (concat (file-name-directory user-init-file) "elpa"))
(package-initialize)
ทำให้การกำหนดค่าที่ใช้ร่วมกัน. emacs.d มีสิทธิ์อ่านสำหรับผู้ใช้ทั้งหมด (ไม่จำเป็นต้องมีสิทธิ์ในการเขียน)
another_user $ emacs -q --load /path/to/shared/config/.emacs.d/init.el
ผู้ใช้ทุกคนจะมีไดเรกทอรี "~ / .emacs.d /" ของตนเอง แต่ใช้เพื่อบันทึกไฟล์ชั่วคราวเท่านั้น แต่แพ็คเกจและการกำหนดค่าอื่น ๆ จะถูกโหลดจากไดเรกทอรีการกำหนดค่าที่ใช้ร่วมกัน
.emacs.d
ไดเรกทอรีที่กำหนดเองยกเว้นว่าคุณจะเปลี่ยน HOME ซึ่งดูเหมือนว่ามีปัญหากับฉัน ผู้คนต่างให้วิธีการแก้ปัญหาด้านล่าง แต่สำหรับฉันแล้วนี่ดูเหมือนจะเป็นการร้องขอคุณสมบัติที่สมเหตุสมผลสำหรับ Emacs เอง