標籤:style blog http io ar color 使用 sp strong
Source Insight是一款強大的代碼查看工具,本身支援擴充性很好。下面我們就介紹2個擴充用例。
1、快速開啟當前檔案所在的目錄,這個功能類似於eclipse的easyshell外掛程式,就是能快速定位到檔案所在的目錄,這個在代碼查看的時候是很有好處的。
按照以下步驟,首先進入【option】->【Custom Commands】
自定的命令名,個人發揮,關鍵是填入 explorer.exe %d,
設定快速鍵CTRL+T
也可以將自訂命令加入Menu菜單中
到此設定完畢,可以通過快速鍵CTRL+T,直接開啟當前檔案所在的目錄。
2、與eclipse中快捷方便的注釋反注釋相比較,sI是有點古板和不方便額。但是可以通過自訂的宏塊來改善這個情況。
首先,開啟Projcet->Open project,選擇base,可以看到utils.em檔案,將下列宏添加到該檔案中。
MultiLineComment宏功能就是可以注釋、反注釋代碼
[cpp] view plaincopyprint?
- macro MultiLineComment()
- {
- hwnd = GetCurrentWnd()
- selection = GetWndSel(hwnd)
- LnFirst = GetWndSelLnFirst(hwnd) //取首行行號
- LnLast = GetWndSelLnLast(hwnd) //取末行行號
- hbuf = GetCurrentBuf()
-
- if(GetBufLine(hbuf, 0) == "//magic-number:tph85666031"){
- stop
- }
-
- Ln = Lnfirst
- buf = GetBufLine(hbuf, Ln)
- len = strlen(buf)
-
- while(Ln <= Lnlast) {
- buf = GetBufLine(hbuf, Ln) //取Ln對應的行
- if(buf == ""){ //跳過空行
- Ln = Ln + 1
- continue
- }
-
- if(StrMid(buf, 0, 1) == "/") { //需要取消注釋,防止只有單字元的行
- if(StrMid(buf, 1, 2) == "/"){
- PutBufLine(hbuf, Ln, StrMid(buf, 2, Strlen(buf)))
- }
- }
-
- if(StrMid(buf,0,1) != "/"){ //需要添加註釋
- buf = Cat("//", buf)
- if(Ln == Lnfirst){
- buf = Cat(buf,"//removed by jhy")//注釋作者資訊
- }
- PutBufLine(hbuf, Ln, buf)
- }
- Ln = Ln + 1
- }
-
- SetWndSel(hwnd, selection)
- }
[cpp] view plaincopyprint?
- macro MultiLineComment()
- {
- hwnd = GetCurrentWnd()
- selection = GetWndSel(hwnd)
- LnFirst = GetWndSelLnFirst(hwnd) //取首行行號
- LnLast = GetWndSelLnLast(hwnd) //取末行行號
- hbuf = GetCurrentBuf()
-
- if(GetBufLine(hbuf, 0) == "//magic-number:tph85666031"){
- stop
- }
-
- Ln = Lnfirst
- buf = GetBufLine(hbuf, Ln)
- len = strlen(buf)
-
- while(Ln <= Lnlast) {
- buf = GetBufLine(hbuf, Ln) //取Ln對應的行
- if(buf == ""){ //跳過空行
- Ln = Ln + 1
- continue
- }
-
- if(StrMid(buf, 0, 1) == "/") { //需要取消注釋,防止只有單字元的行
- if(StrMid(buf, 1, 2) == "/"){
- PutBufLine(hbuf, Ln, StrMid(buf, 2, Strlen(buf)))
- }
- }
-
- if(StrMid(buf,0,1) != "/"){ //需要添加註釋
- buf = Cat("//", buf)
- if(Ln == Lnfirst){
- buf = Cat(buf,"//removed by jhy")//注釋作者資訊
- }
- PutBufLine(hbuf, Ln, buf)
- }
- Ln = Ln + 1
- }
-
- SetWndSel(hwnd, selection)
- }
儲存後,開啟新的工程:options->key assignments(設定快速鍵)
到此為止,我們在代碼中使用ALT+X的快速鍵看看,效果如下:
3、我們再來貼一個快速插入時間的宏,類似於UltraEdit中的F7快速鍵功能
[cpp] view plaincopyprint?
- macro MonthToName(MonthNum)
- {
-
- if (MonthNum== 1)
- return "Jan"
- if (MonthNum== 2)
- return "Feb"
- if (MonthNum== 3)
- return "Mar"
- if (MonthNum== 4)
- return "Apr"
- if (MonthNum== 5)
- return "May"
- if (MonthNum== 6)
- return "Jun"
- if (MonthNum== 7)
- return "Jul"
- if (MonthNum== 8)
- return "Aug"
- if (MonthNum== 9)
- return "Sep"
- if (MonthNum== 10)
- return "Oct"
- if (MonthNum== 11)
- return "Nov"
- if (MonthNum== 12)
- return "Dec"
- }
-
- macro DisplayDate()
- {
- szTime = GetSysTime(1)
- Day = szTime.Day
- Month = szTime.Month
- Year = szTime.Year
- if (Day < 10)
- szDay = "[email protected]@"
- else
- szDay = Day
- szMonth = MonthToName(Month)
-
- hbuf = GetCurrentBuf()
- SetBufSelText(hbuf, "@[email protected] @[email protected], @[email protected]")
- }
[cpp] view plaincopyprint?
- macro MonthToName(MonthNum)
- {
-
- if (MonthNum== 1)
- return "Jan"
- if (MonthNum== 2)
- return "Feb"
- if (MonthNum== 3)
- return "Mar"
- if (MonthNum== 4)
- return "Apr"
- if (MonthNum== 5)
- return "May"
- if (MonthNum== 6)
- return "Jun"
- if (MonthNum== 7)
- return "Jul"
- if (MonthNum== 8)
- return "Aug"
- if (MonthNum== 9)
- return "Sep"
- if (MonthNum== 10)
- return "Oct"
- if (MonthNum== 11)
- return "Nov"
- if (MonthNum== 12)
- return "Dec"
- }
-
- macro DisplayDate()
- {
- szTime = GetSysTime(1)
- Day = szTime.Day
- Month = szTime.Month
- Year = szTime.Year
- if (Day < 10)
- szDay = "[email protected]@"
- else
- szDay = Day
- szMonth = MonthToName(Month)
-
- hbuf = GetCurrentBuf()
- SetBufSelText(hbuf, "@[email protected] @[email protected], @[email protected]"
轉:
[轉]Source Insight使用小技巧小結