
เรื่องสั้นสั้นฉันกำลังถ่ายทอด Emacs สำหรับงานประจำวันของฉันดังนั้นฉันจึงต้องการการกำหนดค่าที่รวดเร็วและมั่นคงซึ่งเหมาะกับความต้องการของฉัน Minemacs มีการเปลี่ยนแปลงอย่างต่อเนื่องโปรดดูบันทึกการเปลี่ยนแปลงสำหรับข้อมูลเพิ่มเติม ดูรายการโมดูลและแพ็คเกจของ Minemacs
บันทึก
โปรดทราบว่าฉันไม่มีเจตนาหรือความพร้อมในการสร้างทางเลือกให้กับ Doom Emacs หรือ Spacemacs ในขณะที่ฉันพบความสุข (เช่น emacser อื่น ๆ ที่นั่น) ในการซ่อมแซมกับ Emacs, minemacs ยังคงเป็นเพียงเครื่องมือที่ฉันใช้ในการทำงานประจำวันของฉันและฉันชอบแบ่งปันกับ emacsers อื่น ๆ
Minemacs มาพร้อมกับแบตเตอรี่ นี่คือคุณสมบัติที่เป็นเอกลักษณ์บางส่วน:
เลื่อนการโหลดแพ็คเกจจนกว่าผู้ใช้จะต้องการ หรือสำหรับแพ็คเกจที่ต้องโหลดให้ลองทำเช่นนั้นหลังจากเริ่มต้น Emacs
แพ็คเกจถูกจัดกลุ่มเป็นโมดูลโดยมีกาวเล็กน้อยเพื่อให้ทำงานร่วมกัน
Minemacs รวมถึงโหมดสำคัญและแพ็คเกจจำนวนมากเพื่อทำงานกับภาษาการเขียนโปรแกรม อย่างไรก็ตามแพ็คเกจเหล่านี้ส่วนใหญ่ไม่ได้โหลดเมื่อเริ่มต้น Minemacs ใช้ระบบตามความต้องการเพื่อโหลดแพ็คเกจเฉพาะเมื่อผู้ใช้เปิดไฟล์ที่รองรับหรือเมื่อเขาเปิดบัฟเฟอร์ด้วยโหมดที่สามารถขยายได้โดยหนึ่งในโมดูลตามความต้องการ พฤติกรรมของคุณลักษณะนี้ปรับแต่งผ่าน minemacs-on-demand-enable-auto-mode , minemacs-on-demand-enable-magic-mode , minemacs-on-demand-enable-interpreter-mode และ minemacs-on-demand-enable-companion-packages
เปิดเปลือกและวิ่ง:
git clone --recursive https://github.com/abougouffa/minemacs.git ~ /.emacs.d && emacs โดยการดำเนินการคำสั่งนี้ที่เก็บจะถูกโคลนและ EMACS จะเปิดตัว ในระหว่างการรันครั้งแรก EMACS จะติดตั้งแพ็คเกจที่จำเป็นโดยอัตโนมัติ คุณอาจต้องเรียกใช้ Mx minemacs-run-build-functions เมื่อ Emacs โหลดขึ้นเพื่อติดตั้งบางสิ่งพิเศษ (สร้างไลบรารีบางตัวติดตั้งแบบอักษร Nerd ฯลฯ )
สำคัญ
โปรดทราบว่าฉันใช้ Emacs Fresh 30.0.92 (เวอร์ชันที่แนะนำ) ที่สร้างขึ้นจากสาขา emacs-30 ส่วนใหญ่บนสองเครื่องหนึ่งตาม Manjaro Linux และอีกสาขาหนึ่งใน Debian 12 อย่างไรก็ตามฉันได้ตั้งค่าการกระทำพื้นฐาน GitHub CI โดยอัตโนมัติ การกระทำเหล่านี้ทำให้มั่นใจได้ว่า minemacs นั้น "วิ่งได้" ในระบบเหล่านี้ เมื่อเปิดใช้งานโมดูลทั้งหมด อย่างไรก็ตามควรทำการทดสอบเพิ่มเติมเพื่อตรวจสอบการกำหนดค่าโดยรวมในระบบอื่น ๆ นอกเหนือจาก Linux
ในการปรับแต่ง minemacs ส่วนบุคคลคุณสามารถเพิ่มชุดไฟล์เฉพาะภายในไดเรกทอรีการกำหนดค่าผู้ใช้เริ่มต้นซึ่งอยู่ในค่าเริ่มต้นที่ ~/.minemacs.d/ หรือ .emacs.d/user-config/ (ครั้งแรกที่จะพบ) อย่างไรก็ตามหากคุณต้องการใช้ไดเรกทอรีที่แตกต่างกันคุณมีความยืดหยุ่นในการทำเช่นนั้นโดยการตั้งค่าตัวแปรสภาพแวดล้อม MINEMACSDIR
มีสองไฟล์หลักที่สามารถเพิ่มในไดเรกทอรี ~/.minemacs.d :
~/.minemacs.d/modules.el มีรายการโมดูลที่เปิดใช้งานและ/หรือรายการแพ็คเกจที่ปิดใช้งาน ( minemacs-modules และ minemacs-disabled-packages สามารถตั้งค่าในไฟล์นี้) ดังนั้นหากคุณต้องการเปิดใช้งานโมดูล ( เช่น me-prog ) แต่คุณต้องยกเว้นแพ็คเกจเฉพาะ ( เช่น ts-movement ) คุณสามารถเพิ่มหลังลงใน minemacs-disabled-packages~/.minemacs.d/config.el มีการกำหนดค่าผู้ใช้และการปรับแต่งคุณสามารถคิดว่ามันเป็น init.el ของคุณซึ่งได้รับการโหลดในตอนท้ายของ minemacs ' init.el ! พื้นที่เก็บข้อมูลนี้มีไฟล์โครงกระดูกสำหรับ modules.el และ config.el (ภายใต้ skel/ ) เราขอแนะนำให้ติดตามโครงสร้างเดียวกันกับในไฟล์โครงกระดูกโดยเฉพาะอย่างยิ่งการใช้งาน with-eval-after-load และ use-package แทนการใช้งาน require โดยตรง ( require โหลดแพ็คเกจทันทีซึ่งจะเพิ่มเวลาเริ่มต้นของ EMACs)
ในเวิร์กโฟลว์ของฉันฉันใช้ไฟล์การกำหนดค่าเดียวกันส่วนใหญ่ในเครื่องทั้งหมดของฉัน (ซึ่งตามประเพณีจะถูกแชร์ในที่เก็บ dotfiles ของฉัน) อย่างไรก็ตามฉันมีการกำหนดค่าเฉพาะเครื่องจักร (ท้องถิ่น) ที่มีการกำหนดค่าส่วนตัวและเฉพาะเครื่อง ตัวอย่างเช่นฉันใช้พวกเขาเพื่อเขียนทับที่อยู่อีเมลบนเวิร์กสเตชันของฉันเพื่อตั้งค่าบัญชีอีเมลของฉันเพื่อตั้งค่า Forge และการรวม JIRA ในเวิร์กสเตชันของฉันและอื่น ๆ
เพื่อจุดประสงค์นี้ Minemacs จะตรวจสอบไฟล์ใน ~/.minemacs.d/local/{early-config,init-tweaks,modules,config}.el และโหลดพวกเขาหลังจาก ~/.minemacs.d/{early-config,init-tweaks,modules,config}.el
Minemacs ยังมีไฟล์การปรับแต่งขั้นสูงบางไฟล์ไฟล์เหล่านี้สามารถใช้ในการปรับแต่งพฤติกรรมของ Minemacs เพิ่มรหัสเริ่มต้นก่อนกำหนด minemacs ทำงานได้ในรุ่น Emacs รุ่นเก่า ฯลฯ
~/.minemacs.d/early-config.el ถูกโหลดในตอนท้ายของ Minemacs ' early-init.el คุณสามารถใช้มันเพื่อตั้งค่าบางอย่างในช่วงต้นเช่นการปรับแต่ง UI เขียนทับตัวแปรที่กำหนดโดย minemacs ใน ~/.emacs.d/early-init.el และอื่น ๆ~/.minemacs.d/init-tweaks.el ถูกโหลดในระยะแรกของไฟล์ init.el คุณสามารถใช้มันเพื่อทำสิ่งที่มีประโยชน์ก่อนที่ Minemacs จะเริ่มปรับแต่งแพ็คเกจและโหลดโมดูล ดูความคิดเห็นใน init.el สำหรับข้อมูลเพิ่มเติมคุณสามารถปรับแต่งพฤติกรรมของ Minemacs ผ่านตัวแปรสภาพแวดล้อมบางอย่าง
MINEMACS_DIR หรือ MINEMACSDIR : เส้นทางสำหรับไดเรกทอรีการกำหนดค่าผู้ใช้ minemacs หากไม่ได้ตั้งค่า ~/.minemacs.d/ ใช้MINEMACS_MSG_LEVEL : เปลี่ยนระดับบันทึกข้อความจาก 1 (ข้อผิดพลาดเท่านั้น) เป็น 4 (ข้อความทั้งหมด)MINEMACS_VERBOSE : เป็น verbose มากขึ้น (มีประโยชน์สำหรับการดีบัก)MINEMACS_DEBUG : เปิดใช้งานการดีบักเมื่อเริ่มต้น (และเป็น verbose)MINEMACS_ALPHA : ตั้งค่าเฟรม background-alpha เป็นเปอร์เซ็นต์ (ค่าจาก 0 ถึง 100)MINEMACS_NOT_LAZY : โหลดแพ็คเกจขี้เกียจทันทีหลังจากโหลด emacsMINEMACS_ALWAYS_DEMAND : โหลดแพ็คเกจทั้งหมดทันที (ใช้งานได้โดยการตั้งค่า use-package-always-demand เป็น t และ use-package use-package-always-defer :demand เป็น nilMINEMACS_IGNORE_USER_CONFIG : ค่าที่คั่นด้วยอวกาศใช้เพื่อปิดใช้งานการโหลด ~/.minemacs.d/<file>.el ไฟล์การกำหนดค่าผู้ใช้ ค่าที่ได้รับการยอมรับสำหรับ <file> ได้แก่ : early-config , init-tweaks , modules , config กำหนดค่า, local/early-config , local/init-tweaks , local/modules และ local/config ใช้ all เพื่อปิดใช้งานไฟล์การกำหนดค่าผู้ใช้ทั้งหมดMINEMACS_LOAD_ALL_MODULES : โหลดโมดูลทั้งหมด (โดยไม่ต้องใช้ ~/.minemacs.d/modules.el )MINEMACS_BENCHMARK : เรียกใช้เบนช์มาร์กในการเริ่มต้นของ EMACs (ใช้ benchmark-init.el ) และแสดงผลลัพธ์หลังจากเริ่มต้น (รวมถึงแพ็คเกจขี้เกียจ)MINEMACS_NO_PROXIES : ตั้งค่าหากคุณมีการตั้งค่า minemacs-proxies ใน early-config.el ของคุณ แต่คุณต้องการเริ่มต้น Emacs โดยไม่ต้องผ่านพร็อกซีเหล่านี้ (มีประโยชน์หากคุณใช้พร็อกซีสำหรับสถานที่ทำงาน แต่คุณต้องการให้ Emacs เริ่มต้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรการปรับแต่งฟังก์ชั่นและคำสั่งที่กำหนดโดย Minemacs คุณสามารถอ้างอิงเอกสารที่สร้างขึ้นจากซอร์สโค้ด
หากคุณประสบปัญหากับ Minemacs คุณสามารถดูคำถามที่พบบ่อยปรึกษาการอภิปรายตรวจสอบปัญหาที่เปิดหรือเปิดใหม่