1. 程式人生 > >【積水成淵-逐步定製自己的Emacs神器】3:為Emacs安裝擴充套件

【積水成淵-逐步定製自己的Emacs神器】3:為Emacs安裝擴充套件

前言

本文介紹瞭如何使用Emacs的Package-Mode來為其安裝擴充套件包,講解如何新增新的Package源和如何安裝Package。以安裝一個新的主題包Solarizd和Markdown編輯擴充套件Markdown-Mode為例進行講解。

檢視Package列表:list-packages

使用M-x list-packages命令可以檢視所有packages的列表,此時Emacs進入Package Menu Mode。Emacs列出了所有可以安裝、已經安裝、可以更新的Package,使用C-h m來了解更多的操作幫助。

list_packages.jpg

Package源:package-archives

這個package列表是從網上down下來的,這個下載地址,Emacs裡的專業叫法叫Package Archives,我稱它為Package源。使用

C-h v package-archives 來檢視package源這個變數的值,預設情況下,只有一個源,這導致Emacs的list-packages列表裡包的數量不是很多。

新增Packag源

M-x customize-variable RET package-archives : 還記得第二篇文章裡的定製操作吧,使用customize-variable來修改這個package源變數。敲這個命令的時候記得多用TAB不用都敲。

進入之後可以看到當前的package源,點選下面的INS

按鈕來插入新的package源,輸入一個名字,一個url連結,大家用的比較多的是melpa,名字和url可以分別這樣填:

填好之後的介面如下所示:

package_archive.jpg

儲存設定之後,再次使用M-x list-packages 就會看到包的數量明顯增多。

注意:melpa這個package源需要科學上網才能正常使用,而且連線速度貌似不是很快,我平均要連30s左右才能連上。如果好久都沒有響應,使用萬能的C-g來跳出list-packages操作。

下面這篇文章裡推薦了大陸使用者一個package源,我還沒使用過,如果不能科學上網的使用者,可以試試:

安裝新主題

設定好了package源,現在可以給Emacs安裝新的擴充套件了。

M-x list-packages 進入package列表,如果你已經在這個介面,按 “r” 鍵來重新整理,重寫連線。

以安裝Solarized主題為例,按C-s來搜尋 “solarized”. 如下圖所示,把游標放在“Solarized”那行,按“i”鍵,將其標記為“要安裝的”,然後按“x”鍵執行標記為“i”的專案,這裡僅僅標記這一個。

solarized_theme.jpg

安裝過程中會提示你是否要執行未經安全確認的ELisp指令碼之類的,選“yes”就行了。裝完這個主題之後,使用M-x customize-themes進入主題切換介面,可以看到Solarized Dark和Solarized Light兩種風格可供選擇。這裡假設選擇了Solarized Dark主題,並且儲存為長期使用。此時開啟你的Emacs配置檔案會看到如下內容:

(custom-set-variables
 '(custom-enabled-themes (quote (solarized-dark)))
 '(custom-safe-themes (quote ("8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4" default)))

可以看到,新安裝的主題配置已經寫入Emacs配置。如果你此時重啟Emacs,進來後會發現主題沒有儲存下來。這是因為在執行這段主題配置指令碼時,Solarized包還沒有載入。因此要想讓設定生效,需要在這段指令碼上面初始化packages,在你的.emacs(或者init.el)檔案最上方加入這句:

(package-initialize)

它會初始化packages,確保隨後的配置生效。

安裝Markdown

這一節說一下Emacs裡做筆記寫部落格。

如果只需要使用Emacs來記筆記,安排日程,那麼毫無疑問Org-Mode是首選。網上Org-Mode的教程很多,在此不細說了。如果需要編寫Markdown檔案,Org-Mode可以使用命令匯出為Markdown格式,網上有人說使用C-c C-e m可以匯出Markdown,但是我使用最新版本(20160229)的Org-Mode匯出時,並沒有匯出Markdown的選項,我猜可能是需要安裝新擴展才行吧。

其實Emacs的packages中有一個Markdown-Mode package是專門為編寫markdown檔案設計的,雖然它沒有Org-Mode那麼強大,但是對於普通使用者已經足夠用了,這篇文章就是在Emacs的Markdown-Mode裡編寫的。這裡是Markdown-Mode的github連結,裡面有使用說明。總體來說用起來還算順手,不足之處是應該是對錶格的支援不是很好,我沒在說明中看到對錶格編輯的支援。

為什麼要單獨說一下安裝Markdown-Mode呢?

這是因為它不是通過Package系統來安裝的,上面的Solarized主題的安裝是通過Package系統來安裝的,過程很簡單,是自動的。

而Markdown-Mode的安裝方式是手動的。因此把它作為手動安裝擴充套件的一個代表來說明。在上面的Markdown-Mode的github連結中可以找到它的安裝方法:

  • 第一步:clone版本庫(git clone https://github.com/jrblevin/markdown-mode.git),拿到裡面的markdown.el檔案,拷貝到($HOME)/.emacs.d/elpa/markdown-mode/路徑 (自己新建目錄)
  • 第二步:把markdown.el的路徑加入到Emacs的load-path之內
  • 第三步:在Emacs配置檔案中加入Markdown-Mode的設定程式碼

編輯後的Emacs配置檔案中markdown-mode部分配置如下所示:


;;;markdown mode

;;;; YOUR_HOME_DIR是你的Home目錄。
(add-to-list 'load-path "($YOUR_HOME_DIR)/.emacs.d/elpa/markdown-mode/")

;;;; 官方的markdown-mode設定
(autoload 'markdown-mode "markdown-mode"
  "Major mode for editing Markdown files" t)
  (add-to-list 'auto-mode-alist '("\\.text\\'" . markdown-mode))
  (add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode))
  (add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))

要檢視自己的load-path,使用C-h v load-path

總結

  • 自動安裝:使用M-x list-packages來檢視所有packages,使用i,x等快捷鍵來操作packages。有些package安裝之後也要自己在Emacs配置檔案裡做一些設定
  • 手動安裝:通常需要自己拷貝檔案到.emacs.d等目錄,並修改Emacs配置檔案

作者水平有限,對相關知識的理解和總結難免有錯誤,還望給予指正,非常感謝!