本文中用eclipse代指eclipse CDT。
本文內(nèi)容基于當(dāng)前最新的eclipse neon版本, 請于eclipse官網(wǎng)下載,并持續(xù)跟蹤eclipse最新版本。
Install
由于windows和mac系統(tǒng)上的安裝相對簡單,下面的安裝過程基于linux系統(tǒng)。我個人在ubuntu14.04下經(jīng)過測試。
Eclipse安裝之前需要先安裝JDK。
Install JDK
- Download JDK
http://www.oracle.com/technetwork/java/javase/downloads/index.html
- Install JDK
sudo mkdir -p /usr/local/lib/java
sudo tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/lib/java
cd /usr/local/lib/java && sudo ln -s jdk1.8.0_91 default
- Export
JAVA_HOME
andPATH
echo 'export JAVA_HOME=/usr/local/lib/java/default' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
- Verify
$ java -version
Install Eclipse
- Download eclipse
http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr
- Install eclipse
sudo mkdir -p /usr/local/eclipse
sudo tar zxvf eclipse-cpp-neon-R-linux-gtk-x86_64.tar.gz -C /usr/local/eclipse
cd /usr/local/eclipse && sudo ln -s eclipse default
- Add eclipse to
PATH
echo "export ECLIPSE_HOME=/usr/local/eclipse/default" >> ~/.bashrc
echo "export PATH=$ECLIPSE_HOME:$PATH" >> ~/.bashrc
source ~/.bashrc
- Verify
eclipse &
Global Configuration
初次打開eclipse,如下圖。勾掉右下角的Always show Welcome at start up
,然后點(diǎn)擊右上角的Workbench
圖標(biāo)進(jìn)入主界面。
點(diǎn)擊菜單欄 Window -> Preferences
,在里面進(jìn)行eclipse的全局配置。
設(shè)置字體
有美感的程序員裝好IDE后的第一要事肯定是先配置一個好字體。編碼最好使用等寬字體,如果你是在mac系統(tǒng)上,那么默認(rèn)的字體就很不錯;而Ubuntu下自帶的”Ubuntu Mono“也很漂亮;Windows上自帶的等寬字體"Courier"則有些中規(guī)中矩。更換字體時看到名字里面帶有mono
的基本都是等寬字體。
如果想選跨平臺的第三方字體,值得推薦的有”Inconsolata“,”Consolas“和”Source Code Pro“。這些字體系統(tǒng)沒有自帶,需要自行安裝。
本文推薦”Source Code Pro“,它是Adobe發(fā)布的一款面向程序員的非常漂亮的開源字體集,可以在github下載。
安裝字體
- Windows系統(tǒng):
將下載下來的”source-code-pro/ttf“目錄里的字體文件拷貝到系統(tǒng)盤下”windows/fonts“目錄下即可完成安裝;
- Linux系統(tǒng):
在個人主目錄下建立
.fonts
目錄,將下載下來的”source-code-pro/ttf“里面的字體文件拷貝進(jìn)去即可;
- Mac系統(tǒng):
打開 ”Finder -> 應(yīng)用程序 -> 字體冊“; 添加下載下來的”source-code-pro“目錄,即可完成安裝;
安裝好字體后,重啟eclipse。
修改字體
- ** Window -> Preferences -> General -> Appearance -> Colors and Fonts -> C/C++ -> Editor -> C/C++ Editor Text Font **
點(diǎn)擊Edit,選擇自己喜歡的字體;字號一般設(shè)置為10或者11比較合適;
修改快捷鍵
- ** Window -> Preferences -> General -> Keys **
在上面位置進(jìn)行快捷鍵設(shè)置,我一般直接使用eclipse默認(rèn)的。
在ubuntu下,eclipse常用的復(fù)制行的快捷鍵Ctrl + Alt + Down
和系統(tǒng)默認(rèn)的切換工作區(qū)的快捷鍵沖突了。由于我一般不用ubuntu的擴(kuò)展工作區(qū),所以我會把ubuntu自身的快捷鍵進(jìn)行修改。具體在 系統(tǒng)設(shè)置 -> 鍵盤 -> 快捷鍵 -> 導(dǎo)航 -> 切換至上側(cè)工作區(qū)
以及 切換至下側(cè)工作區(qū)
,將這兩個快捷鍵刪除,或者改成別的。
設(shè)置代碼風(fēng)格
代碼風(fēng)格是一個仁者見仁的事情,下文的所有配置都是我比較喜歡的風(fēng)格,你可以根據(jù)自己的口味進(jìn)行調(diào)整。
- ** Window -> Preferences -> General -> Editors -> Text Editors **
將Displayed tab witdth
設(shè)為4; 勾選上Insert spaces for tabs
以及 Show line number
。
- ** Window -> Preferences -> C/C++ -> Code Style -> Code Templates **
在這里配置各種默認(rèn)代碼模板,包含文件頭注釋模板、函數(shù)頭注釋模板、以及各種文件模板。例如我一般會在這里對C++默認(rèn)的頭文件模板進(jìn)行修改,去掉文件頭注釋,去掉文件結(jié)尾對”include guard“的重復(fù)注釋等等。
在這里可以點(diǎn)擊Export
將自己配置好的Code Templates導(dǎo)出去,以便備份和共享。
- ** Window -> Preferences -> C/C++ -> Code Style -> Formatter **
在這里設(shè)置默認(rèn)的代碼格式化風(fēng)格。由于我個人喜歡大括號單獨(dú)一行對齊,所以一般基于eclipse自帶的BSD/Allman
模板進(jìn)行修改。
如上圖,在Active profile中選擇BSD/Allman后,點(diǎn)擊Edit進(jìn)行修改。我一般的修改如下:
- Indentation:
- Tab policy : 改為 ”Spaces only“
- Statements within switch body : 打上勾
- Declarations within namespace definition: 打上勾
- Empty lines : 打上勾
- Braces:
- Initializer list : 改為 ”Same line“
- New Lines:
- before colon in constructor initialzer list : 打上勾
- Control Statements:
- Insert new line before catch in a try statement : 打上勾
- Keep simple if on one line : 打上勾
- Line Wrapping:
- Function declarations -> Constructor initializer list :
- Default indentation for wrapped lines : 設(shè)為0
- Default indentation for initializer lists : 設(shè)為0
最后對設(shè)置好的code formatter起個新名字。可以在這里點(diǎn)擊Export
將配置好的formatter導(dǎo)出去,以便備份和共享。
- ** Window -> Preferences -> C/C++ -> Code Style -> Name Style **
在 Code -> Include Guard
里面,將Include guard macro name
設(shè)置為Unique identifier
;
這樣eclipse自動生成的頭文件模板里面,頭文件的include guard默認(rèn)為一個隨機(jī)的全局唯一UUID,這樣設(shè)置的原因是當(dāng)你重命名頭文件或者修改頭文件路徑后,不用再去手動修改頭文件的include guard,避免include guard不小心重名導(dǎo)致的難以定位的編譯問題。
另外在當(dāng)前頁面下,可以配置C++頭文件名、源文件名以及測試文件名之間的規(guī)則關(guān)系,見下圖。在開發(fā)的過程中遵守這里配置的文件命名規(guī)范,會有很多好處。首先eclipse靠這里的文件命名規(guī)則關(guān)聯(lián)類的頭文件和實(shí)現(xiàn)文件。當(dāng)你的類名、頭文件名、實(shí)現(xiàn)文件名和測試文件名按照上圖中的配置規(guī)則保持一致,重命名類名后,eclipse會自動關(guān)聯(lián)修改頭文件名,實(shí)現(xiàn)文件名和測試文件名以及所有對頭文件的include路徑名。
這里我一般會將 Files -> C\++ Test File
中 Prefix
設(shè)置為"Test", Suffix
設(shè)置為".cpp",讓測試文件名稱保持 ”Test*.cpp“。
- ** Window -> Preferences -> C/C++ -> Code Style -> Organize Includes **
該標(biāo)簽下設(shè)置和頭文件包含相關(guān)的選項(xiàng)。Eclipse默認(rèn)對自動添加的頭文件按照設(shè)置的規(guī)則進(jìn)行排序。如果不想要自動排序,那么就勾選掉 Allow reordering of includes
。
在 Organize Includes -> Include Style
中可以設(shè)置頭文件包含規(guī)則和順序。
在 Grouping
標(biāo)簽頁里面,我一般會設(shè)置所有的頭文件類型以尖括號包含(將Use angle brackets
打鉤)。另外,設(shè)置系統(tǒng)頭文件和前面所有的空一行(選擇System Header
,將Separate from previous includes by a blank line
打鉤);
在 Ordering
標(biāo)簽頁中,我會調(diào)整頭文件的包含順序,將系統(tǒng)文件放在最后,如下圖:
- ** Window -> Preferences -> C/C++ -> Editor -> Syntax Coloring **
該標(biāo)簽下可以設(shè)置語法配色方案。我一般只改一點(diǎn),就是宏引用的顏色。因?yàn)楹暌话惚晃易鳛檎Z法糖來來用,所以希望其色彩和關(guān)鍵字比較像(偏暗紅,類似關(guān)鍵字,但有所區(qū)別)。修改如下:
在 Code -> Macro references
下,將Enable
和Bold
打鉤,然后點(diǎn)擊Color
,將顏色調(diào)為#BF4040
。
Others
- ** Window -> Preferences -> C/C++ -> Editor -> Scalability **
在該標(biāo)簽里面可以設(shè)置eclipse解析文件規(guī)模的一些選項(xiàng)。最關(guān)鍵的一個是Enable scalability mode when the number of lines in the file is more than
用來設(shè)置默認(rèn)最大完全解析的文件行數(shù),默認(rèn)是5000。對超過5000行的文件eclipse為了避免消耗資源過多將會只進(jìn)行部分解析,至于解析哪些,可以在下面進(jìn)行設(shè)置。在eclipse下開發(fā),不建議產(chǎn)生大文件。如果是閱讀遺留代碼,可以根據(jù)自己系統(tǒng)資源能力將5000改的更大。
- ** Window -> Preferences -> C/C++ -> Editor -> Templates **
在這里New一種新的代碼template,取名cn,Pattern設(shè)為${file_base}::
。這樣當(dāng)你類名(假如MyClass)和文件名(MyClass.cpp)相同的時候,你在文件內(nèi)敲cn會自動補(bǔ)全為MyClass::
。這樣在實(shí)現(xiàn)文件內(nèi)寫類的成員函數(shù)實(shí)現(xiàn)時會比較方便。
這里還可以配置其它代碼塊模板,配置好后可以點(diǎn)Export
將其導(dǎo)出。
- ** Window -> Preferences -> C/C++ -> File Types **
這里可以增加新的文件類型。我一般會用*.tcc
類型的文件做模板的實(shí)現(xiàn),所以在這里增加新的文件類型。點(diǎn)擊New,創(chuàng)建新的文件類型*.tcc
,Type設(shè)為C\++ Header File
。
- ** Window -> Preferences -> General -> Workspace **
關(guān)于workspace的設(shè)置,有兩個可以關(guān)注。一個是設(shè)置eclipse構(gòu)建前自動保存所有文件Save automatically before build
;另一個是當(dāng)代碼注釋中出現(xiàn)中文亂碼時,嘗試修改最底下的 Text file encoding
,將其改為GBK
。建議最好還是不要用中文注釋的好,避免編碼不一致帶來的亂碼問題。
- ** 導(dǎo)出配置 **
前面介紹的Code Templates, Code Formatter, Editor Templates需要單獨(dú)導(dǎo)出成xml文件!
其余的主要配置,可以通過 File -> Export -> General -> Preferences
進(jìn)行導(dǎo)出。勾選你要導(dǎo)出的選項(xiàng),然后將其導(dǎo)出為一個epf文件。
關(guān)于前面介紹的Code Formatter和全局配置我已經(jīng)導(dǎo)出了,上傳在github。
其中g(shù)lobal-config.epf是全局配置,選擇 File -> Import -> General -> Preferences
將其導(dǎo)入eclipse。
code-formatter.xml是formatter的模板,在Window -> Preferences -> C/C++ -> Code Style -> Formatter
中點(diǎn)擊Import
將其導(dǎo)入。