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ỉ hack
và elpa
yê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.el
dà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
, advice
trong 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.el
gọ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.el
tệ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 isearch
khô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 đó).