เวอร์ชันที่คอมไพล์ด้วยไฟล์ elisp


12

ฉันมีทั้ง.elไฟล์รวบรวมและเวอร์ชันไบต์ ( .elc) ของ elisp ฉันลบ.elไฟล์โดยไม่ตั้งใจ ฉันสามารถดึง.elไฟล์จาก.elcเวอร์ชันได้หรือไม่ เป็น.elcไฟล์ที่ไม่มี.elไฟล์ทำงานหรือไม่?

คำตอบ:


12

ฉันมีทั้ง. el และรุ่นคอมไพล์ไบต์ (.elc) ของไฟล์ elisp ฉันจะลบไฟล์. el โดยบังเอิญ ฉันสามารถรับไฟล์. el จากเวอร์ชัน. elc ได้หรือไม่

ในทางปฏิบัติไม่

ในทางทฤษฎีคุณสามารถใช้ไฟล์ elc เพื่อสร้างไฟล์ el ที่มีคำจำกัดความที่มนุษย์สามารถอ่านได้ อย่างไรก็ตามสิ่งนี้อาจไม่เหมือนกับไฟล์ต้นฉบับที่คุณลบเนื่องจากการเพิ่มประสิทธิภาพของแมโครและคอมไพเลอร์และถึงแม้ว่าฉันจะไม่ทราบว่ามีไลบรารีใดที่ทำเช่นนั้น

เป็นไฟล์. elc ที่ไม่มีไฟล์. el หรือไม่

ใช่ Emacs ยินดีที่จะโหลด.elcไฟล์ด้วยตัวเองทั้งหมด ไม่.elจำเป็นต้องใช้ไฟล์ใด ๆ เลย

ในความเป็นจริงแม้ว่าคุณจะมีทั้งสองอย่างในไดเรคทอรีเดียวกัน Emacs ก็มักจะโหลด elc อยู่ดี


คุณไม่ต้องการ " ทั้งสองในไดเรกทอรีเดียวกัน " คุณไม่จำเป็นต้องใช้ทั้งคู่ * .elc พอเพียงอย่างน้อยถ้าเวอร์ชั่น Emacs ของคุณเข้ากันได้กับมัน (เช่นกับเวอร์ชั่น Emacs ที่รวบรวมจาก)
ดึง

@Name ประโยคที่สองเป็นข้อมูลเสริม คำตอบคือ "ใช่" Emacs จะโหลดไฟล์ 'elc' ได้โดยไม่ต้องใช้ไฟล์ '.el'
Malabarba

2
"ในความเป็นจริงแม้ว่าคุณจะมีทั้งสองอย่างในไดเร็กตอรี่เดียวกัน Emacs ก็จะโหลด elc อยู่ดี" .. ถ้าload-prefer-newerตั้งค่าเป็นtemacs 24.4+ ขึ้นไปโหลดใหม่. el / .elc
Kaushal Modi

3

ตรวจสอบ*.el~ไฟล์ - อาจมีการสำรองข้อมูล Emacs ของ*.elไฟล์ที่หายไปของคุณ(ซึ่งเครื่องมือบางอย่างจะซ่อนตัวคุณใน UI ของพวกเขาดังนั้นให้ใช้สิ่งที่ต้องการls -a)

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