恩….身為一個 vimer,我還是想試試看 emacs,所以就選了系上的一堂教 lisp 的課。
本篇記錄一下安裝插件的過程
(雖然我這篇還是用 vim 打的….

這個插件的名稱是 rainbow-delimiters,顧名思義就是讓對應的括號有相同的顏色,這在一堆括號的語言 lisp 中可以對初學者較為友善。

emacs 安裝

emacs 的安裝方式就還是提一下,不然我應該記不起來@@

$ sudo add-apt-repository ppa:ubuntu-elisp/ppa
$ sudo apt-get update
$ sudo apt-get install emacs-snapshot emacs-snapshot-el

超基本按鍵

我是超新手,所以只暫時記錄最重要的@@

  • ctrl-x ctrl-s:儲存
  • ctrl-x ctrl-c:離開

新增設定檔

首先需要新增一個設定檔,就像 vim 中的 .vimrc 一樣,而為了方便管理我使用 ~/.emacs.d/init.el,我們就直接用 emacs 編輯吧~

Note. -nw 可以用非 GUI 的方式開啟 emacs

$ mkdir ~/.emacs.d/
$ emacs -nw ~/.emacs.d/init.el

支援 MELPA 插件庫

打開之後貼上

(require 'package)
(let* ((no-ssl (and (memq system-type '(windows-nt ms-dos))
                    (not (gnutls-available-p))))
       (proto (if no-ssl "http" "https")))
  ;; Comment/uncomment these two lines to enable/disable MELPA and MELPA Stable as desired                                         
  (add-to-list 'package-archives (cons"melpa"(concat proto"://melpa.org/packages/")) t)
  ;;(add-to-list 'package-archives (cons"melpa-stable"(concat proto"://stable.melpa.org/packages/")) t)                            
  (when (< emacs-major-version 24)
    ;; For important compatibility libraries like cl-lib                                                                           
    (add-to-list 'package-archives'("gnu" . (concat proto "://elpa.gnu.org/packages/")))))
(package-initialize)

新增 rainbow-delimiters 插件

退出 (上面有記錄怎麼儲存跟離開) 後重新開啟 emacs

$ emacs -nw

按下 alt-x 後輸入 package-list-packages 接著按下 Enter

OuO

會發現出現一個各種插件的頁面。

搜尋方式請按 ctrl-s 後輸入 rainbow-delimiters 接著 Enter 即可找到

OuO

在那一行按下 i 會發現最前方多了一個 I

選完後按下 x 就可以安裝了

結果最後還需要加東西到 ~/emacs.d/init.el

(require 'rainbow-delimiters)
(add-hook 'prog-mode-hook 'rainbow-delimiters-mode)

改完之後會發現有很淺的變色了

自訂顏色

結果就如封面所示。

(custom-set-variables
 '(package-selected-packages '(rainbow-delimiters)))
(custom-set-faces
 '(rainbow-delimiters-depth-1-face ((t (:foreground "dark orange"))))
 '(rainbow-delimiters-depth-2-face ((t (:foreground "deep pink"))))
 '(rainbow-delimiters-depth-3-face ((t (:foreground "chartreuse"))))
 '(rainbow-delimiters-depth-4-face ((t (:foreground "deep sky blue"))))
 '(rainbow-delimiters-depth-5-face ((t (:foreground "yellow"))))
 '(rainbow-delimiters-depth-6-face ((t (:foreground "orchid"))))
 '(rainbow-delimiters-depth-7-face ((t (:foreground "spring green"))))
 '(rainbow-delimiters-depth-8-face ((t (:foreground "sienna1"))))
)

參考資料

  • ⊛ Back to top
  • ⊛ Go to bottom