ฉันจะเริ่มต้น Emacs ด้วยตัวเลือก debug init ได้อย่างไร


6

คำเตือนที่ฉันได้รับทันทีที่ฉันเปิด Emacs คือ:

คำเตือน (การกำหนดค่าเริ่มต้น): เกิดข้อผิดพลาดขณะโหลด `/Users/Kaileeena/.emacs ':

สิ้นสุดไฟล์ในระหว่างการวิเคราะห์คำ: /Users/Kaileeena/.emacs

เพื่อให้แน่ใจว่าการทำงานปกติคุณควรตรวจสอบและลบสาเหตุของข้อผิดพลาดในไฟล์เริ่มต้นของคุณ เริ่ม Emacs ด้วยตัวเลือก `--debug-init 'เพื่อดูข้อผิดพลาดย้อนหลังแบบสมบูรณ์

แต่ฉันจะทำอย่างไร

ฉันไม่เคยใช้ซอฟต์แวร์นี้มาก่อนและฉันไม่สามารถคิดได้ว่าจะพิมพ์ได้ที่ไหน


นั่นหมายความว่าโดยปกติแล้ว - คุณพลาดวงเล็บเหลี่ยม.emacsหรือบางแพ็คเกจที่คุณrequireพลาด พยายามจำสิ่งที่คุณเพิ่งทำเมื่อไม่นานมานี้
Adobe

คำตอบ:


11

คุณใช้ Mac OS ใช่ไหม สมมติว่าคุณติดตั้ง Emacs ไว้ในโฟลเดอร์ Applications ให้เปิดหน้าต่าง Terminal (อยู่ในโฟลเดอร์ย่อย Utilities ภายใน Applications) และพิมพ์:

/Applications/Emacs.app/Contents/MacOS/Emacs --debug-init

ขอบคุณสำหรับความช่วยเหลือของคุณ แต่ฉันได้รับผลลัพธ์เช่นเดียวกับเมื่อฉันลองผ่าน Emacs ทั้งหมดที่ฉันเห็นคือหน้าต่างว่างเปล่า ฉันสงสัยว่าควรมีบันทึกประเภทไหนที่จะบอกฉันได้อย่างชัดเจนว่าทำไมฉันถึงได้รับคำเตือนตั้งแต่แรก?
Kaileeena

หืม--debug-initควรจะแสดงให้คุณเห็นว่าปัญหาอยู่ที่ไหน ... คุณสามารถลองเพิ่ม-nw("ไม่มีหน้าต่าง") ลงในบรรทัดคำสั่งนั้นได้ มันจะทำให้ Emacs ทำงานภายในหน้าต่างเทอร์มินัลซึ่งอาจทำให้สับสนน้อยลง
legoscia

2

นอกจากคำแนะนำในการใช้emacs --debug-initให้ทำดังนี้: แบ่งไฟล์ init ของคุณ ( ~/.emacs) ซ้ำจนกว่าคุณจะพบรหัสที่มีปัญหา (เช่นใช้M-x comment-regionเพื่อใส่เครื่องหมายครึ่งรหัสจากนั้น 1/4 จากนั้น 1/8 จากนั้น 1/8 จากนั้น 1/16, ... (ด้วยคำนำหน้า arg C-uคำสั่งเดียวกัน uncomments ภูมิภาค)

นี่คือการค้นหาแบบไบนารีดังนั้นจึงรวดเร็วมาก

แต่ตามที่ @Adobe แนะนำอาจเป็นไปได้ว่าคุณไม่มีการปิด parens หนึ่งรายการขึ้นไป อีกวิธีคือใช้C-M-fซ้ำ ๆ (เพียงกดคอร์ดค้างไว้) จนกว่าคุณจะพบข้อผิดพลาด นั่นจะเป็นจุดที่คุณไม่ได้ทำเรื่องย่อ (เริ่มที่ระดับสูงสุดของไฟล์และย่อหน้าซ้ายสุดของ sexp แรกของคุณ)


0

เมื่อคุณเริ่ม emacs emacs --debug-initจากสถานีเพียงแค่เพิ่มมันหลังจากคำสั่งเพื่อให้คำสั่งที่สมบูรณ์ของคุณมีลักษณะเหมือน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.