前言
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自帶的那個生成保存文件和備份文件写半,基本沒用,每次都是把它們給關閉尉咕〉可惜的是,這么好的功能年缎,在包管理竟然找不到悔捶,需要另外下載(在這里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關閉或退出后赁温,重啟還想回到原來的界面,這個功能必須有淤齐,不過股囊,默爾也沒有。需要從包管理中下載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截圖获列。
總結
在這邊文章里谷市,我跟大家分享了我認為Emacs必須具備的功能和配置,有這些功能配置击孩,Emacs就已經(jīng)很好看很好用了迫悠。對于另外一些功能,如org巩梢,helm创泄,雖然很酷,很有范括蝠,但是如果你不做這類工作(如GTD等)鞠抑,那么這些功能是沒有用的。因此忌警,從簡單實用的角度出發(fā)搁拙,只說必須有的,不必須有的法绵,就不在這介紹了箕速。本人水平有限,如果有什么不對的朋譬,也請大家指正盐茎。