phiên bản biên dịch byte của tập tin elisp


12

Tôi có cả hai .elvà phiên bản biên dịch byte ( .elc) của một tệp elisp. Vô tình tôi xóa .eltập tin. Tôi có thể lấy lại .eltập tin từ .elcphiên bản của nó không? Là một .elctập tin mà không có .elchức năng tập tin của nó ?

Câu trả lời:


12

Tôi có cả .el và phiên bản được biên dịch byte (.elc) của một tệp elisp. Vô tình tôi xóa tập tin .el. Tôi có thể truy xuất tệp .el từ phiên bản .elc của nó không?

Trong thực tế, không.

Về lý thuyết, bạn có thể sử dụng tệp elc để tạo tệp el với các định nghĩa có thể đọc được của con người. Tuy nhiên, điều này có thể trông không giống với tệp gốc mà bạn đã xóa, do tối ưu hóa macro và trình biên dịch, và thậm chí sau đó tôi không biết bất kỳ thư viện nào làm điều đó.

Là một tệp .elc không có tệp .el của nó có chức năng không?

Có, Emacs rất vui khi tự tải một .elctệp. Không có .eltập tin là cần thiết ở tất cả.

Trong thực tế, ngay cả khi bạn có cả hai trong cùng một thư mục, Emacs thường sẽ tải elc bằng mọi cách.


Bạn không cần " cả hai trong cùng một thư mục ". Bạn không cần cả hai. * .Elc đủ, ít nhất là nếu phiên bản Emacs của bạn tương thích với nó (ví dụ với phiên bản Emacs được biên dịch từ đó).
vẽ

@Name Câu thứ hai là thông tin bổ sung. Câu trả lời là "Có". Emacs sẽ tải các tệp 'elc' tốt mà không cần tệp '.el'.
Malabarba

2
"Trên thực tế, ngay cả khi bạn có cả hai trong cùng một thư mục, Emacs thường sẽ tải elc bằng mọi cách." .. Nếu load-prefer-newerđược đặt thành ttrong emacs 24.4+, mới hơn của .el / .elc sẽ được tải.
Kaushal Modi

3

Kiểm tra *.el~tệp - có thể có bản sao lưu Emacs của *.eltệp bị thiếu của bạn (một số công cụ sẽ ẩn bạn trong giao diện người dùng của họ, vì vậy hãy sử dụng một cái gì đó như ls -a).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.