轉自:http://www.cnblogs.com/heiyue/p/6225975.html
一直使用sourceinsight編輯C/C++代碼,sourceinsight是一個非常好用的編輯工具可以任意定位,跳轉,回退,本人一直 使用該工具做C/C++開發,sourceinsight能夠滿足我的大部分需求,但是有些功能沒有總覺得是一個缺憾。本文將補充這些非常好用的功能。
<1>.使用快捷鍵注釋,單行注釋,多行注釋,#if 0注釋
<2>.跳轉到當前文件所在的文件夾,並高亮選擇
<3>.使用quicker.em插件添加函數注釋,文件頭注釋,標記注釋等
<4>.多選項卡插件
下面分別對如何在sourceinsight中使用上述4個功能進行說明:
<1>.使用快捷鍵注釋,單行注釋,多行注釋,#if 0注釋
將文件 mycomment.em點此下載 放 到sourceinsight的Base工程的路徑下(一般是在C:\Documents and Settings\Administrator\My Documents\Source Insight\Projects\Base,或 C:\Users\kun\Documents\Source Insight\Projects),當然推薦存放到該目錄下,一般em文件是sourceinsight的宏語言文件,宏語言是 sourceinsight定義的一種語言,語法與C語言類似,sourceinsight提供了很多函數可供調用,以實現一些自定義的功能。em文件可 以放到任意位置,不一定要放在souceinsight的工程目錄下。
在souceinsight中選擇菜單 Project ->Open Project 彈出對話框如下,選擇打開Base工程:
再打開的Base工程的界面中,選擇Project Window窗口下面的添加工程文件按鈕,將mycomment.em文件添加到該Base工程中:
選擇菜單Options-> Key Assignments... 為宏添加一個快捷鍵:
mycomment.em文件中定義了3個宏,首先找到宏 Macro: WangQiGuo_MultiLineComment 該宏的功能是當執行之后會將所選擇的代碼塊的每一行前面添加//雙斜杠注釋,選擇這個宏之后,點擊按鈕Assign New Key ... 為該宏分配一個快捷鍵,此時會彈出一個對話框,這個時候只需要按鍵盤上面想要的快捷鍵就行了,例如我這里使用的是ctrl + / 這個快捷鍵,該快捷鍵會被檢測到並自動添加到Keystroks窗口中,表示添加成功了,此時點擊OK就設置完成了。
此時隨便找一個簡單的文件拖到souceinsight窗口中就可以測試了:
選中某一行,直接按ctrl + / 就會自動注釋,當然多行也是可以的。
用同樣的方法為mycomment.em文件中的另外兩個宏 Macro: WangQiGuo_AddMacroComment 與 Macro: WangQiGuo_CommentSelStr 定義快捷鍵,其中宏Macro: WangQiGuo_AddMacroComment 是將選中的代碼前后添加#if 0 與 #endif 注釋的。而宏Macro: WangQiGuo_CommentSelStr 是在選中的代碼前后添加 /* 和 */ 注釋的
為了便於記憶,我為Macro: WangQiGuo_AddMacroComment設置的快捷鍵是 ctrl + 3 原因是在大鍵盤上數字鍵3上有一個#號,而我們的注釋塊#if 0 ,#endif中有#號,而Macro: WangQiGuo_CommentSelStr的快捷鍵我設置的是 ctrl + 8 原因是大鍵盤上的數字鍵8上有一個*號。
宏塊注釋的效果如下圖:
多行注釋的效果如下圖:
<2>.跳轉到當前文件所在的文件夾,並高亮選擇
我們使用sourceinsight的時候是否會有這樣的需求:有時候代碼很多,我 需要找到sourceinsight中的某個源文件在資源管理器中的位置,但是可惜的是sourceinsight沒有這樣的功能,為此我google, 百度了很久都沒有一個好的解決方法,而實際上該功能的實現是非常簡單的:
將文件 openfolder.em點此下載 添加到sourceinsight的Base工程目錄,按照上面的方法,將openfolder.em添加到Base工程中,該文件中有一個宏 Macro: ToExplorerFolder 其功能就是當宏執行的時候在資源管理器中打開sourceinsight中的當前文件所在的文件夾,並高亮選擇該源文件,添加快捷鍵的圖如下:
我選擇的快捷鍵是ctrl + t
按ctrl + t之后,其執行的效果如下圖:
自動打開一個資源管理器窗口,並定位到我的文件test.cpp,實際上打開openfolder.em可以看到其實現是很簡單的,就是利用 sourceinsight提供的相關函數獲得當前文件的絕對路徑,然后將該路徑傳遞給命令行的explorer命令,執行該命令就可以 了,explorer的命令可以自行到cmd中試一下,openfolder.em中有注釋說明。
<3>.使用quicker.em插件添加函數注釋,文件頭注釋,標記注釋等
quicker.em點此下載 該文件據說是華為的一個員工寫的,主要功能是為函數接口添加注釋,為文件添加注釋,生成頭文件,生成標記注釋(添加類似這樣的注釋:/*added by xxx 2014-05-07*/) , 按照同樣的方法將該文件添加到Base工程中,該文件中定義了一個主要的宏Macro: AutoExpand 該宏支持很多擴展命令,下面是我為該宏配置的快捷鍵 ctrl + enter (推薦使用ctrl + enter):
該宏下面包含許多子命令,下面介紹常用的命令:
1.添加文件頭注釋:
命令:fi 解釋:file
2.添加函數說明注釋:
命令:fu 解釋: function
3.添加單行注釋:
命令:as 解釋: add start (添加之后:/* add by zhangsan, 20140504, Mantis號:d, 原因: */ )
命令:ms 解釋: modify start (添加之后:/* modify by zhangsan, 20140504, Mantis號:d, 原因: */ )
命令:ds 解釋: delete start (添加之后:/* delete by zhangsan, 20140504, Mantis號:d, 原因: */ )
4.添加標記注釋:
命令:ab 解釋: add begin (添加之后:/* add begin by zhangsan, 20140504, Mantis號:d 原因: */)
命令:ae 解釋: add end (添加之后:/* add end by zhangsan, 20140504 */)
命令:mb 解釋: modify begin (添加之后:/* modify begin by zhangsan, 20140504, Mantis號:d 原因: */)
命令:me 解釋: modify end (添加之后:/* modify end by zhangsan, 20140504 */)
命令:db 解釋: delete begin (添加之后:/* delete begin by zhangsan, 20140504, Mantis號:d 原因: */)
命令:de 解釋: delete end (添加之后:/* delete end by zhangsan, 20140504 */)
5.配置命令:
命令:co 解釋:config (修改相關配置信息)
如何使用呢,以為整個文件添加注釋為例,在源文件的任何地方輸入命令 fi 之后直接按ctrl + enter 如下圖所示:
在彈出的對話框中輸入對該文件的描述信息,例如我輸入的是“測試文件” , 直接點擊OK之后文件變成這樣:
可以看到在該文件的頭部自動生成了一塊注釋代碼其中包含了 文件名,負責人,文件說明,版權說明,生成時間,修改日志等
我們可以使用co命令修改這里的負責人,並且可以指定生成的語言是中文還是英文,同樣在源文件的任何地方輸入co之后直接按ctrl + enter 會彈出輸入框讓我們修改作者,選擇語言,該配置只需要設置一次,之后再使用其他命令只要生成的注釋里面包含作者信息的都會使用我們配置的這個作者名。
這里的版權說明只能自己手工修改代碼,打開quicker.em文件,找到macro InsertFileHeaderCN定義就會看到相關版權信息的說明,自己改一下就可以了:
同樣如果生成的是英文信息,請修改InsertFileHeaderEN 這個宏里面的相關代碼。
本段只演示了fi命令如何添加文件頭的注釋信息,其他的命令,例如fu命令添加函數頭的注釋信息,還有其他的命令添加相關形式的注釋信息,請自行 測試,要說明的是quicker.em中的這些命令都是擴展命令,其使用方法都是一樣的,在文件的任何地方輸入命令之后直接按ctrl + enter 就會出效果。例如添加函數注釋的效果如下:
直接在函數max前面輸入fu命令之后 按ctrl + enter 會提示輸入相關的注釋信息
下面的3個注釋是分別輸入as 之后按ctrl +enter , 輸入ms 之后按ctrl + enter , 輸入ds之后按ctrl + enter 之后生成的注釋效果:
有關quicker.em的其他命令請自行測試,另外還有一些沒有提到的命令,例如自動生成if塊,for語句塊,switch塊等,請百度搜索相關資料
<4>.多選項卡插件
把源碼包中的msimg32.dll和sihook.dll刪除,拷貝已經成功的這兩個文件就可以實現:
雙擊選項卡可以關閉某一個文件,在選項卡的左邊點擊下拉箭頭,可以對該插件設置,或者關閉該插件:
<5>.全選
在SI中,CTRL + a 這個快捷鍵被定義的功能不是全選,好像是全部保存功能。
你需要自己修改快捷鍵的定義,在Options->Key Assignments 然后在Command里面輸入Save,你就可以看到下面有File: Save All了,鼠標點擊一下File: Save All,將Save All 的快捷鍵CTRL + a刪除。
然后再到Command里面輸入輸入 Select All 為其設置快捷鍵CTRL + a
這樣CTRL + a就可以完成全選的功能了