ฉันเพิ่งซื้อ Mac เครื่องแรกของฉันในช่วงทศวรรษที่ผ่านมาและกำลังอยู่ระหว่างการกำหนดค่า ฉันเป็นผู้ใช้ Emacs และได้กำหนดไว้แล้วว่าฉันต้องการเพียงแค่ Emacs ปกติไม่ใช่ Aquamacs เพื่อที่ฉันจะสามารถใช้การกำหนดค่าที่มีอยู่จากระบบปฏิบัติการอื่นได้ ฉันได้พยายามต่อไปนี้เป็นจำนวนมากวิธีการชำระเงินที่ฉันได้พบออนไลน์ (ชอบคนนี้ , คนนี้และคนนี้จากเว็บไซต์จากที่ผมดาวน์โหลด Emacs ) และได้พยายามรวมชิ้นส่วนหลายวิธีใด ๆ แต่ไม่เคยมี สิ่งต่าง ๆ เข้าสู่สถานะแม้ใกล้ถึงสิ่งที่ฉันเคย / หวังว่า:
- Emacs ภูตเริ่มต้นทำงานอย่างใดอย่างหนึ่งที่เริ่มต้นหรือเร็วที่สุดเท่าที่ฉันต้องการมัน ; อย่างใดอย่างหนึ่งก็ดี เฟรม Emacs ใหม่ใด ๆ ได้รับการสนับสนุนโดยเซิร์ฟเวอร์เดียวกัน
- เมื่อฉันเปิดไฟล์ข้อความจาก Finder ไฟล์จะเปิดขึ้นใน Emacs ในกรอบกราฟิกที่มีอยู่ถ้าเป็นไปได้
- ถ้าฉันเรียกใช้ Emacs.app ระบบจะใช้ emacs daemon ที่ทำงานในพื้นหลังแทนการเริ่มต้นอินสแตนซ์ใหม่และเปิดหน้าต่างใหม่ ( หมวกปลาย )
- เมื่อฉันเรียกใช้ Emacs จากเครื่องเทอร์มินัลเครื่องจะทำงานโดยไม่รอให้ฉันทำงานกับ Emacs (เว้นแต่ฉันจะใช้ '-nw')
- AFAIK ที่ไม่มีจุดใดในระหว่างการดำเนินการที่อธิบายไว้ข้างต้น Emacs ควรจะอยู่ในสถานะ ("โหมดแก้ไขเซิร์ฟเวอร์?") ซึ่งมันกำลังรอให้ฉันพิมพ์
C-x #
แม้ว่าฉันจะไม่เข้าใจอย่างถ่องแท้ - (ฉันคิดว่านี่เป็นโบนัส) มีบางวิธีที่ฉันจะเรียก Emacs จากเทอร์มินัลเพื่อที่ Emacs จะนำกรอบที่มีอยู่มาใช้ใหม่ถ้าเป็นไปได้
ฉันจะกำหนดค่า Emacs ให้ทำงานเช่นนี้ได้อย่างไร
ฉันสับสนโดยเฉพาะอย่างยิ่งโดยการเปิด Finder ให้เปิดสิ่งต่าง ๆ ใน Emacs แบบที่ฉันต้องการ (# 2) เนื่องจากคำแนะนำที่ฉันพบมักสร้างนามแฝงจำนวนหนึ่ง, Applescripts, สคริปต์ทุบตี ฯลฯ และฉันไม่แน่ใจ ซึ่งฉันต้องการบอก Finder ให้ใช้เพื่อเปิดไฟล์ข้อความ
ขอบคุณ!
A. @lawlist ถามว่า "เฟรมใหม่จะถูกเปิดตามค่าเริ่มต้นเมื่อคุณเปิดไฟล์ใหม่จากเทอร์มินัลแม้ว่าจะมีเฟรมอยู่หรือไม่" คำตอบคือถ้าฉันเริ่มต้นเซิร์ฟเวอร์เมื่อเริ่มต้นตามที่อธิบายไว้ที่นี่ให้เปิดเฟรมจากนั้นเปิดไฟล์โดยพิมพ์/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n <whatever>
ฉันจะสามารถเปิดไฟล์ในเฟรมที่มีอยู่ได้ หากไม่มีเฟรมเปิดอยู่ฉันต้องใช้ "-nc" หรือเมื่อฉันพยายามเปิดไฟล์ไม่มีอะไรเกิดขึ้น
B. @lawlist ถามว่า "คุณต้องการให้ daemon ทำงานในการเข้าสู่ระบบหรือว่าจะเพียงพอที่จะโหลด Emacs ด้วยตนเองหลังจากเข้าสู่ระบบหรือไม่" การรันด้วยตัวเองจะเป็นเรื่องปกติ
M-x server-start
จะเริ่มต้นเซิร์ฟเวอร์ด้วยตนเองเพื่อให้emacsclient
สามารถสื่อสารกับมันได้ ฉันได้วางไว้(server-start)
ในinit.el
ไฟล์แทนที่จะใช้ daemon เมื่อเข้าสู่ระบบ - อย่างไรก็ตามหลายคนชอบตัวเลือกการเข้าสู่ระบบ daemon และแน่นอนที่ไฟล์จะเป็นสถานที่ที่เหมาะสำหรับ.emacs
(server-start)
ns-find-file
- ซึ่งเปิดใช้งานโดยอัตโนมัติเมื่อไฟล์เชื่อมโยงกับ Emacs.app ฟังก์ชั่นไฟล์สกัดกั้นของฉันในลิงก์ด้านบนยังแก้ไขns-find-file
หากนั่นเป็นสิ่งที่คุณสนใจ --with-ns
แน่นอนคุณต้องสร้าง Emacs