###### tags: `聯鴻`
# Source Insight 4.0
## [Source Insight 4.0 破解方法](https://www.twblogs.net/a/5c30dae2bd9eee35b21c9cca)
安裝程序下載
在官網上下載Source Insight 4.0的安裝程序.
30天的試用安裝
首次啓動選擇授權方式,這裏選擇第二個選項,30天試用。
點擊下一步,輸入名稱、公司或組織名稱、郵箱信息,申請30天的試用。
輸入完成後,點擊下一步,直到安裝完成。
修改sourceinsight4.exe
用16進制編輯器(sublime text)打開sourceinsight4.exe文件,找到c800 0000 742a 83bc 2408 這一段,修改74 爲 eb。
修改license文件
打開 C:\ProgramData\Source Insight\4.0\si4.lic
將Expiration=”2017-XX-XX”中的2017修改爲2030,試用期將永不過期。
啓動界面如下:

過期修改:
修改license文件
打開 C:\ProgramData\Source Insight\4.0\si4.lic
修改Date

## 新增.ino檔

**結尾處加上`,*.ino`**

## [Source Insight中的多行注释快捷键](http://blog.chinaunix.net/uid-9672747-id-5818872.html)
步骤如下: 实现“//”的多行注释:
一、Project ---> Open Project 中打开Base项目(source insight自带的工程),新建一个**MultiLineComment.em**的文件,添加以下内容后保存:
``` cpp
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) !="/"){ //需要添加注释
PutBufLine(hbuf, Ln, Cat("//", buf))
}
Ln = Ln + 1
}
SetWndSel(hwnd, selection)
}
```
## [Source Insight 外掛](https://www.itread01.com/content/1544710744.html)
<1>.使用快捷鍵註釋,單行註釋,多行註釋,#if 0註釋
<2>.跳轉到當前檔案所在的資料夾,並高亮選擇
<3>.使用quicker.em外掛新增函式註釋,檔案頭註釋,標記註釋等
<4>.多選項卡外掛
下面分別對如何在sourceinsight中使用上述4個功能進行說明:
<1>.使用快捷鍵註釋,單行註釋,多行註釋,#if 0註釋
將檔案 [mycomment.em點此下載](https://files.cnblogs.com/wangqiguo/mycomment.rar) 放到sourceinsight的Base工程的路徑下(一般是在C:\Documents and Settings\Administrator\My Documents\Source Insight\Projects\Base),當然推薦存放到該目錄下,一般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點此下載](https://files.cnblogs.com/wangqiguo/openfolder.rar) 新增到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點此下載](https://files.cnblogs.com/wangqiguo/quicker.rar) 該檔案據說是華為的一個員工寫的,主要功能是為函式介面添加註釋,為檔案添加註釋,生成標頭檔案,生成標記註釋(新增類似這樣的註釋:/*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 之後生成的註釋效果:
## source insight 4 中文亂碼問題
* 打开project后,在 Options-> Preferences :File 在最下方的 Default encoding 改为 UTF-8
* 選單欄中【File】->【Reload As Encoding...】->【Chinese Simplified (GB18030)】->選擇後,點選load
## Source Insight快捷鍵大全
退出程式 : Alt+F4
重畫螢幕 : Ctrl+Alt+Space
完成語法 : Ctrl+E
複製一行 : Ctrl+K
恰好複製該位置右邊的該行的字元 : Ctrl+Shift+K
複製到剪貼簿 : Ctrl+Del
剪下一行 : Ctrl+U
剪下該位置右邊的該行的字元 : Ctrl+;
剪下到剪貼簿 : Ctrl+Shift+X
剪下一個字 : Ctrl+,
左邊縮排 : F9
右邊縮排 : F10
插入一行 : Ctrl+I
插入新行 : Ctrl+Enter
加入一行 : Ctrl+J
從剪下板貼上 : Ctrl+Ins
貼上一行 : Ctrl+P
重複上一個動作 : Ctrl+Y
重新編號 : Ctrl+R
重複輸入 : Ctrl+
替換 : Ctrl+H
智慧重新命名 : Ctrl+'
關閉檔案 : Ctrl+W
關閉所有檔案 : Ctrl+Shift+W
新建 : Ctrl+N
轉到下一個檔案 : Ctrl+Shift+N
開啟 : Ctrl+O
重新裝載檔案 : Ctrl+Shift+O
另存為 : Ctrl+Shift+S
顯示檔案狀態 : Shift+F10
啟用語法視窗 : Alt+L
回到該行的開始 : Home
回到選擇的開始 : Ctrl+Alt+[
到塊的下面 : Ctrl+Shift+]
到塊的上面 : Ctrl+Shift+[
書籤 : Ctrl+M
到檔案底部 : Ctrl+End, Ctrl+(KeyPad) End
到視窗底部 : (KeyPad) End (小鍵盤的END)
到一行的尾部 : End
到選擇部分的尾部 : Ctrl+Alt+]
到下一個函式 : 小鍵盤 +
上一個函式 : 小鍵盤 -
後退 : Alt+,, Thumb 1 Click
後退到索引 : Alt+M
向前 : Alt+., Thumb 2 Click
轉到行 : F5, Ctrl+G
轉到下一個修改 : Alt+(KeyPad) +
轉到下一個連結 : Shift+F9, Ctrl+Shift+L
回到前一個修改 : Alt+(KeyPad) -
跳到連線(就是語法串列埠列表的地方) : Ctrl+L
跳到匹配 : Alt+]
下一頁 : PgDn, (KeyPad) PgDn
上一頁 : PgUp, (KeyPad) PgUp
向上滾動半屏 : Ctrl+PgDn, Ctrl+(KeyPad) PgDn, (KeyPad) *
向下滾動半屏 : Ctrl+PgUp, Ctrl+(KeyPad) PgUp, (KeyPad) /
左滾 : Alt+Left
向上滾動一行 : Alt+Down
向下滾動一行 : Alt+Up
右滾 : Alt+Right
選擇一塊 : Ctrl+-
選擇當前位置的左邊一個字元 : Shift+Left
選擇當前位置右邊一個字元 : Shift+Right
選擇一行 : Shift+F6
從當前行其開始向下選擇 : Shift+Down
從當前行其開始向上選擇 : Shift+Up
選擇上頁 : Shift+PgDn, Shift+(KeyPad) PgDn
選擇下頁 : Shift+PgUp, Shift+(KeyPad) PgUp
選擇句子(直到遇到一個 . 為止) : Shift+F7, Ctrl+.
從當前位置選擇到檔案結束 : Ctrl+Shift+End
從當前位置選擇到行結束 : Shift+End
從當前位置選擇到行的開始 : Shift+Home
從當前位置選擇到檔案頂部 : Ctrl+Shift+Home
選擇一個單詞 : Shift+F5
選擇左邊單詞 : Ctrl+Shift+Left
選擇右邊單詞 : Ctrl+Shift+Right
到檔案頂部 : Ctrl+Home, Ctrl+(KeyPad) Home
到視窗頂部 : (KeyPad) Home
到單詞左邊(也就是到一個單詞的開始) : Ctrl+Left
到單詞右邊(到該單詞的結束) : Ctrl+Right
排列語法視窗(有三種排列方式分別按1,2,3次) : Alt+F7
移除檔案 : Alt+Shift+R
同步檔案 : Alt+Shift+S
增量搜尋(當用Ctrl + F 搜尋,然後按F12就會轉到下一個匹配) : F12
替換檔案 : Ctrl+Shift+H
向後搜尋 : F3
在多個檔案中搜索 : Ctrl+Shift+F
向前搜尋 : F4
搜尋選擇的(比如選擇了一個單詞,shift+F4將搜尋下一個) : Shift+F4
搜尋 : Ctrl+F
瀏覽本地語法(彈出該檔案語法列表視窗,如果你游標放到一個變數/函式等,那麼列出本檔案該變數/函式等的資訊) : F8
瀏覽工程語法 : F7, Alt+G
跳到基本型別(即跳到原型) : Alt+0
跳到定義出(也就是宣告) : Ctrl+=, Ctrl+L Click (select), Ctrl+Double L Click
檢查引用 : Ctrl+/
語法資訊(彈出該語法的資訊) : Alt+/, Ctrl+R Click (select)
高亮當前單詞 : Shift+F8
語法視窗(隱藏/顯示語法視窗) : Alt+F8
關閉視窗 : Alt+F6, Ctrl+F4
最後一個視窗 : Ctrl+Tab, Ctrl+Shift+Tab
[将Source Insight打造成好用的编辑器](http://www.armbbs.cn/forum.php?mod=viewthread&tid=95564)