Tôi không chắc chắn 100% rằng bạn thực sự có thể kiểm tra một cách đáng tin cậy chỉ require
hoặc use-package
... Nhưng nếu bạn đang sử dụng gói.el cho chức năng chế độ org, cấu hình chế độ org của bạn có thể cần phải được hoãn lại cho đến khi các gói của bạn được khởi tạo. Bạn có thể thực hiện việc này bằng một cái móc sau khi Emacs đã khởi tạo được gọi là " after-init-hook
".
Vì thế...
Điều đó có nghĩa là trong bạn .emacs
, bạn sẽ cần một cái móc như:
(add-hook 'after-init-hook 'package-config)
Và ở một nơi khác:
(defun package-config ()
;;Your org-mode config goes here.
)
Sau đó, bạn có quyền truy cập vào chức năng kiểm tra và tải xuống của pack.el ...
vì vậy, vì bạn cũng muốn kiểm tra sự tồn tại của gói, bạn có thể sử dụng " (package-installed-p 'org-plus-contrib)
" và cài đặt nó với " (package-install package)
" nếu nó không ở đó.
Nhìn chung, mã có thể sẽ trông giống như:
(defun package-config ()
(unless (package-installed-p 'org-plus-contrib)
(package-refresh-contents)
(package-install 'org-plus-contrib)))
(add-hook 'after-init-hook 'package-config)
Với phần còn lại của cấu hình của bạn là sau (unless ...)
cơ thể.
Bằng cách đó, bạn có được cấu hình của mình, bạn kiểm tra cài đặt gói của mình và bạn tự động tải xuống để bạn có thể giả định rằng mọi thứ trong dòng đó trong hàm đều có thể sử dụng các contribs đã tải. (Giả sử bạn có kết nối mạng nếu nó không tồn tại.)
(use-package org-plus-contrib :ensure t)
? Được cho rằng tôi đang sử dụng thùng với pallet để quản lý gói, nhưng nó đặt /home/kmicu/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150202 trong đường dẫn của tôi và tải nó.