Tôi sử dụng cấu trúc sau để theo dõi các gói và tệp
~/.emacs.d
|-- elpa ;; Package.el packages
|-- hack ;; Development versions of packages (e.g. org, personal packages)
|-- single-lisp ;; Individual lisp files from outside sources (e.g. EmacsWiki)
|-- site-lisp ;; Lisp packages not managed by package.el (directories)
|-- user-config ;; Machine/situation specific customization (work vs home)
| `-- custom.el ;; Customization settings
|-- lisp ;; Individual .el files to keep init.el clean
| `-- defaults.el ;; Default configuration settings
`-- init.el
Sau đó tôi sử dụng use-packageđể quản lý các gói được tải và các tùy chỉnh nào được đặt cho từng gói. Hầu hết thời gian chỉ hackvà elpayêu cầu cập nhật, các thư mục khác thường dành cho các gói một lần mà tôi muốn kiểm tra hoặc sử dụng nhanh chóng nhưng không cần tải (thậm chí là không sử dụng).
custom.el dành cho Cài đặt tùy chỉnh mà tôi không muốn sử dụng (và không có phiên bản ngay cả khi tôi sử dụng).
defaults.eldành cho cấu hình chung (thanh menu, phông chữ, mã hóa, v.v.) sau đó có thể được ghi đè trong bất kỳ tệp .el nào user-config/để cho phép một hệ thống hoạt động như tôi mong đợi, nhưng có thể được điều chỉnh để phù hợp với môi trường.
Tôi đã từng cố gắng giữ functions, macros, advicetrong các gói riêng biệt để cho phép phân định giữa nội dung, nhưng ran vào định nghĩa / đòi hỏi vấn đề như vậy đã đưa những người trở lại vào init.el. Cuối cùng họ có thể được đưa trở lại vào ~/.emacs.d/lisp/.
Tôi cố gắng giữ init.elgọn gàng, sắp xếp nội dung theo chức năng và mục đích để việc tìm lại nội dung sẽ trở nên đơn giản. Tôi đã có init.eltệp nguyên khối và tiếp tục thêm nội dung mới vào cuối (hoặc nơi tôi nghĩ nó có thể phù hợp) và sau đó sẽ không biết tôi đã thêm gì hoặc tôi đã thêm nó vào đâu khi tôi tìm nó (và đôi khi tìm kiếm bằng cách sử dụng isearchkhông giúp ích gì vì tôi không thể nhớ cách tôi đặt tên mọi thứ vào thời điểm đó).