將Emacs配置成一個C/C++的IDE編程環境
——by 0-&-1
1.寫在前面
Linux下的編程,業界多數人士並不喜歡,尤其是習慣了在windows下編程的程序員,認為windows的IDE各種好,而linux下沒有一個好的IDE ,估計很多人就是卡在這個門檻上了(PS:聽說Microsoft和google這種級別的公司的頂級程序員也都不用IDE的,用的是VIM和EMACS)。雖說那些linux牛人也都不用IDE的並且我也很想裝成一個牛人,但經過幾番折騰,本人還是比較習慣IDE,因為本人也是在windows的IDE下開始的程序生涯。“工欲善其事,必先利其器”,我想如果有個好用的IDE,那些linux牛人應該也不排斥吧。
在linux編程,首先要選擇開發工具,自然目光就投向了網上都說的兩大神器——VIM和EMACS,雖說他們只是編輯器,但由於超強的可定制度,已成為廣大linux工作者的首選。所以今天我就寫點本人使用Emacs和將Emacs配置成一個簡易IDE的過程和心得。不過說起配置IDE,CSDN上前輩吳垠有篇將VIM配置成IDE的文章,本人剛在linux編程時曾深深學習過,甚為折服。順便提一句,我曾經也是用VIM寫程序的,所以我的VIM看起來也是一個簡單的IDE,不過后面轉向使用Emacs了(聲明:本人無意加入VIM和Emacs之爭,選擇哪一個純屬個人習慣和喜好而已)。
網上很對人都說Emacs門檻比較高,入門難。其實也沒有說的那么誇張,可能是比VIM難一點,但是也是很容易上手的,只是好用不好用的問題。好了,閑話少說,下面進入今天的主題:打造Emacs。
本文對Emacs的說明有:
- Emacs的基本操作和組合鍵
- 啟動時的邊框和大小及在屏幕中的位置
- Emacs的基本常規設定
- Emacs的一些開發環境的設定(C/C++、script等等)
- Emacs的一些擴展配置(如改變光標的形狀等)
附:本文不會解釋lisp編程。
我的工作環境是ubuntu11.04,emacs是直接用sudo apt-get install emacs安裝的,版本是GNU Emacs 23.3.1。下面的例子基本都是在C語言做的演示。
下面對一些文中可能用到的名稱說明一下:
文中的路徑都是 ~/ 目錄,文中的一些路徑如,~/_emacs,~/work,之類的如果沒有就自己建一個,.emacs文件在~/.emacs。
先來兩張圖,我的emacs界面,o(∩_∩)o
圖一:
對照上圖的編號:
1:簡潔明了的buffer瀏覽和操作,以及一些文件瀏覽器,tag瀏覽
2:高亮代碼編輯區
3:自動補全
4:更好的文件瀏覽器
圖2:(debug的截圖)
對照上圖:
1:圖形化調試選項
2:變量查看區
3:源碼查看區
4:棧查看區
5:斷點查看區
2.Emacs的基本操作和組合鍵
1.Emacs的模式鍵定義
四個模式鍵:C------àctrl;M------àalt;s------àsuper(win);S----àshift
比如:C-x:表示ctrl+x(表示先按下ctrl鍵,然后按下x鍵
C-x c C-c:表示按下ctrl,然后按下x鍵松開后再按下c鍵
C-x k:表示按下ctrl,同時按下x和k鍵
2.Emacs的基本組合鍵
C-x C-c:退出Emacs
C-x C-s:保存當前buffer
C-x C-f:打開和新建文件
C-n:光標移到下一行
C-p:光標移到上一行
C-k:刪除一行
M-x:執行命令
其他的很多組合鍵我都進行了重新綁定,在下文中將有描述。
3.啟動時的大小和屏幕的中的位置
如圖語句表示在啟動后在屏幕的x=20,y=0處,高度為35寬度為100的Emacs。
說明:關於修改Emacs的啟動大小的問題,網上最多的描述是:有兩種方法①修該~/.Xdefault文件,然后運行xrdb ~/.Xdefault;②在~/.emacs中進行上圖所示修改;然后網上的說明是第一種方法更好。故在此進行一個說明,根據筆者的使用經驗,個人更喜歡用第2種方法,因為當用第一種方法后,每次修改了emacs的配置文件,都需要重新運行xrdb ~/.Xdefault,個人感覺比較煩,還有一些其他問題,這里就不例舉了,所以我選擇的是在.emacs配置文件中修改的方法。
4.Emacs的基本常規設定
按照一般的習慣,.emacs文件中一般不會放太多的設置信息,一般放一些emacs的搜索路徑的信息。這里我的emacs的配置文件,即lisp腳本都放在~/_emacs的文件夾中。
因此首先添加一個emacs的搜索路徑:
然后加載我們對emacs的設置腳本,在.emacs中添加如下語句:
圖中的幾個腳本文件將在下面分別解釋器用途。
①對emacs的基本設置,即base.el文件(在~/_emacs中),base.el文件中的部分內容如下:
設置默認工作目錄,即啟動emacs后所在的目錄,我這里設的是主目錄下的work文件夾,我幾乎所有的代碼都是在該目錄下完成的,在base.el中加上下面一句:
上面就是一些基本和重要的配置,我沒有多加說明,因為圖中幾乎每行語句都有注釋,所以大家應該能看懂的。O(∩_∩)o
5.C/C++的配置
下面講關於C/C++的配置,因為筆者在Linux下主要還是進行C/C++的開發。我的C/C++的配置主要是cycode.el文件中。
①開發時很重要的一步就是調試,因此,好的調試環境很重要,所以首先就是圖形化調試界面:
上面加載了兩個lisp的腳本文件,這兩個文件是直接在網上下的圖形化調試的文件。
②為了能高效的瀏覽和編輯代碼,需要安裝cedet插件(可以到官網下載),下載cedet后,在~/install目錄中解壓,然后看解壓出來的文件夾中的INSTALL文件,然后根據里面的描述安裝cedet即可(注:我所有的需要安裝的插件都在~/install目錄中,下面將不再重復說明),有一點需要注意就是安裝完成后不能刪除安裝后的文件,也就是需要保留解壓后的文件夾。
安裝完成后,即用下面的語句將我們需要的一些東西包含進來:
然后現在就可進行有關cedet的設置,這里只是用一個代碼折疊和展開為例:
③為了使使用更方便,即對上面cedet插件的一個補充,需要在安裝一個ecb插件。下載ecb后放到intall目錄中,解壓即可(僅僅是解壓),然后加上下面兩句:
④自動補全功能,為了實現自動補全功能,需要安裝兩個插件,這兩個插件是相輔相成的——auto-complete和yasnippet。先安裝auto-complete,下載后放到install目錄中解壓,然后進入解壓后的目錄,然后輸入make命令即可;下面安裝yasnippet,下載后放到install目錄,然后解壓即可;下面是幾句關於這兩個插件的配置:
⑤裝完插件后,下面是一些關於綜合的配置:
下面是兩種補全命令:
6.鍵綁定
到這里,已經基本完成了C/C++開發環境的搭建,為了使自己用emacs更方便,需要一些建綁定,即自己定義一些組合鍵,這是emacs配置中必不可少的一步,我的自定義組合鍵都放在cykbd.el文件中,下面是部分我的鍵綁定代碼:
根據一般的習用f1來表示幫助,即man命令:
這部分是對f1-f12的一些綁定:
這里的f6為調試,即用gdb調試,f7是調用make來對原文件進行編譯。
將f8為對buffer的一些常用操作:
用f12查看函數定義:
對ecb的鍵綁定:
對窗口的一些鍵綁定:
7.Emacs的擴展配置
上面已經完成配置emacs的基本工作,換句話說,到目前為止我們已經可以用emacs進行開發了,但是為了進一步的是emacs更符合我的習慣,又加了一個cyexpand.el這個配置文件,是emacs的功能更強大,cyexpand.el的部分設置為:
Emacs主題的設置:
將光標改成一個豎線:
8.總結
到此為止,已經將emacs打造成了開發c/C++的簡易IDE,由於筆者本身能力所限,文中的不足之處歡迎大家批評指正。我會將我整套配置文件和需要下載的插件都打包上傳,詳細的設置和編碼,大家可以下載后在使用過程中體會和深入,大家需要看的文件只有_emacs目錄下的base.el、cycode.el、cykbd.el、cyexpand.el四個文件,其他的腳本文件都是筆者從各種地方收集過來的大牛寫的各種配置。我的配置文件下載連接是: