2012年8月12日 星期日

普通人(非程式設計師)的.emacs設定檔

Emacs最麻煩的地方大概就是在使用前得先搞定設定檔(~/.emacs、~/.emacs.d等)....沒有設定檔,Emacs可能會比notepad還難用。

這篇能讓你得到一個很基礎的.emacs設定檔,快速進入狀況並能開始用Emacs跟org-mode寫點東西,省得浪費不該浪費的時間,慢慢摸索出一堆不值得花時間重新發現的東西。

網路上能找到的Emacs設定檔都是程式設計師寫的,裡面一堆我這輩子大概絕對用不到的設定,加上很多設定複雜到無從下手改起(.emacs設定檔越多,啟動會越慢,所以能省則省),而且我不太能接受每天用的設定檔卻連自己都無法理解。於是只好自己慢慢生出一個一般使用者會用到的Emacs設定檔,而不是程式設計師所打造,所以我沒有設定縮排、語法高亮、編譯一類的東西,不過我想以一個不會寫程式(tm)的凡人來說,這個設定檔應該已經很實用了,自己也靠了這個Emacs設定檔撐過了一學期。

Org-mode應該是使用或者改用Emacs的一個很大的拉力吧,沒有Org-mode,Emacs使用者搞不好會少一半(當初在抉擇要學Emacs跟Vim時,就是Org-mode把我拉向Emacs這邊)。Org-mode是Emacs的一個主模式,想一窺Org-mode的強大,看看這段最基礎的Org-mode教學影片:

(其實Org文件只是普通文字檔,用Vim也能開(但就不會有標題折疊一類的功能),把檔名命名成.org結尾,下次開啟Emacs就會自動啟用Org-mode)

有了Org-mode的加持,於是現在寫日記可以弄成這樣:
比寫在blog或日記本上都還要方便,尤其方便日後回顧、整理。


或者拿一個Org-mode文件來代替之前Gnome上的桌面便條紙(KDE上找不到替代品,不過現在這樣就夠方便了):

學Emacs有什麼好處?嗯......,以一個不會寫程式的普通學生來說,個人覺得還蠻值得。寫日記、寫報告、整理思緒、GTD幾乎都用Org-mode完成(想要在手機上閱讀/整理Org文件還有MobileOrg能用,但我沒試過。),也裝了Twittering-mode上Twitter。

現在每次開機必定常駐工具列的兩個程式就是Firefox跟Emacs,然後Firefox裝了Firemacs好讓Firefox的key binding跟Emacs相同。

為何不學更普及、幾乎到哪台主機上都必定會有、而且不需麻煩配置就能使用的Vi/Vim?嗯...我的原因是:
  1. 對平常幾乎都只處理中文文件、很少寫程式或者處理英文文件的使用者來說,Vi的操作設計(Normal/Insert Mode....etc)沒有優勢,試著每按一次esc就要先切換一次輸入法就知道那有多彆扭了,當然這對本來就已經很熟悉Vi的使用者來說並不是問題。
  2. 當然,就是Org-Mode。


那麼,開始吧:
1.我的Emacs設定檔在哪裡?
直接在~/下新增一個空白檔案,取名叫.emacs,可以直接把下面這行貼進終端機裡:
cd ; touch .emacs
然後~/.emacs就是設定檔了。往後啟動Emacs時會自動讀取.emacs。

2.最基礎的常用快速鍵與操作請看stevenchan製作的簡易速查表:
以下是個人用了一整個學期後邊用邊調出來的.emacs,自己用得還蠻舒適。





照樣,不喜歡的可以手動更改。感謝網路上所有熱心Emacser的分享。

注意,此設定檔僅在ubuntu10.04+GNU Emacs23與Mint 12 KDE+GNU Emacs 23測試過,不保證其他版本能夠正確執行,如有錯誤(如Emacs24的Color-theme設定與Emacs23有些許不同)請自行調整。

.emacs中有些絕對路徑(如/home/kuanyui/)請自行更改 ,因為有時相對路徑不知為何在.emacs中會失效。

這個設定檔中,除了solarized-theme配色外,.emacs.d/lisps已經預先加裝了
  • Org-mode
  • Markdown-mode
  • popup-kill-ring
  • undo-tree
  • auto-complete(AC)
  • twittering-mode(上Twitter用,需自行安裝GnuPG)
  • evil-mode(模擬Vim操作用,預設不使用,有需要的請自行從.emacs中找到該行取消註釋)
至於怎麼使用看一下.emacs裡的註釋大概沒什麼問題。

tar.bz2包中已經把所有el編譯成elc,內含較新版的Org-mode跟Markdown-mode,如覺得心裡不夠踏實可自行將lisps資料夾中的所有.elc檔刪掉再用 M-x byte-compile-file自行編譯(有些資料夾裡面有Makefile就直接make),或是自行Google找到該el再手動安裝,都很容易取得。
Emacs 24的話Color-Theme似乎有內建不用另外裝,請自行Google因為我也不清楚。

不過Emacs用到現在還有幾點不滿,目前也還不知該如何解決,首先是內建那個ansi-term非常容易當機,而且對許多CLI程式支援度頗差,如man。再來是我的flyspell-mode(拼字檢查)一直搞不定,最後還被我搞掛,字典完全不能用。其他內建的拼字檢查我也一直搞不懂該怎麼使用orz。

8 個回應:

李其樺 提到...

拼字檢查,試試看加入這段
;; aspell
(setq ispell-program-name "aspell"
ispell-extra-args '("--sug-mode=ultra"))
(setq ispell-dictionary "american")

李其樺 提到...
作者已經移除這則留言。
kuanyui 提到...

[To 李其樺]
拼字檢查可以了耶,萬分感謝~

但請問zshrc那段的作用是什麼?稍微試了一下,只有prompt改了而已,man等程式還是有問題。

李其樺 提到...
作者已經移除這則留言。
李其樺 提到...

對了 有些 color theme 會把 ansi-term掛。

kuanyui 提到...

woman....XDD

嗯...試了一下most,在emacs的terminal還是運作不正常orz

我的prompt沒有很複雜,改成簡單的prompt還是一樣,應該不是那問題。

李其樺 提到...
作者已經移除這則留言。
kuanyui 提到...

有可能是因為我用Emacs 23...