iT邦幫忙

DAY 3
1

EMACS 新思維系列 第 3

[EMACS新思維 第六天] 關於包管理:el-get 與自己的設定

關於 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 檔案的位置。兩者最終的作用是一樣的。

所以我們有兩種配置方案的選擇:

  1. 將 recipe 放在 el-get-sources 如下圖所示

  2. 將 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)

上一篇
[EMACS新思維 第五天] 關於包管理:el-get [下]
下一篇
[EMACS新思維 第七天] Interactively Do Things
系列文
EMACS 新思維27

1 則留言

我要留言

立即登入留言