Sau khi tìm hiểu gần đây, use-package
tô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-package
và 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-package
với package.el
hệ 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:ensure
từ khóa.
Nếu tôi hiểu chính xác tôi muốn rất ít về những gì package-initialize
nó 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-path
là một xấp xỉ với những gì package-initialize
sẽ 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.el
không được khởi tạo. Gọi điện package-initialize
sẽ 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-initialize
nó để trả lời câu hỏi của tôi.