既然以前說過要寫我怎麼繼續折騰Emacs的,過了一個星期這裏就是第二篇了,忽然以爲我把blog這樣分節不是很好,每次可能要湊一些東西纔有該有的篇幅,並且說的東西可能東一點西一點,這樣一篇看下來不利於檢索,因此這一篇事後會按主題來寫,再也不用原來的形式,有一點寫一點,每次圍繞一個主題來,這樣比較好閱讀一些.python
今天寫一些Emacs我剛入門遇到的困難,這裏我拿目前很流行的sublime來與emacs作一個比較,看看emacs到底有哪些難處讓人很難上手:git
首先介紹下sublime text, 這個編輯器最近極爲流行,也確實很是的好用,別的不說,從默認安裝事後就會發現這個做者仍是很是懂碼農的,默認的配色就是molokai,雖然有些人不太喜歡這個配色,不過從vim的插件數量統計上就能夠看到它有多麼的流行.(固然咱們的emacs如此的強大,區區一個配色方案仍是有的.)通常來講寫代碼的話大部分人仍是喜愛偏暗的配色,比較不傷眼,並且顏色比較容易分辨.另外咱們從圖上也能看出來,sublime默認就有左邊的一個小型的文件管理器(或者說project瀏覽器),默認就有行號,右邊有代碼地圖,上面有tab,而這些都是默認配置!!不要小看默認配置,ruby on rails的一條最重要的原則就是約定大於配置,默認就把全部事情作好這一點過重要了,多少人想學emacs結果連鍵位都還不熟還得每天看着80年代機器同樣的界面,打開配置文件之後又是"徹底沒法理解"的語言,就這樣放棄了emacs.程序員
這個問題在emacs24版終於被部分解決了,以前一篇也提到過這個問題,如今有了melpa這個和github社區力量結合的東西,寫一個插件併發布變得十分簡單,並且插件能夠保持更新,這一點我以爲emacs已經作的不錯了,也正是由於emacs開發者不斷的努力,才使得emacs user仍是不斷有新人來學習和使用.今年來lisp方言的流行(好比我就是爲了寫clojure才用emacs的),各類小衆語言沒有IDE的支持,語言做者每每都傾向於先寫一個emacs的mode來使用,clojure-mode至今還是衆多開發人員的首選clojure編輯環境,全部的lisp方言基本都是這麼個情況.並且最近已經普遍普及的python和ruby在emacs上相應的插件都功能很是強大,好比python-mode我以爲使用熟悉之後效率比原來用pycharm還高.github
說了半天好像在說emacs的好話,可能也是我近期都比較傾心於emacs的緣故.在插件系統上emacs的缺點是emacs lisp實在學習成本比sublime用python作插件來的高一些.這樣將許多想按本身設想作插件的人拒之門外,不過我以爲相對於emacs如此高的學習成原本說emacs lisp反倒不該該是一個障礙,lisp我認爲做爲一個想提高本身的程序員都應該學習一下,就算知道一點皮毛最起碼也拓寬了您的眼界不是?vim
emacs的插件羣很大,並且不斷有新的插件加入進來,上圖是我接觸了一點時間安裝的一些插件,另外透露一下按我上一篇博客設置了源之後你就能夠看到有1400多個插件能夠安裝啦.這在全部編輯器中應該是最多的了吧.windows
這是我面臨的很大的問題,特別是因爲從vim轉過來的,常常會打着打着忽然ESC+hjkl,其實論純文本編輯效率來講vim確實比emacs強.可是emacs這個東西更加適用於寫,就是將腦中的內容敲入屏幕中這個過程.但不得不說是一個很是大的問題,我分一些點說,這塊實在很是想吐槽.瀏覽器
習慣了vim的人會以爲我這輩子在文本編輯器裏面不再用按上下左右四個鍵了,我甚至以爲相對於emacs user來講vim user更加適合HHKB這個神器,反正我最近本身仍是買了realforce 104(不過也有點打遊戲的因素在裏面,有些遊戲沒有小鍵盤很差打).ruby
咱們來看看emacs的上下左右: 上 -> Ctrl+p(revious) 下-> Ctrl+n(ext) 左-> Ctrl+f(orward) 右->Ctrl+b(ack) ,讓人無比的蛋疼有沒有?雖然能夠配置,可是有沒有想過其餘綁定在上面的健怎麼辦?我到如今仍是以爲這麼按很是難受,就算把Capslock改爲了Ctrl依舊讓小拇指的工做強度大大增長.解決方法是能夠裝個Evil插件,模擬vim用,我如今暫時還不想這麼幹.目前我又用回了上下左右+鼠標,只有大概一半的時間會用Ctrl+pnfb吧,我發現Meta+pnfb仍是比較好用的,但也不是很常常用.到時Ctrl+a移到行首和Ctrl+e移到行尾我的認爲比vim的0和$強一些.cookie
emacs的打開文件對新手簡直就是惡夢:輸入文件路徑打開文件!你能夠想像一個新手層層輸入文件的絕對路徑只爲編輯一個文件心中有多鬱悶麼?並且不像gvim尚且提供給你一個windows風格的打開文件對話框來讓你找文件,就算點菜單你也只能老老實實地輸入路徑,並且打開文件的快捷鍵也很囧Ctrl+x Ctrl+f (之後我仍是按官方的規範寫法C-x C-f來寫了).您就不能跟別的軟件通用一下麼?不過emacs爲了考慮通用性沒有加入mac上的cmd鍵和windows上的win鍵,我之後另開一篇寫emacs的無傷按鍵配置好了.併發
保存文件的快捷鍵是C-x C-s,其實大概用個十幾次也差很少熟悉了.
vim有dd , yy,J等極爲方便的操做,我我的反正已經離不開了,emacs的習慣有些不太同樣,這些操做在emacs沒有等價的快捷鍵,我只是列一下個人方式
dd刪除一行:我通常是用C-a移到行首,而後C-k C-k刪除一行的,按鍵比較繁瑣,可是也湊合了
p粘貼回來,這個emacs裏面用C-y(ank)
J鏈接2行,這個要先C-n移到下一行,而後M-^鏈接到上一行(Emacs的join是將本行與上一行鏈接,因此要先下一行)
吐槽了半天其實也沒用,我從此儘可能摸索和學習出來一套更加合理的按鍵配置再推薦給你們.
以前用vim也有這個問題,若是換了一臺機器,想讓vim從新回到適應的狀態須要很長時間的配置,須要把插件什麼的裝回來,總之就是各類麻煩.而若是我用sublime呢?直接用就能夠了,sublime很好的初始配置基本作到了開箱即用,而emacs想要下一個安裝文件就開始用,我以爲還不如開記事本.這個問題曾經讓我多次受挫,老是找不到一個好的方案.出現了網盤這個東西之後,能夠把配置文件存一份網盤備用,可是你只要升級一下或者更新一遍就須要從新放到網盤裏面.更況且若是你用U盤的話會面臨丟失的問題.
直到如今,我終於找到了一個解決方案,它就是git.雖然git嚴格來講就是一個版本管理工具,可是它確實是一個保存配置很是好的方案,我把個人配置文件放到了github上,不過只是做爲本身快速讓本身的emacs進入工做狀態,沒有什麼參考價值,地址在這裏 ,你們要學習emacs配置的話我以爲steve purcell的配置 應該是在地球上能找到的最好的配置了,其實就直接拿他的配置替代emacs starter kit我以爲也很是好.另外DEA 也是emacs中文網的一個做者的很是完備的配置.
要使用git來備份本身的emacs配置首先要會用git,這裏容我強烈推薦一個軟件SourceTree,一個免費的版本控制客戶端,我以爲在還不熟git命令行的狀況下能夠用它,雖然要求註冊atlassian帳號,可是軟件是免費的.git的基本操做我也不詳細說了,這裏寫一下個人gitignore,你們能夠結合別人的gitignore來防止git把一些沒什麼用的東西上傳上去.
1 .smex-items 2 /auto-save-list 3 /backups 4 .DS_Store 5 places 6 /url/cookies 7 *.elc 8 *.el#
其實仍是很是不完備,之後個人github上也會不斷更新
就這些吧,雖然還有不少要寫的,留到之後分主題來寫了.也容我多折騰一段時間積累些經驗.