Sau khi tìm hiểu gần đây, use-packagetôi quyết định chuyển cấu hình của mình sang nó nhưng thấy mình không muốn từ bỏ sự tiện lợi của việc sử dụng package.elđể cài đặt các gói và giữ cho chúng được cập nhật. Tôi đã tìm thấy một chút khó khăn để kết hợp use-packagevà package.el.
Tôi thường quan tâm đến việc tìm hiểu cách mọi người kết hợp use-packagevới package.elhệ thống, nhưng đối với một câu hỏi cụ thể hơn, hãy tiếp tục đọc.
Đây là những gì tôi muốn:
- Để có các gói được cài đặt bởi trình quản lý gói để tôi có thể dễ dàng duyệt các gói và cập nhật chúng qua
list-packages. - Để cấu hình và tải các gói độc quyền thông qua
use-package, vì vậy tôi có thể dễ dàng nhìn thấy trong tệp init của mình chính xác những gì tôi đang tải và cách nó được cấu hình. - Tùy chọn, tôi muốn cũng có thể cài đặt các gói thông qua
use-package's:ensuretừ khóa.
Nếu tôi hiểu chính xác tôi muốn rất ít về những gì package-initializenó làm, về cơ bản chỉ là cách nó thiết lập load-path. Hiện tại tôi có cái này trong cấu hình của mình:
;(package-initialize)
(setq package-enable-at-startup nil)
(let ((default-directory "~/.emacs.d/elpa"))
(normal-top-level-add-subdirs-to-load-path))
(require 'use-package)
Dòng đầu tiên, được nhận xét, vì vậy Emacs 25 không hữu ích khi thêm (package-initialize)tệp init của tôi. Bit với normal-top-level-add-subdirs-to-load-pathlà một xấp xỉ với những gì package-initializesẽ làm cho load-path, một xấp xỉ có vẻ đủ tốt.
Điều này dường như đạt được mong muốn của tôi 1 và 2, nhưng không phải 3. Nếu tôi cố gắng sử dụng :ensure, tôi nhận được một thông báo lỗi nói rằng package.elkhông được khởi tạo. Gọi điện package-initializesẽ khắc phục điều đó, nhưng tôi muốn tránh điều đó vì a) Tôi không muốn tất cả vô số tải tự động được tải (tôi thích sử dụng use-packageđể tạo chính xác các tải tự động tôi cần) và b) Tôi muốn có thể dễ dàng tránh tải một số gói được cài đặt bất cứ khi nào tôi muốn (dễ thực hiện use-package).
Có ai có một đề nghị cho làm thế nào để làm điều này?
package-initializenó để trả lời câu hỏi của tôi.