Doom Emacs คือการแจกจ่ายที่มีจุดมุ่งหมายเพื่อสร้างวิธีที่ง่ายและเข้าถึงได้ในการเริ่มต้นใช้งาน Emacs เนื่องจากเอกสารหลายร้อยหน้ามีรายละเอียดการทำงานต่างๆ Emacs อาจทำให้คุณรู้สึกไม่สบายใจ
สิ่งนี้มีประโยชน์สำหรับผู้ใช้ที่คุ้นเคยและหนอนหนังสือ อย่างไรก็ตาม แนวทางปฏิบัตินี้ไม่ได้ช่วยผู้สนใจเพียงแค่ทดลองใช้
Doom Emacs ตั้งเป้าที่จะลดไขมันและกลั่นกรองประสบการณ์ Emacs ด้วยจุดแข็งหลัก อนุญาตให้ผู้ใช้ใช้ประโยชน์จากการขยายได้โดยไม่จำเป็นต้องตรวจสอบคู่มืออย่างต่อเนื่องเพื่อทำสิ่งพื้นฐาน ส่งผลให้ Emac เวอร์ชันหนึ่งสามารถเปลี่ยนแปลงและแก้ไขได้ง่ายเพื่อให้เหมาะกับความต้องการของผู้ใช้
การติดตั้ง Doom Emacs นั้นค่อนข้างง่าย สิ่งที่เราต้องการล่วงหน้าคือสามสิ่ง:
- การติดตั้ง vanilla Emacs 27.1
- ripgrep
- Git
การติดตั้ง Emac และ ripgrep
Emacs และ ripgrep มีอยู่ในเกือบทุกที่เก็บของลีนุกซ์รุ่นหลักๆ ตัวอย่างเช่น ในการติดตั้ง Emacs และ ripgrep ใน Debian และ Ubuntu 21.10 คุณสามารถใช้ apt
:
sudo apt install emacs-gtk ripgrep
สำหรับ Arch Linux ให้ใช้ pacman
:
sudo pacman -Syu emacs ripgrep
ใน Fedora ให้ใช้ dnf
:
sudo dnf install emacs ripgrep
สำหรับ Void Linux ให้ใช้ xbps
:
sudo xbps-install emacs-gtk2 ripgrep
ในกรณีของฉัน ฉันกำลังติดตั้ง Emacs และ ripgrep ในระบบ Void Linux
สิ่งสำคัญคือต้องสังเกตว่า Emacs มีหลากหลายรสชาติ โดยส่วนใหญ่ ตัวจัดการแพคเกจจะเลือกเวอร์ชันที่เหมาะสมของ Emacs เพื่อติดตั้ง แต่มีบางครั้งที่กระบวนการนี้ล้มเหลว
ดังนั้นเราควรทราบรุ่นที่เราติดตั้ง เรากำลังมองหาการติดตั้ง Emacs เวอร์ชันหนึ่งที่สามารถทำงานในสภาพแวดล้อมแบบกราฟิก โดยปล่อยให้:
- X11
- GTK-2
- GTK-3
หลังจากนั้น เราสามารถดำเนินการติดตั้ง Git ต่อได้
การติดตั้ง Git
ในการติดตั้ง Doom Emacs เราจำเป็นต้องรับที่เก็บรหัสระยะไกลจากอินเทอร์เน็ต ในการดำเนินการนี้ ให้ติดตั้ง Git ช่วยให้เราคัดลอกโค้ดได้ทันที และที่สำคัญกว่านั้นคืออัปเดตระหว่างเวอร์ชันหลัก
เช่นเดียวกับ Emacs Git เป็นเรื่องปกติสำหรับลีนุกซ์ทุกรุ่น หากต้องการติดตั้งใน Debian และ Ubuntu ให้ใช้ apt
:
sudo apt install git
สำหรับ Arch Linux ให้ใช้ pacman
:
sudo pacman -Syu git
สำหรับ Fedora ให้ใช้ dnf
:
sudo dnf install git
ใน Void Linux ให้ใช้ xbps
:
sudo xbps-install git
ในกรณีของฉัน ฉันกำลังติดตั้ง Git ใน Void Linux
การติดตั้ง Doom Emacs
ในการติดตั้ง Doom Emacs เราจำเป็นต้องเรียกใช้คำสั่งเพียงไม่กี่คำสั่งเท่านั้น:
git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
นี่คือคำสั่ง Git ที่ดึงที่เก็บ Doom Emacs สำหรับเครื่องของเรา
- The
clone
ฟังก์ชันหมายความว่าเรากำลังคัดลอกที่เก็บล่าสุดเมื่อเรารันคำสั่ง - ความ
depth
จากนั้นตัวเลือกจะตัดทอนประวัติของที่เก็บเป็นสองเวอร์ชันล่าสุดของที่เก็บ
ในคำสั่งนี้ เรายังบันทึกที่เก็บในไดเร็กทอรีการกำหนดค่าเริ่มต้นของ Emacs ด้วยเหตุนี้ เราจึงต้องตรวจสอบให้แน่ใจว่าไม่มีไดเร็กทอรีโดยพิมพ์คำสั่งนี้:
rm -rf /home/$USER/.emacs.d/
หลังจากนั้นเราต้องเริ่มการติดตั้ง เราทำได้โดยพิมพ์คำสั่งต่อไปนี้:
/home/$USER/.emacs.d/bin/doom install
คำสั่งนี้จะติดตั้ง Doom Emacs ที่ด้านบนของการติดตั้ง Emacs
การกำหนดค่าหลังการติดตั้ง
หลังจากนั้น มีอีกสองสามสิ่งที่เราต้องทำเพื่อให้แน่ใจว่าการติดตั้งของเราจะไม่มีปัญหาใดๆ
ขั้นแรก ตั้งค่าตัวแปร PATH เพื่อตรวจหาไดเร็กทอรี “/home/$USER/.emacs.d/doom/bin/” ทำได้โดยเพิ่มบรรทัดต่อไปนี้ในไฟล์ “/home/$USER/.profile”:
export PATH=$PATH:$HOME/.emacs.d/doom/bin
การดำเนินการนี้จะอัปเดตตัวแปร PATH เพื่อรวมไดเร็กทอรี bin สำหรับ Doom หลังจากนั้น เราเพียงแค่เข้าสู่ระบบอีกครั้งเพื่อโหลดตัวแปรสภาพแวดล้อมใหม่
ในการทดสอบว่าตัวแปร PATH ตรวจพบไดเร็กทอรี “/home/$USER/.emacs.d/doom/bin” หรือไม่ เราจำเป็นต้องเรียกใช้คำสั่ง:
doom doctor
เพื่อให้แน่ใจว่าการติดตั้งทำได้ถูกต้อง หากมีปัญหาใด ๆ ในระหว่างกระบวนการ ฟังก์ชั่น Doom Doctor จะบอกเรา
ยูทิลิตี้ Doom:คู่หูของคุณใน Doom Emacs
Doom Doctor เป็นเพียงหนึ่งในฟังก์ชันที่มีอยู่ในยูทิลิตี้ Doom เป็นโปรแกรมหลักที่ช่วยให้เราสามารถแก้ไข อัปเดต และซ่อมแซม Doom Emacs
ดังนั้น ฟังก์ชันทั่วไปที่ควรทราบคือ:
doom doctor
จะตรวจสอบความไม่สอดคล้องกับการติดตั้งครั้งแรกของเรา นอกจากนี้ยังเป็นประโยชน์อย่างยิ่งเมื่อเราพบปัญหาขณะใช้ Doom Emacs มันจะตรวจสอบไดเร็กทอรีและการกำหนดค่าที่เกี่ยวข้องกับ Doom ทั้งหมดเพื่อหาข้อผิดพลาดที่อาจเกิดขึ้นdoom upgrade
ช่วยให้เราสามารถอัพเกรดการติดตั้งของเราได้อย่างไม่ลำบาก มันจะตรวจสอบการอัปเดตใด ๆ ในที่เก็บและซิงโครไนซ์สำเนาของเรากับอันล่าสุดและจัดการการโยกย้ายระหว่างเวอร์ชันต่างๆ ในการทำเช่นนั้น การอัปเกรด doom จะล้างการกำหนดค่า Doom ปัจจุบันของเราและขั้นตอนการอัปเกรดdoom purge
เกี่ยวข้องกับแพ็คเกจและโมดูลเก่าที่ติดตั้งในการติดตั้งของเรา ดังนั้น หากเราลบแพ็คเกจจำนวนมาก มันจะลบการพึ่งพาที่ไม่ได้ใช้ทั้งหมด นอกจากนี้ยังมีความสามารถในการบีบอัดที่เก็บที่มีอยู่โดยเรียกใช้ด้วยแฟล็ก -gdoom sync
ช่วยให้เราแก้ไขการกำหนดค่าที่กำหนดเองได้ เมื่อเราติดตั้ง Doom Emacs มันสร้างไฟล์แยกต่างหากสำหรับการกำหนดค่าส่วนบุคคลภายใต้ “/home/$USER/.doom.d/” การเรียกใช้ฟังก์ชันซิงค์จะเปิดใช้งานการกำหนดค่าที่ทำกับ .emacs.d ในไดเร็กทอรี .doom.d
การกำหนดค่า Doom Emacs
ไดเร็กทอรี .doom.d เป็นที่เก็บการกำหนดค่า Doom ทั้งหมด ประกอบด้วยสามไฟล์:
- ไฟล์ package.el จะบอกว่าจะติดตั้งแพ็คเกจใดและจากที่ใด
- ไฟล์ config.el คือที่ที่เรารวมการกำหนดค่าแบบกำหนดเองของเราไว้ด้วย ซึ่งรวมถึงการกำหนดค่าสำหรับทั้ง Doom และแพ็คเกจเพิ่มเติมที่ติดตั้งไว้
- ไฟล์ init.el คือเนื้อและมันฝรั่งของ Doom Emacs นี่คือที่ที่สามารถเปิดหรือปิดคุณลักษณะทั้งหมดของการกระจายได้
โมดูล Doom
Doom Emacs ให้คุณเลือกโมดูลมากกว่า 150 โมดูล จากนั้น เราสามารถเปิดใช้งานโมดูลเหล่านั้นได้โดยเลือกโมดูลที่เราต้องการ ซึ่งช่วยให้เราปรับแต่ง Doom ให้เป็นสภาพแวดล้อมการประมวลผลของเราเองได้
การเพิ่มและลบโมดูลจาก Doom Emacs เป็นเพียงเรื่องของการปรับเปลี่ยน doom!
ฟังก์ชันในไฟล์ “.doom.d/init.el” ไวยากรณ์ทั่วไปมีลักษณะดังนี้:
(doom! :checkers (syntax) :editor (evil) :lang (org +journal))
ในการเปิดใช้งานโมดูล เราจำเป็นต้องติดป้ายกำกับหมวดหมู่ ในตัวอย่างนี้ หากต้องการเพิ่มโมดูลไวยากรณ์ เราต้องเพิ่มหมวดหมู่ตัวตรวจสอบก่อน
นอกจากนี้ โมดูลเหล่านี้ยังมีแฟล็กที่สามารถเปิดใช้งานสำหรับโมดูลเฉพาะ ซึ่งคล้ายกับแฟล็ก USE ของ Gentoo ที่ให้คุณปรับแต่งโปรแกรมโดยเปิดใช้งานเฉพาะคุณสมบัติที่คุณต้องการ
หากต้องการเพิ่มแฟล็กสำหรับโมดูล ให้เพิ่มเครื่องหมาย “+” ตามด้วยชื่อแฟล็ก ในตัวอย่างนี้ เราได้เพิ่มการตั้งค่าสถานะวารสารในองค์กรเพื่อเปิดใช้งานการสนับสนุนวารสาร
เมื่อเสร็จแล้วให้เรียกใช้ doom sync
เพื่อเริ่มต้น Doom Emacs อีกครั้งด้วยการตั้งค่า
วิธีการติดตั้งแพ็คเกจเพิ่มเติม
โดยค่าเริ่มต้น Doom Emacs มาพร้อมกับแพ็คเกจหลายชุดในการติดตั้ง อย่างไรก็ตาม เราสามารถติดตั้งซอฟต์แวร์เพิ่มเติมจากที่เก็บได้อย่างง่ายดาย เราสามารถทำได้โดยใช้ package!
ทำงานในไฟล์ “.doom.d/packages.el”
มีหลายวิธีในการติดตั้งแพ็คเกจใน Doom วิธีที่พบบ่อยที่สุดคือการจัดหาแพ็กเกจจาก ELPA และ MELPA ในการทำเช่นนั้น เราเพียงแค่เพิ่มโค้ด Lisp นี้ใน package.el:
(package! name-of-package)
สิ่งนี้จะบอก package!
ทำหน้าที่ตรวจสอบทุก repository ของ package ที่เราระบุไว้
อย่างไรก็ตาม หากแพ็คเกจของคุณไม่มีอยู่ในที่เก็บสำหรับ Emacs คุณยังสามารถติดตั้งได้โดยตรงจากที่เก็บ git:
(package! name-of-git-package :recipe (:host github :repo "username/package")
สิ่งนี้จะบอก package!
เพื่อดึงแพ็คเกจเฉพาะนั้นจาก github ภายใต้ที่เก็บ “ชื่อผู้ใช้/แพ็คเกจ”
นอกจากนี้เรายังสามารถระบุตำแหน่งในที่เก็บระยะไกลที่เราต้องการดึงแพ็คเกจ ตัวอย่างเช่น เราสามารถดึงแพ็คเกจจากที่ใดที่หนึ่งในที่เก็บ:
(package! another-git-package :recipe (:host github :repo "username/package" :files ("package.el" "path/of/*.el")))
สิ่งนี้มีประโยชน์เมื่อเราติดตั้งจากที่เก็บที่มีแพ็คเกจจำนวนมากที่จัดเรียงอยู่ในไดเรกทอรีย่อย เมื่อใช้สิ่งนี้ เราสามารถระบุสิ่งที่เราต้องการติดตั้งเป็นแพ็คเกจได้
เมื่อเสร็จแล้ว เราต้องเรียกใช้ doom sync
เพื่อเริ่มต้น Doom Emacs อีกครั้ง
ยินดีด้วย! ตอนนี้คุณมีการติดตั้ง Doom Emacs พื้นฐานแล้ว เช่นเดียวกับความเข้าใจพื้นฐานเกี่ยวกับวิธีการทำงานและวิธีกำหนดค่าและขยาย หากคุณกำลังมองหาแอปพลิเคชั่นเพิ่มประสิทธิภาพการทำงานใน Linux เรามีบทความสำหรับคุณ
คำถามที่พบบ่อย
1. ฉันเพิ่งติดตั้ง Doom Emacs และมันแสดงเฉพาะหน้าจอว่างเมื่อฉันเปิดมัน
อาจเป็นเพราะมีปัญหาในไดเร็กทอรี .doom.d ของคุณ และ Doom Emacs ไม่สามารถโหลดการตั้งค่าใดๆ ได้ วิธีหนึ่งในการแก้ปัญหานี้คือตรวจสอบว่ามีไดเร็กทอรี .doom.d หรือไม่ และมีไฟล์สามไฟล์ ได้แก่ init.el, packages.el และ config.el อยู่
สิ่งนี้สามารถเกิดขึ้นได้เนื่องจากไฟล์ init.el ที่สร้างขึ้นมีรูปแบบไม่ถูกต้องหรือไม่มีฟังก์ชันของ doom อยู่ภายใน ในการแก้ไขปัญหานี้ คุณต้องสร้างบล็อกฟังก์ชันของ doom ด้วยโมดูลที่คุณต้องการเรียกใช้ด้วย Doom Emacs
2. ฉันใช้ package.el เพื่อจัดการแพ็คเกจของฉัน ฉันจะยังใช้ใน Doom Emacs ได้ไหม
ไม่ Doom Emacs ใช้ตัวจัดการอื่นเพื่อดูแลแพ็คเกจ คุณจะต้องใช้ฟังก์ชันของแพ็คเกจที่ Doom Emacs จัดหาให้เพื่อติดตั้งซอฟต์แวร์เพิ่มเติม
3. ฉันได้ติดตั้งแพ็คเกจนี้ใน Doom Emacs และไม่ต้องการอีกต่อไป ฉันจะถอนการติดตั้งได้อย่างไร
การลบแพ็คเกจใน Doom Emacs นั้นค่อนข้างไม่สำคัญ คุณต้องเรียกใช้โค้ด Lisp ชิ้นนี้ใน .doom.d/packages.el:
(package! some-package :disable t)
หลังจากนั้น คุณต้องเรียกใช้ doom sync เพื่อรีโหลด Doom Emacs เมื่อคุณกลับเข้าสู่ระบบ แพ็คเกจนั้นจะถูกถอนการติดตั้ง