emacs插件(4)——包的配置use-package

1、參考

emacs系列文章目錄——更新inggit

use-packagegithub

use-package docssegmentfault

Configuring Emacs from Scratch — use-packageless

2、爲何須要use-package?

當配置好init.el後,常常會出現下面的兩個問題ui

2.1 可移植性

當須要在其餘機器中,配置emacs時候,若是不能保證須要的packages都安裝,可能致使init.el中的許多配置不能生效this

2.2 代碼結構太扁平

由於在init.el中,有多個packages都須要配置,可是init.el是全部包的配置文件,隨着packages的添加,可能會出現配置之間的衝突spa

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能夠很好的解決上面的兩個問題code

3、基本使用

3.1 安裝

M-x package-install <RET> use-package <RET>get

3.2 基本語法

(use-package <package-name>
  :init
  <code to be executed before loading the package>
  <加載包以前,執行的代碼>
  :config
  <code to be executed after loading the package>
  <加載包以後,執行的代碼>
  :bind
  <key bindings for this package>)

3.3 示例

(1) 沒有使用use-packageemacs

(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))

4、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

相關文章
相關標籤/搜索