作者: 陳斌(redguardtoo)
更新時間:
原創時間:
很容易.一年多前我還在Vi陣營,偶爾使用Emacs還總是忘記`退出`(C-x C-c)的快捷鍵,但是一年后我跨入高手行列.
現在網上很多中文文章都是和你強調Emacs有多牛,以激發你的興趣.最有名的大概是王垠的Emacs是一種信仰!世界最強編輯器介紹.
這些好文章讓你激動,你因此定下來一個偉大崇高的目標(掌握神一樣的編輯器Emacs),接下來的關鍵就是執行了(如何高效地學習Emacs).
國內關于"如何做"的文章不多,那些涉及到"如何做"的文章,涉及細節比較多,而談一般方法論的較少,所以本文的重點就是談談一般方法,
Table of Contents
- 1 為什么要學習Emacs(可選)
- 1.1 和單純的IDE比較,Emacs可以做的更多更快
- 1.2 使用Emacs可以立刻開始工作.
- 1.3 一年指的是充分利用空閑時間,一年后自然水到渠成
- 1.4 態度決定一切
- 2 讀官方教程
- 3 以興趣和急需解決的問題作為切入點
- 4 在twitter上以"emacs :en"定期搜索
- 5 在google plus上搜索emacs相關內容
- 6 訂閱Emacs牛人的博客
- 7 在stackoverflow上搜索emacs相關的討論
- 8 github是我的新歡
- 9 使用google快訊
- 10 將emacs配置管理起來
- 11 將emacs相關資料管理起來
- 12 訂閱EmacsWiki
- 13 到youtube上看emacs相關的視頻
- 14 站在巨人的肩膀上
- 15 認識到Emacs是一種生活方式
- 16 小結
1 為什么要學習Emacs(可選)
簡單談談,因為我本文的重點是"怎么做",而不是"為什么".
1.1 和單純的IDE比較,Emacs可以做的更多更快
這里的更多并不是和IDE比支持某編程語言的特性更多,而是指Emacs內可完成的通用的任務比較多更快捷.
例如,我做開發時碰到難題,需要實時上IRC請教國外高手(工作流包括粘貼我的代碼到pastebin或者gist,在irc內提問,看網頁,將解決方案粘貼回來),emacs集成了IRC工具和瀏覽器(w3m),操作就很方便.
我使用Visual Studio有11年了,Firefox使用我也是高手,相信我,大多數情況下還是Emacs更快.
當然口說無憑,請看以下兩段高手操作的youtube視頻:
- Writing PPT with org-mode and beamer in Emacs
- Emacs Power: Can your editor do THIS!
1.2 使用Emacs可以立刻開始工作.
軟件是開源的,配置是純文本,而且軟件的資源消耗較小,安裝包很小(命令行版本的安裝包30M左右),所以在任何環境下我都可以用Emacs開始工作,overhead很小.
這在大項目中特別明顯,例如,某項目我需要同時編輯perl,java,C,bash,SQL,需要遠程編輯在美國服務器上的代碼,網速也不是很快.Emacs的優勢就體現出來了.
1.3 一年指的是充分利用空閑時間,一年后自然水到渠成
我沒有說一年內必須什么事也不干專門學Emacs,懸梁刺股沒有短期利益回報的學習方法是我最反對的.
我贊成的方法是,開始階段花極少的時間得到巨大的回報(如下文談到的Org-mode),以興趣做導向.
每天花多少時間取決于個人需要和如何管理,以我為例,每天八小時上班時間中有很多零碎時間可以利用,上下班通勤時間有一個小時可以利用.
1.4 態度決定一切
長期來說你能取得的成就是由態度決定的.
優秀人士的兩個特點:
- 勇于接受新事物
- 追求更強的過程本身就是目的;
2 讀官方教程
打開Emacs后,按Alt-x,輸入help-with-tutorial,回車.
第一步,僅需要半小時.關于Emacs的多難學的謬論可以休矣,因為半小時的代價微不足道.想想你去年有多少小時白白虛度了吧.
3 以興趣和急需解決的問題作為切入點
因為如果微小的努力能得到巨大的回報,你就會越學越有樂趣,進入一個感情上的正反饋.
長期來說,在任何領域要成為高手,興趣是最重要的.
以我為例,我急需GTD的工具,emacs的而org-mode是世界上最好的GTD工具(沒有之一).在使用org-mode大大節省了時間后,對于emacs愛屋及烏,興趣高漲了100倍.
4 在twitter上以"emacs :en"定期搜索
twitter人多,更新結果快
5 在google plus上搜索emacs相關內容
google plus技術geek比例高,我推薦Xah Lee,他的個人網站為李殺網. Xah Lee有在googleplus上有兩個賬戶,我建議使用我推薦的帳號.
6 訂閱Emacs牛人的博客
最好的是Planet Emacsen,是多個Emacs博客的集合
7 在stackoverflow上搜索emacs相關的討論
google "emacs-related-keywords site:stackoverflow.com"
我會定期搜索,同樣的帖子反復精讀.因為stackoverflow上的討論質量很高.
8 github是我的新歡
github的版本控制服務很好.現在它的社區化傾向越來越強了,我喜歡.
例如,可以看一下https://github.com/languages/Emacs%20Lisp上最酷的Emacs插件.
9 使用google快訊
每周一次給我郵箱發一次摘要,僅限最佳結果.這樣的話信息質量可以得到保證
10 將emacs配置管理起來
我將emacs配置納入github的版本控制,見https://github.com/redguardtoo/emacs.d.
版本控制可以是認為一個集中式的知識管理,任何時刻任何地點對Emacs配置的修改都要及時上傳和合并(merge).這點對于個人能力的長期積累很重要.
11 將emacs相關資料管理起來
我將我收集的所有Emacs相關資訊都放在dropbox的服務器上,然后用dropbox的軟件同步資料到我的智能手機和我的IPad上,這樣我可以充分利用空閑時間學習.
我目前在讀<An Introduction to Programming in Emacs Lisp by Robert J. Chassell>和<Writing GNU Emacs Extensions by Bob Glickstein>.
請點擊這里注冊dropbox帳號.注意,dropbox客戶端完全可以在國內使用,雖然訪問其首頁可能有點問題.
12 訂閱EmacsWiki
EmacsWiki是一個社區維護的Emacs文檔,可以認為是最酷插件和最佳實踐的集合點.
13 到youtube上看emacs相關的視頻
例如,我就是看了Google Tech Talks上這個Org-mode作者的介紹而愛上org-mode.
14 站在巨人的肩膀上
這方面我是個負面榜樣.開始階段我還是抱著玩的心態,喜歡到處找有趣的配置粘貼到我的.emacs中去.
完全是浪費時間!
我應該一開始就照抄 世界級大師Steve Purcell的emacs配置(注意,支持Emacs23.1及更高版本)
我請求你不要重復我的錯誤,不要質疑,不要創新,跟著Steve Purcell做.
順便說一下,Steve Purcell的配置需要git才能下載,這意味著你需要安裝git和cygwin(限于windows平臺).這是買一送二,我又給你介紹了兩個高手必備的世界級工具.
考慮到我的熱情會被認為是傳銷,而我的嚴密邏輯和事實論證可能被忽視,我有必要簡單明了地說明推崇Steve Purcell原因:
- 已有很多人推薦他的配置(請google)
- 能力出眾,背景相當好(我已調查過他的Linkedin Profile)
- 人近中年,心智相當成熟(例如,他只在Mac下使用Emacs24,但是能夠根據我在Linux/Cygwin下使用Emacs23的需求做調整).
- 工程經驗相當豐富(看他的代碼一目了然)
- 勇于求新,不斷再嘗試新插件,在他這個年齡極為突出
以上事實在我給出的網址中稍作調查即可得知.
15 認識到Emacs是一種生活方式
如果你照著我以上的做法做,就可以認識到Emacs牛人其他也很牛.Emacs實際上體現了牛人的一種生活方式.
像那些牛人一樣思考,像那些牛人一樣做事,不要懷疑,不要猶豫,很快你就會發覺自己也開始有些牛人的氣質了.
例如,Sacha Chua就是這樣一個有牛人氣質的女孩,這是她的Youtube錄像.
更直白地說,我認為Emacs不僅僅是一種工具,它可以提升人的素質,讓人學會謙卑.
至少對我而言,當我明白了Emacs的其樸素的設計思想和其強大的功能后,我的感覺是敬畏,因為我做不出這樣的軟件.
我既沒有能力把一個編輯器設計成一個人工智能語言Lisp的平臺,也不可能花30多年的時間對一個軟件精益求精.
16 小結
看到這里你應該很清楚了,我的方法就是以興趣作為切入點,以天才作為榜樣,大量閱讀,大量練習.
如果你想獲得真才實學,想變得更強,變得更優秀,這就是唯一的方法,唯一的捷徑.
這個方法不是我發明的,古往今來的杰出人士都是這么做的,如果你需要一點"更科學的"論證,請參考一萬小時天才理論.