這幾天都沒有動力寫mongodb的東西,我果真仍是太懶了麼~ 主要是沒有一個系統的東西整理出來,加上我使人拙計的語言表達能力,這個坑只能慢慢再補了.git
最近在折騰emacs這個東西,首先說我曾經算是個極爲堅決的VIM黨,我在各類IDE裏面基本都會要裝VIM化的插件,並且個人瀏覽器Firefox一直有Vimperator這個插件,如今上網若是不能用d關網頁/用t開tab就會以爲難受.那麼我爲啥還要搞emacs呢?並且眼看着sublime一每天變得流行起來,而emacs基本沒什麼新人在用,我爲啥又在這個時候折騰emacs呢?github
理由其實也不是很充分,可是對我而言已經夠了:mongodb
(附Richard Matthew Stallman照片一張)ubuntu
那麼就開始折騰吧,以前對於emacs的複雜程度內心有所準備,因此知道這東西不會像sublime同樣開箱就能用,果真第一個遇到的問題就是:怎麼打開文件啊?vim
先鎮定,我以前用vim的時候就是各類操做不會,都只能找菜單,這裏同樣先找菜單再說,而後發現選了打開文件之後是要輸文件路徑的(囧).估計光是這一點就足夠趕走無數的用戶,真是用戶交互設計的一大敗筆,不過emacs這東西就不是給普通用戶設計的,只有接受它的設定,才能達到咱們的目標:提升效率.瀏覽器
接下來學習的過程就再也不敘述了,總之就是先Ctrl+h t看完了教程先,教程是英語的可是很好懂.而後就是一邊開着手冊一邊試着編輯文件了.就和學習一門新語言同樣,不斷的寫程序是最快能學會的方法.學習
別人的emacs是這樣的 個人emacs是這樣的網站
學習的歷程仍是很漫長的,尤爲是在Vim的肌肉記憶深深植根大腦的時候,使人憤怒的是你會發現Emacs的鍵位比較奇葩,不是很好按,不像Vim有模式能夠不用修飾鍵,Emacs裏面須要大量的Ctrl Shift Alt等等,這就大大加深了小拇指的負擔.有人建議裝腳踏板給Ctrl和Alt,我以爲這方案還挺好的,惋惜這需求過小衆,萬能的淘寶都找不到合適的踏板,有一種可是看上去不給力且價格不理想.ui
我這裏建議把Capslock鍵改了,我以前使用Vim的時候是Capslock和ESC交換,如今則是Capslock直接改爲Ctrl,由於capslock實在沒有什麼用.這樣的話開vim的時候注意 Ctrl+[ 是和ESC起同樣的做用的,這樣就能夠同時讓Emac和Vim的按鍵都舒服許多.在Mac上還有點優點就是不須要裝額外的軟件就能夠把鍵給改了.spa
既然emacs是是衆所周知的難於配置,天然有拯救蒼生的各位大大想讓更多的菜鳥能用上神器.因而乎出現了很多文章幫助菜鳥度過難關,其實只要常常搜一下就會找到他們的博客,例如emacs中文網,李殺網等不少地方.另外還有些大大分享了他們的配置文件供咱們上手快一些,我這裏用的是emacs-starter-kit, 注意它的做者是leiningen的做者,很是值得借鑑.Emacs-starter-kit的github頁面上有關於如何使用的說明.沒有它的話天知道又有多少人會把光陰白白送在一些很是基礎的設置之中了.
之前的Emacs的插件管理方式很是的原始,都是直接把插件的el文件放在.emac.d文件夾下,並不區分插件和配置文件,這對於插件的管理/升級/卸載都十分的不便,後來就有了package.el插件來幫助設置插件.最後Emacs的做者們終於在Emacs的24版中內置了插件管理,爲咱們省卻了不少功夫.在安裝emacs-starter-kit的時候指南上就介紹咱們要在init.el中寫
1 (require 'package) 2 (add-to-list 'package-archives 3 '("marmalade" . "http://marmalade-repo.org/packages/") t) 4 (package-initialize)
這裏第一行是說加載package.el這個包,2~3行說爲package.el中加入marmalade的源來獲取包,第4行是初始化包.剛開始的時候不須要明白到底這些都是啥.只要不要隨便就刪掉它們就行了.
這些代碼算是設置好了軟件源,就跟咱們在ubuntu上設apt-get的源同樣.可是我在嘗試sr-speedbar這個包的時候發現安裝時會出一些問題,沒有辦法裝上去,在github上找到了sr-speedbar的代碼,發現因爲兼容性問題在最近的2013年才被修正過,而marmalade上的版本是2009年的,就是說若是用marmalade的話就沒有辦法正確安裝,我如今暫時還不會hack package中的代碼(況且這樣就失去了package打包安裝的意義),嘗試了一下byte-recompile等指令發現仍是不太會,在即將放棄這個插件之際想到,若是有別的源說不定已經更新了,由此在emacs wiki上又找到了下面的配置
1 (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") 2 ("marmalade" . "http://marmalade-repo.org/packages/") 3 ("melpa" . "http://melpa.milkbox.net/packages/")))
用上面這3行取代前面的2~3行代碼就能夠了,其實意思就是將melpa這個源加入package的軟件源而已.
加入Melpa這個源之後,運行list-packages這個指令時會發現顯著變慢了,而後能夠看到不少版本號都變成了日期,同時後面會有[github]等字樣,這是什麼意思呢?上melpa這個網站能夠看到,它的原理和marmalade是不一樣的,它基於版本控制系統自動生成package,就是說只要做者將代碼更新了commit之後,melpa就會更新,不須要再等做者打包放到marmalade上面,並且若是原做者早就忘了更新這個事的話還有其餘人幫忙更新代碼,這樣顯然是更好的方式,sr-speedbar就是這樣作的.
因此固然當即將melpa加入->更新->搞定!
如今emacs依然有不少人在爲其開發插件,能夠說其文件編輯功能依然是領先的.只是有很多老的插件沒有爲新版作更新,也須要整個社區的努力.
就寫這麼多吧,一次寫太多下次都不知道寫啥了,我就一個初學者,下回就從頭寫寫最基礎的東西吧,若是你以爲翻manual和wiki看英語太難受的話不妨看下個人翻譯.下回更新又不知何年何月了.