關於 el-get ,你可以當成一個自定義的好工具!
我們透過三篇的文章,大致瀏覽過了 el-get 的基本能力。現在來講關於 el-get 這個工具應用於「新思維」的方式。
新思維一個最大的目的,在於儘可能把繁複的包(套件)的安裝、設定、更新交給已然完善的 emacs 機制來處理,從而避免掉關於 autoload、load-path 等以及各式套件落後開發的情況。
在 el-get 的調用順序中,變數序列 el-get-sources (參見 el-get 上篇)負責記錄使用著自訂的短 recipe,在處理 recipe 時會覆蓋在既有 recipe 上(他們存放於 .emacs.d/el-get/el-get/recipes)。而 el-get-recipe-path (參見 el-get 下篇)則是存放 recipe 檔案的位置。兩者最終的作用是一樣的。
所以我們有兩種配置方案的選擇:
將 recipe 放在 el-get-sources 如下圖所示
將 recipe 放在 /path/to/recipe 然後添加到 el-get-recipe-path
這裏介紹 el-get 的 recipe 用來寫自己的設定的選項,即 :after ,後面接自己想要跑的指令。通常會以 (progn foo bar) 這個語法。底下示範一個寫在 init.el 的例子。
這裏的狀況是,我不喜歡原本 yf-stardict 的按鍵,那麼我可以用自己喜歡的把它覆蓋過去!
而這裏的 (:name ...) 又可視爲自己的 recipe 來處理,可以放在自己的資料夾中!只要:
1. 名稱不要重複
2. 加上 :depands 原來的包
如此,即可確保自己的 recipe,跟 el-get 的 recipe 不衝突!
(setq el-get-sources
'(el-get
(:name yf-stardict
:after (progn
(global-set-key [(F5)] 'star-dict-scan)
(global-set-key [(F6)] 'star-dict-prompt)))))
(setq packages
(append
'(el-get yf-stardict)
(mapcar 'el-get-source-name el-get-sources)))
(el-get 'sync packages)