iT邦幫忙

3

[EMACS新思維 第二天] 關於包管理:使用 package.el

  • 分享至 

  • xImage
  •  

Emacs 最大的能力,在於他能滿足每個人無盡的自定義需求。其中,安裝其他人寫好的套件是擴充 emacs 重要的一環。讓我們從內建的 package.el 開始說起。
包管理主題是非常值得初學者研究的。關於emacs包管理,有兩個東西要講,一個是功能比較單純的package.el,另外一個是比較複雜的 el-get 。

首先講講 package.el 這個東西:

在 init.el 中,首先插入這段程式碼(置於開頭,包管理是一切的開始),用 C-x e執行它,或 M-x eval-current-buffer 或重啓 emacs

(require 'package)
(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("marmalade" . "http://marmalade-repo.org/packages/")
        ("melpa" . "http://melpa.milkbox.net/packages/")))

通過引入第三方庫以及來源,我們可以獲得各種套件的源碼,同時選擇安裝之後亦會自動編譯為elc等能快速執行的 bytecode。這裡是關於ElpaMarmeladeMelpa的連結,可以連過去參考看看。其中 elpa 是官方庫,marmelade 和 melpa 是第三方庫,而且都有每天更新以及維護,算是相當不錯的套件來源。

package 這個套件,概念如下:

  1. M-x list-packages:會把目前三個來源所包含的套件顯示出來為一列表(package-menu-mode),可以進行安裝、升級、察看詳細資料等操作。

  2. 安裝之後的套件會放在 ~/.emacs.d/elpa 中。只要你有(require 'package),這個路徑就會加入到 emacs 中,不需要額外指定套件的資料夾位置(no need for add-to-path)。

  3. 對於互相依賴的套件有自動補完的能力。這或許是上傳到庫裏面的時候要寫的文件,類似 aur 裡的 pkgbuild 吧我想?

底下介紹個按鍵(操作方式類似 dired-mode),方框內是對應詳細函數名。整體來說,操作方式大約類似文字版的 synaptic (ubuntu系一個比較詳細的套件安裝軟體)

Enter [describe-package] — 顯示當前游標所在套件詳細資料
i  [package-menu-mark-install] — 標記安裝
U  [package-menu-upgrade] — 標記升級
u  [package-menu-mark-unmark] — 反標記
d  [package-menu-mark-delete] – -將已安裝的標記刪除
x  [package-menu-execute] — 執行標定的操作
r  [package-menu-refresh] — 自伺服器更新列表

先進入 list,然後用 C-s 或 C-r 搜尋需要的包。將遊標移到名稱的地方,按下 i 即表示爲欲安裝。按下 x 即執行。

之後若欲設定這個安裝的 elisp 檔案,只需要直接設置(寫於 init.el 或其他 .el 檔案)即可。安裝的時候會自動與每個套件資料夾建立 autoload。於 (require 'package) 時,會遍歷每個套件資料夾並執行 autoload。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言