Emacsプラグイン(4)——パッケージの構成use-package

3657 ワード

一、参考
Emacsシリーズ記事ディレクトリ——更新ing
use-package
use-package docs
Configuring Emacs from Scratch — use-package
二、どうしてuse-packageが必要ですか.init.elを構成すると、次の2つの問題が発生することがよくあります.
2.1移植性
他の機器において、emacsを構成する必要がある場合、必要なpackagesをすべてインストールすることが保証されないと、init.elの多くの構成が有効にならない可能性があります.
2.2コード構造がフラットすぎるinit.elでは、複数のpackagesが構成する必要があるが、init.elはすべてのパケットの構成ファイルであり、packagesの追加に伴い、構成間の競合が発生する可能性がある
2.3 packagesの取付問題の解決
(defvar my-packages '(spacemacs-theme company))
(dolist (p my-packages)
  (when (not (package-installed-p p))
    (package-install p)))

上記の方法では、2.1 を解決することができますが、2.2 を新しいpackageに導入することはできません.use-packageは、上記の2つの問題をうまく解決することができます.
三、基本使用
3.1インストールM-x package-install use-package
3.2基本文法
(use-package 
  :init
  
  
  :config
  
  
  :bind
  )

3.3例
(1)use-package未使用

(global-company-mode t)
(define-key company-active-map (kbd "C-n") 'company-select-next)
(define-key company-active-map (kbd "C-p") 'company-select-previous)
(setq company-idle-delay 0.0)

(2)use-package使用
(use-package company
  :bind (:map company-active-map
         ("C-n" . company-select-next)
         ("C-p" . company-select-previous))
  :config
  (setq company-idle-delay 0.3)
  (global-company-mode t))

3.4保証使用のpackageはすべて存在する
(use-package magit
  :ensure t
  :bind ("C-x g" . magit-status))

:ensure tは、ローカルに存在しないすべてのpackageがインストールされて使用されることを保証します.
3.5保証use-package取付
(when (not (package-installed-p 'use-package))
  (package-refresh-contents)
  (package-install 'use-package))

四、keywordリスト
keyword名
簡単な説明:after
ユニット2:bind-keymap, :bind-keymap*
ユニット4:bind, :bind*
ユニット2:commands
ユニット4:preface, :init, :config
ユニット2:custom
ユニット4:custom-face
ユニット2:defer, :demand
ユニット4:defines, :functions
ユニット2:diminish, :delight
ユニット4:disabled
ユニット2:ensure, :pin
ユニット4:hook
ユニット2:if, :when, :unless
ユニット4:load-path
ユニット2:mode, :interpreter
ユニット4:magic, :magic-fallback
ユニット2:no-require
ユニット4:requires
ユニット2
4.1 :init