Dưới đây sẽ làm việc. Để rõ ràng, tôi đang sử dụng :ensure org-plus-contriblàm sai lệch một chút so với ví dụ trong câu hỏi của bạn.
(use-package org
:mode (("\\.org$" . org-mode))
:ensure org-plus-contrib
:config
(progn
;; config stuff
))
Dưới đây là một số lưu ý giải thích cho ở trên:
(use-package FEATURE-NAME
FEATURE-NAMElà những gì đi trong (provide ..)dòng của một gói. Đối với org-mode, dòng đó là (provide 'org).
:mode ((FILE-REGEXP . MAJOR-MODE))
FILE-REGEXPlà biểu thức chính quy mà bạn muốn bật chế độ chính cụ thể. Bạn có thấy đúng: "\\.org$".
MAJOR-MODElà tên của chế độ chính mà bạn muốn bật (bao gồm cả -modephần của tên chế độ chính). Trong trường hợp này, tên chế độ chính là org-mode.
- Phong cách
:mode (FILE-REGEXP)mà bạn đã sử dụng sẽ chỉ hoạt động nếu FEATURE-NAMEvà MAJOR-MODEgiống hệt nhau. Ví dụ : cperl-mode.
:ensure PACKAGE-NAME
PACKAGE-NAMElà những gì tôi thấy được liệt kê trong danh sách gói ( M-x package-list-packages). Để rõ ràng, trong giải pháp của tôi ở trên, chúng tôi đang cài đặt gói org-plus-contrib1 . Điều này là để chứng minh tên tính năng, chế độ chính và tên gói thực tế không nhất thiết phải giống nhau. Và tôi cũng thích cài đặt nó thay vì đơn giản org-modevì bạn cũng nhận được tất cả các contrib/gói quà tặng! :)
1 Bạn sẽ cần thêm (add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)vào cấu hình emacs của mình để cài đặt org-plus-contrib. Xem trang cài đặt chế độ org chính thức để biết thêm thông tin.
Ghi chú
Cách tốt nhất để làm cho use-packageđoạn mã trên hoạt động là trước tiên lưu nó vào cấu hình emacs của bạn, sau đó xóa các phiên bản đã cài đặt Trình quản lý gói trước orgđó và sau đó khởi động lại emacs.
org.elvà bạn sẽ thấy đến cuối :(provide 'org). Biểu tượng đó (org) là những gì bạn sẽ sử dụng để tải gói, như trong :(require 'org). Đó cuối cùng là những gìuse-packageđang làm, chỉ với một số thứ hữu ích xung quanh nó. Một gói nhất định có thể xác định nhiều chế độ để tên gói và chế độ không phải lúc nào cũng giống nhau. Đây thực sự là vấn đề tương tự như câu hỏi khác về việchtml-modeđược xác định bởisgml-modegói.