前言
Emacs 是最為強大的開源編輯器之一(另一個地球人都知道),它的強大擴展能力讓不少用戶愛不釋手,不過,過于羞澀的配置和復雜的按鍵組合,也讓它備受爭議。Linus就曾說Emacs是Evil,也還有人開發(fā)出各種Evil插入,將Emacs變成Vim,Emacs真是讓人又愛又恨。
Emacs 雖然功能強大,但畢竟已經(jīng)年代久遠,與Sublime Text、Atom等新生代相比,卻還是少了一些現(xiàn)代感,易用性也有所不如。不過,能夠稱霸編輯器界幾十年,Emacs是不會輕易退出舞臺的。我的網(wǎng)站就是用Emacs來編輯的,下面就分享我用的幾個簡單的配置,讓Emacs看起來更現(xiàn)代,更好用。
包管理
第一需要的就是包管理,現(xiàn)在包管理基本成了各種軟件或系統(tǒng)的標配,對于Emacs這種以擴展性強的軟件來說,包管理必不可少。不過,默認的包倉庫數(shù)量有限,必須加附加的倉庫(Emacs為什么不能一次到位呢?哎~)。
在配置~/.emacs.d/init中(沒錯,init沒el后綴也行),添加
(require 'package) ;; You might already have this line
(add-to-list 'package-archives
'("melpa-stable" . "https://stable.melpa.org/packages/") t)
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/packages/") t)
(package-initialize)
上面是分別添加melpa和marmalade兩個倉庫.
工具欄
對于Emacs來說,工具欄基本沒用,我的工具欄就從來沒用過,還占用空間,工具欄簡直就是Emacs最差的設計之一。既然不需要,那就沒有必要留著,去掉它,騰出空間。在配置~/.emacs.d/init中添加
(tool-bar-mode 0)
行列顯示
對于一個現(xiàn)代編輯器來說,在側(cè)邊顯示行號是必須的。在底下狀態(tài)欄顯示行列信息,也是必須的。括號匹配和當前行高亮顯示,這些都是必須的。但對于Emacs來說,默認這些都是沒有的,讓人怎么說呀。在配置上加上
(global-linum-mode t) ;側(cè)邊顯示行號
(column-number-mode t) ;狀態(tài)欄顯示行列信息
(show-paren-mode t) ;括號匹配高亮
(global-hl-line-mode 1) ;當前行高亮
統(tǒng)計選擇的字符數(shù)
在狀態(tài)欄上顯示當前選擇的字符數(shù),我認為也是必須的。不過Emacs并沒有開啟,默認也沒帶。需要從包管理中下載modeline-posn,然后在配置中設置
(require 'modeline-posn)
(size-indication-mode 1)
當選擇一段文字,會在狀態(tài)欄中把這段文字的字數(shù)統(tǒng)計下來,支持中文和英文。不過這個插件和smart-mode-line會沖突,所以不能安裝smart-mode-line。

多處同時編輯
多處同時編輯這個功能,簡直就是太太有范了,我喜歡上Sublime Text,沒別的,就是這個功能。所以,這個功能必須有。我在我的另一篇文章《Emacs中多處同時編輯》也有介紹過。從包管理上安裝multiple-cursors,然后在配置中配置
(require 'multiple-cursors)
(global-unset-key (kbd "M-<down-mouse-1>"))
(global-set-key (kbd "M-<mouse-1>") 'mc/add-cursor-on-click)
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this)
(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)
重啟后,按住M鍵(Alt),用鼠標點擊試一下,退出同時編輯,按一下C-g。

自動保存
自動保存,會隔一個時間,幫你把文件保存起來,不用每次按C-x和C-s,這個功能和Emacs自帶那個生成自動保存文件和備份文件,是兩回事。我個人決定這個自動保存更加人心化,更加好用,而Emacs自帶的那個生成保存文件和備份文件,基本沒用,每次都是把它們給關(guān)閉??上У氖?,這么好的功能,在包管理竟然找不到,需要另外下載(在這里auto-save),下載后放到.emacs.d/3rds目錄下,在配置文件中這樣設置
(add-to-list
'load-path
(expand-file-name "3rds" user-emacs-directory)) ;把3rds目錄加到加載目錄中
(setq auto-save-default nil) ;不生成那個討厭的##文件
(setq backup-by-copying nil) ;不生成那個討厭的~文件
(require 'auto-save) ;; 加載自動保存模塊
(auto-save-enable) ;; 開啟自動保存功能
(setq auto-save-slient t) ;; 自動保存的時候靜悄悄的, 不要打擾我
自動保存功能真的很好用,據(jù)說有人用這個功能,都10年不用按C-x和C-s了。
啟動回到原來的界面
Emacs關(guān)閉或退出后,重啟還想回到原來的界面,這個功能必須有,不過,默爾也沒有。需要從包管理中下載session,然后在配置中配置
(require 'session)
(add-hook 'after-init-hook 'session-initialize)
(desktop-save-mode t)
第一次退出的時候,會提示是否保存回話,回答yes,下次就不需要了。有了這個功能,啟動Emacs就能回到上次退出時的狀態(tài)。
現(xiàn)代風格
Emacs的界面已經(jīng)幾十年不變了,所以換一個清新的界面,也是必須的。在這里,我推薦Atom風格的,也可以使用Sublime Text風格的,我自己使用的是Atom風格,在包管理中下載atom-one-dark(如果是想用Sublime Text的,就下載monokai),然后在配置中設置
(load-theme 'atom-one-dark t)
這個時候,Emacs跟Atom是不是很像了,很有現(xiàn)代感吧~。配置界面風格,還有color-theme,不過不推薦,原因,color-theme的種類雖多,但也不用天天換,另外一個最重要原因,就是慢!到這里,給大家看一張我的Emacs截圖。

總結(jié)
在這邊文章里,我跟大家分享了我認為Emacs必須具備的功能和配置,有這些功能配置,Emacs就已經(jīng)很好看很好用了。對于另外一些功能,如org,helm,雖然很酷,很有范,但是如果你不做這類工作(如GTD等),那么這些功能是沒有用的。因此,從簡單實用的角度出發(fā),只說必須有的,不必須有的,就不在這介紹了。本人水平有限,如果有什么不對的,也請大家指正。