Tự động xác định các biến lỗi thời trong tệp init


8

Khi một phiên bản mới của Emacs được phát hành, thường thì một số biến / lệnh / hàm trở nên lỗi thời. Chúng thường được đánh dấu như vậy trong tài liệu tương ứng:

turn-on-eldoc-modelà một bí danh cho eldoc-modetrong eldoc.el. [...]

Chức năng này đã lỗi thời kể từ 24.4 ; sử dụng eldoc-modethay thế.

Tôi muốn đảm bảo rằng tôi không tham chiếu bất kỳ biến lỗi thời nào trong tệp init của mình, nhưng tôi cũng muốn tránh kiểm tra toàn bộ thủ công.

Vì vậy, câu hỏi của tôi là : Có cách nào để tự động xác định tất cả các biến lỗi thời trong tệp init của tôi (cũng có thể hoạt động cho các gói của bên thứ ba được cài đặt thông qua trình quản lý gói)?

Câu trả lời:


12

Byte-biên dịch tệp.

Nói chung, tốt nhất là không biên dịch byte tệp init của bạn, nhưng ở đây nó hữu ích. Trình biên dịch byte sẽ cảnh báo bạn về rất nhiều thực tiễn xấu, trong số đó là việc sử dụng các biến hoặc hàm lỗi thời.

  1. Chỉ cần gọi M-x byte-compile-filevà cung cấp cho tập tin init của bạn.

  2. Sau đó, đảm bảo bạn xóa .elctệp được tạo .


2
Vì tò mò, những lý do để không biên dịch byte tệp init là gì?
Dân

4
@Dan Những lợi thế không đáng kể. Trong khi đó, đôi khi bạn có thể quên biên dịch lại sau khi thay đổi và không biết tại sao những thay đổi của bạn không có hiệu lực.
Malabarba

4
@Dan: Ngoài những gì Malabarba đã nói, một tệp init đã cho đôi khi (thường) được sử dụng cho nhiều phiên bản Emacs và biên dịch byte có thể làm giảm loại tính di động này.
vẽ

Chỉ trong trường hợp không rõ ràng: bạn có thể biên dịch byte (để xem cảnh báo, v.v.) và sau đó xóa *.elc.
vẽ

6
Đó là lý do tại sao bạn nên sử dụng #'thay vì 'cho các chức năng. Nếu bạn biên dịch một cái gì đó với (add-hook 'emacs-lisp-mode-hook #'turn-on-eldoc-mode)trình biên dịch sẽ cảnh báo bạn.
Malabarba
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.