[渣翻譯]use-package使用說明(version0.2)

use-package宏是spacemacs的精髓,實現了package配置的隔離,終於不用將全部的配置放在一塊兒,亂得像一鍋粥了,延遲加載極大地提高了spacemacs的啓動性能。python

  • (譯者增長)新版無需在關鍵詞後使用progn包裝多條sexp語句ruby

  • :init的含義改變了,如今老是在package加載前執行,不管:config是否defered(延遲執行)函數

  • :init和:config替代了原有的:pre-和:post-關鍵詞post

  • :idle關鍵詞被移除性能

  • :defer 接受一個正整數,好比:defer 2,在idle時段2秒後加載測試

  • 新增關鍵詞:preface,使用場景:定義函數和變量,優勢1)將代碼放在保護模塊中,使得編譯器不會由於函數未定義而發出警告,優勢2)能夠定義代碼於:if的測試語句中,注意:你只應該在:preface中使用聲明和定義,避免使用反作用(破壞性語句)spa

  • :defines用於定義變量code

  • :functions用於定義函數regexp

基本用法

(use-package foo)

加載信息會在*Messsages*緩衝區編譯器

:init關鍵字在package加載以前,執行後續sexp代碼(用於初始化工做)

(use-package foo
  :init
  (setq foo-variable t))

:config關鍵字在package家在以後執行(因爲defer的存在,:config老是在autoload執行後執行)

(use-package foo
  :init
  (setq foo-variable t)
  :config
  (foo-mode 1))

:init和:config一塊兒使用的例子

(use-package color-moccur
  :commands (isearch-moccur isearch-all)
  :bind ("M-s O" . moccur)
  :init
  (bind-key "M-o" 'isearch-moccur isearch-mode-map)
  (bind-key "M-O" 'isearch-moccur-all isearch-mode-map)
  :config
  (use-package moccur-edit))

鍵綁定

(use-package ace-jump-mode
  :bind ("C-." . ace-jump-mode))

:bind會在ace-jump-mode加載後執行綁定,你能夠用M-x describe-personal-keybindings查看你經過.emacs設置的鍵綁定。

(use-package ace-jump-mode
  :commands ace-jump-mode
  :init
  (bind-key "C-." 'ace-jump-mode))

:commands關鍵字使得命令在用到時才被加載,而:init不管ace-jump-mode是否成功加載,均會執行。

(use-package hi-lock
  :bind (("M-o l" . highlight-lines-matching-regexp)
         ("M-o r" . highlight-regexp)
         ("M-o w" . highlight-phrase)))

:bind的更多用法

編輯模式和交互器

(use-package ruby-mode
  :mode "\\.rb\\'"
  :interpreter "ruby")

;; The package is "python" but the mode is "python-mode":
(use-package python
  :mode ("\\.py\\'" . python-mode)
  :interpreter ("python" . python-mode))

固然下面這種寫法也可以defer執行

(use-package ace-jump-mode
  :defer t
  :init
  (autoload 'ace-jump-mode "ace-jump-mode" nil t)
  (bind-key "C-." 'ace-jump-mode))

眼睛痠疼,躺了,明天繼續

相關文章
相關標籤/搜索