อีกทางเลือกหนึ่งคือการใช้จอห์น Wiegley ของใช้แพคเกจ นี่เป็นวิธีการเขียนโปรแกรมเพื่อกำหนดค่าแพคเกจที่เล่นได้ดีกับกระบวนการเริ่มต้นแพ็คเกจ emacs 24+ นี่คือตัวอย่างการใช้งานจาก readme:
(use-package color-moccur
:commands (isearch-moccur isearch-all)
:bind (("M-s O" . moccur)
:map isearch-mode-map
("M-o" . isearch-moccur)
("M-O" . isearch-moccur-all))
:custom (isearch-lazy-highlight t)
:config (use-package moccur-edit))
ประเด็นก็คือแพคเกจการใช้งานเป็นมาโครและไม่ได้ประเมินอาร์กิวเมนต์ทันที :init
และ:config
พารามิเตอร์ที่ได้รับการประเมินในแต่ละขั้นตอนของกระบวนการเริ่มต้นที่ทำให้มันเป็นไปได้ที่จะมีการกำหนดค่าของแต่ละแพคเกจในสถานที่หนึ่ง แต่มีแต่ละส่วนดำเนินการในขั้นตอนที่เหมาะสมของการเริ่มต้น
หากไม่มีสิ่งที่ต้องการuse-package
แพคเกจบางอย่างต้องมีส่วนหนึ่งของรหัสการเริ่มต้นของพวกเขาไปก่อน(package-initialize)
และส่วนอื่นที่จะไปหลังจาก หากคุณมีแพ็กเกจมากมายเช่นนั้นการกำหนดค่าเริ่มต้นของพวกเขาจะต้องมีการแทรก
ข้อดีอีกอย่างของuse-package
มันคือมันสามารถติดตั้งแพ็กเกจที่ขาดหายไปโดยอัตโนมัติจากการใช้ package.el ถ้าคุณนำคุณ. emacs ไปยังเครื่องใหม่หรือถ้าคุณแชร์การกำหนดค่าของคุณกับผู้ใช้รายอื่นและการเริ่มต้นทั้งหมด
นอกจากนี้ยังมีข้อโต้แย้งคำหลักเพิ่มเติมที่ช่วยให้การควบคุมกระบวนการเริ่มต้น
ทั้งหมดที่กล่าวมาข้อได้เปรียบที่สำคัญอย่างหนึ่งของการปรับแต่งคือมันจะแสดงให้คุณเห็นว่าจะต้องมีการกำหนดค่าใดในแพ็คเกจที่กำหนด นั่นเป็นเหตุผลหนึ่งที่ฉันยังคงใช้มันสำหรับแพ็คเกจของฉัน