Tôi hiểu những gì tự động tải cho các chức năng (đăng ký tập tin để tải khi chức năng đó được gọi hoặc chuỗi tài liệu của nó được lấy). Tuy nhiên, không rõ cách sử dụng tiện ích tự động tải kết hợp với các biến và macro.
Tôi có hai câu hỏi:
Điều gì xảy ra khi gói có tham số, được triển khai như một biến mà người dùng có thể đặt, nhưng nó không được tự động tải? Các biến như vậy có nên được tự động tải? Nếu không, hóa ra các biến như vậy không tồn tại, môi trường Lisp không biết gì về chúng, bao gồm các giá trị mặc định của chúng, cho đến khi một số chức năng tự động tải từ gói được sử dụng (thường là sau khi tải tệp cấu hình), sau đó nếu người dùng đặt chúng vào / tập tin cấu hình của cô ấy, nó giống như thiết lập biến không tồn tại. Nếu giá trị của biến là một danh sách không trống và người dùng sử dụng
push
hoặcadd-to-list
để thay đổi giá trị của nó, chính xác thì điều gì sẽ xảy ra? Là giá trị mặc định bị mất?Điều gì xảy ra khi một macro được tự động tải? Khi nào chúng ta nên tự động tải một macro?
setq
ed (nghĩa là không có vấn đề gì với giá trị mà chúng có trước đó) có thể được chỉ định mặc định trongdefvar
hoặcdefcustom
biểu mẫu, nhưng trong trường hợp danh sách có thể được người dùng mở rộng thì tốt nhất nên sử dụngeval-after-load
phải không? Ngoài ra, đôi khi mặc định tốt là tốt, ngay cả khi chúng ở dạng danh sách ;-)