強大更勝 vundle 的 el-get 介紹之中篇。
關於el-get安裝及啟用,請參考前兩天的文章,簡單扼要的講了 Emacs 內建的 elpa-package 體系,以及安裝、使用 el-get 的方法。本文將假設你已經安裝好了el-get,然後準備更進階的動作。
本篇文章將深入探討 el-get 的:
一、指令操作:
套件安裝指令(不建議使用):
M-x el-get-install RET 套件名稱
M-x el-get-remove RET 套件名稱
M-x el-get-reinstall RET 套件名稱
關於這三個指令,字面意義很明瞭,但我非常不建議透過這樣的方式安裝套件。因為安裝之後,套件是以資料夾的型態存在於 ~/.emacs.d/el-get/ 內。你必須指定到該資料夾的路徑,好比說:
(add-to-list 'loda-path "~/.emacs.d/el-get/paredit-ver/")
才能透過 (require 'paredit) 載入。沒又被寫在 el-get 自己的載入列表內。
同步指令:
M-x el-get-self-update :自我同步
M-x el-get-update RET 套件名稱 :必須輸入套件名稱,更新此套件。更新完畢之後會編譯為 elc 檔案,且重新載入。
M-x el-get-update-all :同步所有安裝包,會需要花費較多的時間,一一從套件來源更新並編譯。
M-x el-get-reload :重新載入安裝列表,el-get-update-all 的時候也會執行。
這些指令除了更新套件之外,也會把它們編譯成elc檔案,可以更快速的執行。
Recipe操作指令:
M-x el-get-list-packages :列出所有可安裝的包(也就是有recipe的包,不論是el-get官方收錄的,或者是使用者自己新增的)
M-x el-get-describe RET 套件名稱 :開啟某個套件的描述文件
M-x el-get-find-recipe-file RET 套件名稱 :開啟某個套件的recipe
二、Recipe寫作:
以 BBDB 這個有名套件的 recipe 來解說。這也是一個 elisp 檔案。
(:name bbdb
:type git
:pkgname "barak/BBDB"
:load-path ("./lisp" "./bits")
:build ("./configure" "make autoloads" "make")
:build/darwin ("./configure --with-emacs=/Applications/Emacs.app/Contents/MacOS/Emacs" "make autoloads" "make")
:features bbdb
:after (lambda () (bbdb-initialize))
:info "texinfo")
recipe 資訊選項:
注意上篇在
(setq
el-get-sources
'(el-get ...))
之後的,即 smex 及 magit,也是 recipe。若你的自定義 recipe 沒有覆蓋原有 recipe,相對應的資訊也不會被改動。這兩個自定義 recipe 包主要是寫入 :after,如此設定檔即不需額外設定。這是我們新思維最重要的基礎。有了它,我們可以不需要任何的第三方庫,也可維持套件完整與相依。