(โปรดทราบว่าชื่อตรงข้ามคำถามนี้ไม่เหมือนกับวิธีเริ่มต้นในโหมด daemon และระงับการโต้ตอบโต้ตอบ?เนื่องจากคำถามดังกล่าวถูก "ตอบ" โดยผู้ส่งกำจัดสิ่งที่ทำให้พรอมต์ปรากฏขึ้นโดยเฉพาะ)
ฉันต้องการทราบว่ามีวิธีทั่วไปในการหลีกเลี่ยงการemacs --daemon
แขวนตลอดไปรอคำตอบสำหรับการแจ้งให้แสดงใน minibuffer ที่ยังไม่มี
เป็นไปไม่ได้ที่จะเชื่อมต่อกับ emacsclient เพื่อตอบคำถามเหล่านี้เนื่องจากเซิร์ฟเวอร์ไม่เริ่มทำงานจนกว่า Emacs จะเสร็จสิ้นการเริ่มต้นตามลำดับ (ซึ่งหมายความว่าหากคุณตั้งค่า ALTERNATE_EDITOR เป็นสตริงว่างซึ่งทำให้emacsclient
ไม่สามารถหาเซิร์ฟเวอร์เริ่มต้นภูตใหม่คุณสามารถจบลงด้วย Emacs daemons หลายตัวที่ติดอยู่และรอ) ฉันต้องkillall emacs
แก้ไขปัญหา ก่อนดำเนินการต่อ
ฉันสามารถเล่น whack-a-mole กับแต่ละสิ่งที่ก่อให้เกิดพรอมต์เมื่อเริ่มต้นเมื่อฉันระบุมัน (โดยการเริ่มต้น Emacs ในโหมดที่ไม่ใช่ daemon และเห็นสิ่งที่มันขอ) แต่มันไม่ใช่วิธีแก้ปัญหาเพราะมันไม่สามารถหยุด daemon ถัดไปได้ จากการหยุดทำงานเมื่อเริ่มต้นด้วยเหตุผลใหม่
เพื่อยกตัวอย่าง: เหตุผลทั่วไปที่มันจะหยุดทำงานหลังจากรีบูตระบบหรือ Emacs หยุดทำงานเมื่อ Emacs ที่ทำการบู๊ตครั้งแรกต้องการทราบว่าการขโมยล็อคไฟล์จาก Emacs ที่หมดอายุแล้วนั้นเป็นอย่างไร ฉันสามารถแก้ไขได้โดยสร้างคำแนะนำเพื่อให้พร้อมท์นั้นตอบ "ใช่" โดยไม่มีการโต้ตอบ แต่แล้วหนึ่งในไฟล์ที่ถูกเปิดในการบันทึกเซสชั่นก่อนหน้าคือไฟล์ TRAMP ที่ต้องใช้รหัสผ่าน sudo หรือ SSH ดังนั้น daemon จึงติดรอพรอมต์รหัสผ่าน ดังนั้นฉันจึงแก้ไขด้วยการแก้ไขไฟล์เซสชั่น (ด้วยvi
หรือemacs -q
!) เพื่อลบไฟล์ที่ละเมิด - แต่นั่นไม่ได้เกิดขึ้นในครั้งต่อไป
ดังนั้นฉันสามารถหยุดการโหลดเซสชันของฉันโดยอัตโนมัติเมื่อเริ่มต้นและเปลี่ยนเป็นคำสั่งฉันต้องดำเนินการด้วยตนเองจาก emacsclient แรกของฉัน แต่ถ้ามันไม่ได้โหลดเซสชั่นของฉันในพื้นหลังดังนั้นจึงพร้อมตามเวลาที่ฉันพร้อมที่จะใช้ daemon ทั้งหมดจะหายไป!
ดังนั้นสิ่งที่ฉันต้องการคือ:
- (ดีที่สุด) บางวิธีในการเลื่อนมินิบัสเกอร์แจ้งเตือนจนกว่าฉันจะเปิด emacsclient ในขณะที่ยังคงการเตรียมใช้งานส่วนที่เหลือให้เสร็จสิ้น
- (ตกลง) บางวิธีที่จะทำให้ minibuffer ทั้งหมดแจ้งให้ฉันไม่ได้แนะนำอย่างอื่นตามที่อธิบายไว้ข้างต้นเพียงแค่ส่งคืน
no
เว้นแต่ว่า emacsclient กำลังทำงานอยู่ ฉันสามารถใช้ชีวิตกับบัฟเฟอร์ TRAMP ของฉันเพื่อแก้ไขข้อผิดพลาดตราบใดที่ใช้งานได้เป็นส่วนใหญ่
มีวิธีใดในการบรรลุเป้าหมายทั้งสองนี้หรือไม่?
(read-desktop)
จากนั้นก่อนที่จะเรียกใช้emacs --daemon
ให้สร้างไฟล์ล็อคปลอมโดยใส่จำนวนเต็มลงใน. emacs.desktop.lock (ที่จะวางไฟล์นั้น แต่อาจเป็น homedir ของคุณหรือ~ / .emacs.d / .