[收集] Source Insight 使用教學、技巧、巨集、快速鍵、快捷鍵、教程。

Source Insight 3.5 User Manual

原廠手冊連結:Source Insight 3.5 User Manual

=================================================================


Source Insight 使用教學

連結:http://rtlab.cs.nthu.edu.tw/course/cs5423/2011_Spring/Source_Insight_Introduction_2011.pdf

========================================================================

Source Insight 快速註解 及 設定

出處:http://blog.xuite.net/csiewap/cc/49452492-Source+Insight+%E5%BF%AB%E9%80%9F%E8%A8%BB%E8%A7%A3+%E5%8F%8A+%E8%A8%AD%E5%AE%9A

增加快速註解Macro
Project/Open Project…
打開Base Project(“我的文件/Source Insight/Projects/Base”中);
Project/Add and Remove Project Files…
加入Macro文件(即utils.em);
Options/Menu Assignments
打開Menu Assignments視窗,在Command中輸入Macro,選中要使用的Macro,添加到合適的選單中.
推薦使用的Macro:Comment、InsFileHeader、InsFunHeader、InsHeaderDef、InsIfdef和AutoExpand (為代碼自動補全功能,建議建快捷鍵)。

http://www.sourceinsight.com/public/macros/

http://www.sourceinsight.com/public/macros/comment.em

===================================================

按小鍵盤的/*-+螢幕都會亂跳
options->Key Assignments, 裡面在command鍵入
Navigation: Scroll Half Page Down
Navigation: Scroll Half Page Up
Navigation: Function Down
Navigation: Function Up
就可以修改keystrokes.(想改其他的都可以在裡面找)
可以順便看一看有沒有什麼是你需要的功能.
===================================================

添加特定類型的文件(文件類型過濾器)
在Options->Document Options裡面,點左上的Document Type下拉選單,選擇x86 Asm Source File,然後在右邊的File filter裡*.asm;*.inc;的後面加上*.s;接著CLOSE就可以了
===================================================

限定column寬度
options->Document options, 將Margin width 設成你希望的最大寬度,他會在螢幕上劃一條灰線,那行就是你的設定寬度,如此ㄧ來在影印的時候才不會亂掉.

===================================================

對齊的問題
a. 可以直接選擇 View->Draft View 那保證對齊,
b. 要不然就是options->Document options裡面的”Screen Fonts”按鈕, 選擇Courier New字型.(利用寬字元的方式)
===================================================

while(), if….等等enter後對齊問題
選擇Options/Document Options頁面,點擊其內的Auto Indent按鈕,在彈出的Auto Indenting窗口中,默認配置為Auto Indent Type選擇Smart,且勾選了Smart Indent Options中的兩個可選項
===================================================

自定義快捷鍵
選擇Options/Key Assignments,在彈出的Key Assignments窗口中可自由添加自己喜歡的快捷鍵。 比較值得推薦的有如下幾個快捷鍵定義:
===================================================

Renumber
使用Ctrl+R將彈出Renumber窗口,這個用於處理數字順序排列的情況相當有效,比如數組下標。 例如現有代碼
array[0] = 1;
array[1] = 2;
array[2] = 3;

現在要改為
array[0] = 0;
array[1] = 1;
array[2] = 2;
array[3] = 3;

當然可以一個個修改,但最快的方式是在array[0] = 1;之前添加array[0] = 0; ,然後列選數組下標,使用Renumber功能以0為起始值重填數值。
Edit Condition
很多代碼尤其是驅動代碼,當中有大量的預編譯定義,以實現對不同硬件配置的支持。 在閱讀這樣的代碼時最痛苦的是不能簡單判斷程序實際執行的代碼分枝。 大量分枝同時存在,常常會混淆我們的視聽。 比如對於下面的代碼:
#ifdef DEV1
/* DEV1代碼代碼*/
#else
/*其它設備執行代碼*/
#endif

如果確定我們當前分析的是DEV1的執行情況5 ,那麼可以選擇上下文件菜單的Edit Condition選項,在彈出的Conditional Parsing窗口中把DEV1的值設置為True,那麼#ifdef DEV1就等價於# if 1了,相當註釋掉了#else分枝的代碼。 反之,設置為Flase時,則註釋掉#ifdef DEV1分枝的代碼。

========================================================================

Source Insight 教學收集

出處:http://huenlil.pixnet.net/blog/post/23271746-source-insight-%E6%95%99%E5%AD%B8%E6%94%B6%E9%9B%86

設定
將tabr鍵改為多格空白:
先進入options->Document options
a. 先打勾Expand tabs
b. 裡面的editing options群組有 Tab width

添加特定類型的文件(文件類型過濾器)

Options->Document Options裡面,點左上的Document Type下拉選單,選擇x86 Asm Source File,然後在右邊的File filter*.asm;*.inc的後面加上*.s;接著CLOSE就可以了。上面兩個問題解決了,但注意加入*.s後還需要重新ADD TREE一遍才能把這些匯編加到PROJECT裡面。
限定column寬度
options->Document options, 將Margin width 設成你希望的最大寬度,他會在螢幕上劃一條灰線,那行就是你的設定寬度,如此ㄧ來在影印的時候才不會亂掉.

if,for,while的{}對齊方式
options->Document options 裡面的 “Auto Indent…”按鈕, 將裡面 Indent Open Brace,Indent Close Brace取消.

按小鍵盤的/*-+螢幕都會亂跳
options->Key Assignments, 裡面在command鍵入
Navigation: Scroll Half Page Down
Navigation: Scroll Half Page Up
Navigation: Function Down
Navigation: Function Up
就可以修改keystrokes.(想改其他的都可以在裡面找)
可以順便看一看有沒有什麼是你需要的功能.

對齊的問題
a. 可以直接選擇 View->Draft View 那保證對齊,
b. 要不然就是options->Document options裡面的”Screen Fonts”按鈕, 選擇Courier New字型.(利用寬字元的方式)

常用HotKey
F1  copy
F2  bookmark
F3  search Forward
  s-F3 find prev
F4  prev link
F5  next link
  s-F5 jump to link (在 source code / search result 之間切換)
F6  highlight word
  c-s-F6 clear all lighlight word
F7  compiler the file
  c-F7 project make
F8 (prev relation)
  a-F8 Context window (on off)
F9 (next relation) Activate relation window
  a-F9 relation window (on off)
F10 Last Window
  a-F10 zoom window
F11 select word
  s-F11 comment     (但須加入 comment.em 於 base.pr)
F12 Activate Window Menu
  s-F12 un-comment  (但須加入 comment.em 於 base.pr)

Search: Search…                         :  Ctrl+F
Search: Search Forward                    :  F3
Search: Search Backward                   :  Shift+F3
Navigation: Go To Previous Link           :  F4
Navigation: Go To Next Link               :  F5
Navigation: Function Down                 :  Alt+PgDn (goto next func)
Navigation: Function Up                   :  Alt+PgUp (goto prev func)
Navigation: Go Forward                    :  Alt+., Thumb 2 Click
Navigation: Go Back                       :  Alt+,, Thumb 1 Click
Navigation: Go Back Toggle                :  Alt+M

Navigation: Activate Relation Window      :  F9
View: Relation Window                     :  Alt+F9
Macro: myRelWnd                           :  Ctrl+/, Ctrl+
Symbol: Browse Local File Symbols…      :  Alt+J
Symbol: Browse Project Symbols…         :  Alt+K
    ( Navigation: Activate Symbol Window = browse only displayed local symbol )
View: Context Window                      :  Alt+F8
Navigation: Activate Clip Window          :  Alt+D

Symbol: Lookup References…              :  Alt+R  (配合 F4/F5/Alt+;)
Symbol: Jump To Definition                :  Alt+=, Ctrl+Double L Click
Symbol: Jump To Prototype…              :  Alt+-
Symbol: Symbol Info…                    :  Alt+I, Ctrl+R Click (select)

Navigation: Jump To Match                 :  Alt+]
Navigation: Select Match                  :  Alt+Shift+}
Navigation: Make Column Selection         :  Alt + mouse L Click

Edit: Copy Line                           :  Alt+L, Alt+F11, Ctrl+Shift+Up

—————– Font/Color
. 某些字型粗體字(如highlight時)會比非粗體字更寬(變成不是所有字等寬) , 以下任一解法皆可 :
    1. 非粗體字font size=10, 粗體字時選用 font size=9
    2. 將粗體字 scale 設為 90%
. 字集選 “西歐” 則 cursor 可穿入中文字
  選 “BIG5” 則不可穿入中文字 (但仍須移兩次 cursor, 修改時反而造成困擾)
. 以下所列字形均為 每個字元皆同寬度

—– normal view of ” :
細明體  (font size 10 in 1024*768)      — 小寬度,(大高度),粗體字寬度加大
Courier New  (font size 10 in 1024*768) — 大寬度,(小高度),粗體字寬度不變
Courier
NSimSun
SimSun

—– good but ” :
MS Mincho
BatangChe
MS Gothic
GulimChe
DotumChe

—– extern font (normal ”) :
http://www.lowing.org/fonts/

—–
# new language (ex: My txt)
  . 勿勾選 “Use Syntax Formatting”, 否則某些中文字會變亂碼
  . 欲讓某些字有顏色, 可加入keyword (‘.’, ‘#’ 等亦可)
    亦可加入 Custom Parsing, ex: ([w]*. )

—————– Associate File
如何在檔案總管 .h .cpp 按 Enter 即以 source insight 開啟該檔 :
C:Program FilesSource Insight 3insight3.exe -i “%1”
但按 Enter 在 insight 中該檔路徑為 xxx~1, 用拖拉的才顯示完整路徑

—————–
New: You can force Source Insight to use a folder other than “My DocumentsSource Insight”
  as your user data folder. Add the following registry string value:
  HKEY_CURRENT_USERSoftwareSource DynamicsSource Insight3.0PathsUserDataDir
  Set the string value to the path of the folder you want to use.
  The folder must already exist and you must have file write and create permissions in that folder.

========================================================================

Source Insight 方便 coding 的設定

出處:http://www.wretch.cc/blog/freekyidea/9902949

分享在我的Facebook分享在我的Plurk分享在我的即時通 發文

個人使用SourceInsight也一段時間了,最喜歡的就是它搜尋的功能,可以方便讓你tracking整支程式,
但是最讓人詬病的地方,就是每當sourceInsight編輯完,若使用UltraEdit開啟,一定程式碼對齊的亂七八糟~
若公司有要求coding style,那也許還會有更多的麻煩地方.
以上也許可以利用幾個方法來修正這些問題~
1. 將tabr鍵改為多格空白
先進入options->Document options
a. 先打勾Expand tabs
b. 裡面的editing options群組有 Tab width
利用這個可以更改tab為多格空白

2. 限定column寬度
options->Document options
將Margin width 設成你希望的最大寬度,他會在螢幕上劃一條
灰線,那行就是你的設定寬度,如此ㄧ來在影印的時候才不會亂
掉.

3. 如果你嫌if,for,while這類的{}對齊方式不合乎你的意思
你可以點選
options->Document options 裡面的 “Auto Indent…”按鈕
將裡面 Indent Open Brace,Indent Close Brace取消.(試試看吧~)

4. 按小鍵盤的/*-+螢幕都會亂跳
options->Key Assignments…
裡面在command鍵入
Navigation: Scroll Half Page Down
Navigation: Scroll Half Page Up
Navigation: Function Down
Navigation: Function Up
就可以修改keystrokes.(想改其他的都可以在裡面找)
可以順便看一看有沒有什麼是你需要的功能.
(sourceInsight提供了ㄧ堆)

5. 對齊的問題
a. 可以直接選擇 View->Draft View 那保證對齊,
b. 要不然就是options->Document options裡面的”Screen Fonts”按鈕
選擇Courier New字型.(利用寬字元的方式)

##希望對大家有用
這是我的reference 供大家延伸閱讀~
http://atu82.bokee.com/6398141.html

=======================================================================

Source Insight v.s SlickEdit® 2007

============================
Program Editor and Analyzer
============================
最近為了撰寫程式碼上的方便,分別去試用了兩套軟體,這兩套軟體都是用來撰寫程式碼與分析程式碼的編輯器,下面就大致上來說一下使用心得。
Source Insight : 目前版本最新版是V3.50.0057 ,他跟一般的程式碼編輯器比較起來功能強很多,像是你可以在變數名稱的關鍵字上面按下滑鼠右鍵就可以很方便的移動到定義(Go to definition)的地方或是列舉出參考(Reference)到的地方,另外針對函數或是變數…等,都有很不錯的顏色來區分,另外它還可以執行一些外部程式,我自己就用VB6寫了一些外部程式,然後按下熱鍵就可以呼叫我的程式來輔助編輯,像是說常常我們需要寫註解,那麼你就可以用Vb6 寫一段程式碼呼叫Postmessage API 對Source Insight 編輯區插入一段字串而省去打字的時間,另外專案檔的管理與搜尋也別具特色,他有檔案瀏覽器,你可以直接輸入你要找的檔案名稱,然後會列表出來,接著你就可以用滑鼠去點擊檔案來編輯,缺點就是字型太小,如果改大一點會變亂掉,另外就是不能編輯Unicode,且編輯畫面太小,附加的功能要自己利用其他語言工具開發…等。
SlickEdit® 2007 : 基本上Source Insight 有的他都有,編輯器長的很像UltraEdit,但是有比UltraEdit更強大的功能,像是Tag的建立與搜尋速度,可以連結VC6或是VisualStudio 直接Build或是Compiler你的程式碼,程式碼的分析與Symbols 搜尋也很快,缺點就是對於顏色的區分要自己手動建立,而且函數後面的括號多空一個就不會被當成函數顯示,不過這個缺點也是優點,因為他有提供Alias ,Macro…方式去增加你自己想要的功能,而且可以全螢幕編輯,畫面字體也大很多,簡言之就是他很多東西都要自己手動調整,如果你會調,調出來的功能一定比Source Insight 強大,所以使用後的心得是如果你貪圖方便,就用Source Insight就應該夠用了,如果你沒辦法忍受Source Insight編輯器畫面,又沒辦法忍受UltraEdit龜速的分析程式碼或是搜尋程式碼相關性的地方,那麼你就一定要考慮SlickEdit® 2007。
有人會想說幹麻自己去找編輯器,一般VC6或是Visual Studio不是就已經整合到IDE中了嗎 ? 沒錯,他們都已經有了,不過只能針對C/C++ 編輯,像我這種有.asm .c .cpp .inf .xxx 混合的專案就沒辦法編輯與分析了,因此要自己找一個編輯器可以用來管理分析程式碼,因此比較來比較去,就是這兩套最好用,而試用版在他們官方網站就可以找到了。
底下是一些設定的方式:
字體:
Tools->Options->Font
個人覺得最好看的是FixedSys。
顯示改動過的行標記:
Tools->Options->File Extension Setup
Advanced-Color coding-Modified lines
自動在保存的時候清除修改標記:
Tools->Options->File Options
Save-Reset line modify
這個標籤頁還有兩個實用的選項:
Expand tabs to spaces,保存時把Tab變成空格(有的地方要求必須用空格縮進)
Strip trailing spaces,刪掉行末尾的空白
快點顯示Symbol的代碼資訊:
下面的Symbol視窗類似與Source Insight的上下文視窗,會顯示當前函數或者巨集的代碼。
Tools->Options->Tagging Options
Updtae toolbars after ms idle:
縮短顯示代碼的速度。我用150。機子夠快扛得住就弄小點。
修改該死的自動語法範本:
Tools->Options->File Extension Options
Indent-Syntax expansion-Minmum expandable keyword length:
建議設置為3,如果為默認的1的話,你根本不能用i做變數。因為只要i起頭後面一個空格就是一個if () {},吐血。
滑鼠移到函數或者識別字上面顯示資訊:
Tools->Options->File Extension Options
Tagging-Show info for symbol under mouse
這部分其他的鉤也可以選上,減輕工作量啊。
對當前檔類型都顯示行號:
Tools->Options->File Extension Setup
General-Display line numbers
修改行號顏色:
Tools->Options->Color
不是Line Number,而是Line Prefix Area~~吐血 -_-!
改GCC的設置:
必須在建立了GNU C/C++專案後才能在Build裏面找到GNU C Options
設置專案的Build之類的功能表命令:
Project->Project Properties->Tools
選中一個Configuration以後就能配置編譯器和調試器
另外,在下面的Build視窗可以直接敲命令。比如make,dir什麼的,很方便
同時啟動多個SlickEdit
使用隱藏的命令開關“+new”即可。只要把SlickEdit的快捷方式修改成這樣:
“E:Program FilesSlickEditwinvs.exe” +new
解決Slickedit某些視窗字體模糊的問題
比如Open Form的窗口,
用UE打開vs.exe、vsapi.dll兩個文件,查找“OEM Fixed Font”,會找到有OEM Fixed Font..Terminal的地方。把Terminal改成Fixedsys,注意要用覆蓋模式,不能改變了檔的長度,然後存檔即可。
將Slickedit的Projects資源列表切換成檔夾模式
Slickedit的檔排列是按照Source,Head之類的分的,很不習慣,把它改成按照檔夾結構
在Projects視窗中點擊一個vpj檔,按右鍵;選擇Auto Folder→Directory View,會出來一個警告框。再點OK就好了
Workspace分類管理
Workspace多了以後分類管理會比較方便
Project->Organize all workspace,可以用目錄的形式對workspace進行管理,
注意這裏並不會改變你workspace檔的位置,只是在slickedit裏面的分類而已。
如果發現路徑的”顯示成了中文的’¥’字元,那麼可以設置一下字體就可以了如果在XP下,直接將所有的字體都設置成 Default Fixed Font 就不錯。 
增加Alias
選取一段文字–>按滑鼠右鍵選Create Alias
編輯滑鼠右鍵的Pop Menu
按滑鼠右鍵–>選Edit this Menu
如果你要把你的設定檔給別人使用,那麼你可以直接複製C:Documents and Settings你的使用者名稱My DocumentsMy SlickEdit Config內的 “12.0.2”這個目錄,但是要切記編輯滑鼠右鍵的Pop Menu
中的Version Control選項不能夠刪除掉,不然你複製過去的組態會不能使用,而且會出現錯誤訊息。
[註] 破解版請自行使用Google搜尋,或是使用IDA Pro …等反組譯工具去修正某個DLL跟EXE就可以了…
不過我還是要說一句話,請尊重智慧財產權,愛用正版….感恩喔!
Reference
Source Insight V3.50.0057
http://sourceinsight.com/
SlickEdit® 2007 Version 12.0.2.0 
http://www.slickedit.com/content/view/73/60/
========================================================================

SourceInsight 的實用技巧

出處:http://blog.xuite.net/yang44/dd/49129041-SourceInsight+%E7%9A%84%E5%AF%A6%E7%94%A8%E6%8A%80%E5%B7%A7
[原創文章,轉載請保持文章 ​​完整,並註明出處。更多精彩文章請訪問http://blog.csdn.net/Jupin 
或者http://hi.baidu.com/qiupingwu ]

1   開胃菜-初級應用

1.1   選擇美麗的界面享受工作

雖然不能以貌取人,但似乎從來沒有人責備以貌取軟件的。SI的華麗界面,絕對符合現代花花世界的人的審美趣味。在SI中,我們可以輕鬆地把各種類型關鍵字、變量、標誌符、函數、宏、註釋等定義為不同的顏色和顯示方式(正體或斜體、加粗或正常、加下劃線、放大顯示等),總有一種方式能讓我們一眼就能分辨出這個標識是什麼。

1.1.1   字體選擇

在SI中樣式是可以被繼承,如果要從根本上改變字體,最簡單的方式就是直接修改根樣式中的字體,因為其它樣式都會由此繼承而來。選擇Options/Document Options頁面內的Font Options中的Screen Fonts字體,即可改變根樣式中的字體。SI中的默認配置為Verdana字體,是一種非等寬字體 2 ,為了使編寫的代碼在各種編輯器中看起來都有良好的對齊效果,這裡強烈建議使用等寬字體,Courier、New Courier和宋體等都是較 ​​好的選擇。

1.1.2   顏色定義

畢竟這是見仁見智的東西,所以從來沒有統一的標準3。很多人並不喜歡SI提供的默認配置,那麼我們就改吧。選擇Options/Style Properties頁面,就可以在其中修改所有樣式了。選擇等號(=)表示繼承Parent Style,也可以選擇Pick(或者ON/OFF等)去配置一個新值。這完全視乎個人喜好。

1.1.3   標識符樣式選擇

在與  顏色定義  一節同樣的界面內即可完成此項配置。

1.1.4   背景色選擇

在希望要改變背景色的窗口點擊鼠標右鍵(假定使用的是右手鼠標4 ),選擇上下文菜單的xxx Window Properties項,然後點擊彈出窗口的Back Color按鈕,即可修改該窗口背景色。對於SI的源碼主窗口,只需選擇上下文菜單的Special Window Color項即可完成背景色修改。

1.2   配置合理的默認值高效工作

1.2.1   使用合理的縮進

我始終認為最容易獲得認同的是關於這個選項的配置了。選擇Options/Document Options頁面,點擊其內的Auto Indent按鈕,在彈出的Auto Indenting窗口中,默認配置為Auto Indent Type選擇Smart,且勾選了Smart Indent Options中的兩個可選項,這樣得到的默認縮進效果為
    while (1) 
        { 
        I 
        }
每次都要手工去調整其縮進,其實只要把兩個勾選項去掉,就可以得到
    while (1) 
    { 
        I 
    }
何樂而不為呢?

1.2.2   顯示坐標

通常情況下在窗口狀態欄左下方,最會顯示當前光標所在行列信息,但我總覺得不夠明顯,於是通常我們作如下配置:
選擇Options/Document Options頁面,勾選其中的Show line numbers。同時勾選其中的Show right margin,我們就可顯示一條右邊界,隨時提醒我們是否該行代碼寫得過長了。

1.3   創建便捷的快捷鍵快樂工作

1.3.1   幾個較常用的快捷鍵

默認情況下,SI已經定義了很多非常實用的快捷鍵:
  • F5
    指定行號,實現行跳轉,在遇到編譯錯誤的時候,能特別方便的找到出錯行。
  • Shift+F8
    高亮顯示指定標識,快速瀏覽標識的使用情況。
  • Ctrl+鼠標點擊標識
    直接跳轉至標識定義處。
  • Ctrl+F
    本文件內查找。
  • F3
    本文件查找結果的上一個。
  • F4
    本文件查找結果的下一個。
  • F7
    打開Browse Project Symbols窗口,快速瀏覽工程內標識定義。
  • Ctrl+M
    創建或查找書籤,方便下次找回此位置。

1.3.2   自定義快捷健

選擇Options/Key Assignments,在彈出的Key Assignments窗口中可自由添加自己喜歡的快捷鍵。比較值得推薦的有如下幾個快捷鍵定義:
  • Edit: Drag Line Down
    光標當前行下移。
  • Edit: Drag Line Up
    光標當前行下移。
  • Edit: Join Lines
    當前行和下一行連接成一行。

1.3.3   更多的快捷鍵

如果你正好對SI的Marco語言(下文將會介紹)有研究,那麼還可以定義更多有用的快捷鍵,比如添加文件頭、函數頭、註釋等(下文在介紹Marco語言時會介紹如何實現) 。

2   小技巧-中級應用

2.1   查找與替換

在SI中支持多種查找及替換方式,除了上文提到的文件內查找外,還支持工程範圍內查找、目錄查找、指定多文件查找等等。

2.1.1   查找

  1. Loopup References
    我們最常用的一種查找方式是選擇Search/Lookup References或按Ctrl+/組合鍵再或者鼠標點   R  按鈕,在彈出的Loopup References窗口進行查找操作。

    在Search Method中有四種可選的查找方式:Simple String、Regular Expression、 Keyword Expression和Look Up Reference。其中Simple String是最普通的查找方式,可以查找文件中出現的任意字符或字符,甚至可以查找  _upap || u  這樣的字符串,但是在工程較大時,查找過程會較慢。

    Regular Expression查找方式將在後面講述正則表達時會介紹到,這裡暫時按下不表。

    Keyword Expression和Look Up Reference查找的結果基本相同,但是顯示方式略有差異。這兩種方式都是使用SI預先建立的數據庫,查找起來速度相當快。但通常這種速度只對在查找標識符時有明顯效果。對於像函數名,變量名等的查找,強烈建議使用這兩種方式進行查找。

  2. Search Files
    選擇Search/Search Files或按Ctrl+Shift+F組合鍵,在彈出的Search Files窗口進行查找操作。

    在File Name框中可以填入文件名或文件夾。注意當要查詢的文件夾雙包含子文件夾時,可以勾選Options中的Include Subdirectiories,實現對各層文件的遞歸搜索。

  3. Search Project
    選擇Search/Search Project,在彈出的Search Project窗口進行查找操作。操作與Loopup References幾乎完全一致,它們各自保存上次搜索的配置。

2.1.2   替換

  1. 單文件替換
    選擇Search/Replace或按Ctrl+H組合鍵,在彈出的Replace窗口進行查找操作。在Search項目裡勾選Selection則僅對當前選中的文檔部分進行替換。另外如果勾選了Confirm Replacements則是逐個確認替換,否則會同時替換所有符合替換條件內容。
  2. 多文件替換
    選擇Search/Replace Files或按Ctrl+Shift+H組合鍵,在彈出的Replace Files窗口進行查找操作。除了 ​​增加New框(替換後的內容)外,其餘均與Search Files窗口相同,可參照查找部分的說明進行操作。

2.2   列操作

雖然開篇時就說過,SI的列操作功能比較弱,但不等於沒有。先按下Alt鍵,接著就可用鼠標進行列選擇,然後就可以刪除指定的列。

2.3   無名技巧

這裡介紹一些小技巧,大多數情況下我們可以無視它們的存在。但如果我們知道這些,某些時候,會有效提高工作效率。
  • Smart Rename
    在上下文件菜單中選Smart Rename或按Ctrl+’組合鍵,即可彈出Smart Rename窗口。它有很強大的功能,但最便捷的使用方式是更改函數內局部變量的名字,操作只作用於函數內部,速度非常快。
  • Renumber
    使用Ctrl+R將彈出Renumber窗口,這個用於處理數字順序排列的情況相當有效,比如數組下標。例如現有代碼
        array[0] = 1; 
        array[1] = 2; 
        array[2] = 3;
    

    現在要改為

        array[0] = 0; 
        array[1] = 1; 
        array[2] = 2; 
        array[3] = 3;
    

    當然可以一個個修改,但最快的方式是在array[0] = 1;之前添加array[0] = 0;,然後列選數組下標,使用Renumber功能以0為起始值重填數值。

  • Edit Condition
    很多代碼尤其是驅動代碼,當中有大量的預 ​​編譯定義,以實現對不同硬件配置的支持。在閱讀這樣的代碼時最痛苦的是不能簡單判斷程序實際執行的代碼分枝。大量分枝同時存在,常常會混淆我們的視聽。比如對於下面的代碼:
        #ifdef DEV1 
            /* DEV1代碼代碼*/ 
        #else 
            /*其它設備執行代碼*/ 
        #endif
    

    如果確定我們當前分析的是DEV1的執行情況5,那麼可以選擇上下文件菜單的Edit Condition選項,在彈出的Conditional Parsing窗口中把DEV1的值設置為True,那麼 #ifdef DEV1就等價於#if 1了,相當註釋掉了#else分枝的代碼。反之,設置為Flase時,則註釋掉#ifdef DEV1分枝的代碼。

3   學會偷懶-高級應用

4   附錄1-SI中正則表達式

由於在查找及替換中,經常會使用用正則表達式6,這裡對SI的正則表達式進行簡單介紹。

4.1   通配符

正則表達式通配符總表:

CharacterMatches
^ (在表達式開始處)行的開始部分
.任意單個字符
[abc]任意屬於集合 abc 的單個字符
[^abc]任意不屬於集合 abc 的單個字符
*前面字符的0個或多個重複
+前面字符的1個或多個重複
/t一個 tab 字符
/s一個空格符
/w一個空白符(包括 tab 符和空格符)
$行的結束部分

4.2   表達式中的組

在執行替換操作時,組將大有用武之地。正則表達式的各個部分可以用/(和/)進行分隔,分隔得到的每一項就是一個組。在進行替換時可通過組從匹配內容中抽取出特定串。在正則表達式中每個組都有一個編號,自左至右編號從1開始。
例如:abc/(xyx/)將能匹配abcxyz ,此時組1就包含了xyz串。在進行替換操作時,就可以通過在替換後內容框中填入/1來取出這個字符串。推而廣之,可以使用/<number>來取得組<number>所包含的串。
例如:當設定把/(abc/)/(xyz/)替換為/2/1的替換規則時,對於abcxyz被替換串,則組1包含abc,組2包含xyz,而替換後的內容定義為組2內容後跟組1內容( /2/1 ),因此將得到xyzabc。
舉個真實的使用例子,相信會增加大家的興趣。有時為方便調試,代碼中到處流浪著各種形式的mytrace調用
    mytrace("Create parameter list... ");
有時希望把它們全部註釋掉,而有些時候又希望把它們全部恢復回來。這是個簡單的例子,可以使用
    ^/(.*/)/(//*/)/(.*mytrace.*/)/(/*//)___FCKpd___6nbsp;==> /1/3
把它們恢復回來,而使用
    ^/(.*/)/(mytrace/)/(.*/)___FCKpd___7nbsp;==> /1/*/2/3*/
則完成把它們全部註釋掉。

5   附錄2-SI中的宏語言

我始終認為這是SI中最有趣的部分,這是一種功能強大的編程語言,幾乎可以實現在編程過程可能使用到的各種功能。
這裡不准備對如何實用宏語言進行編程作介紹(可參閱SI幫助文檔。),只介紹如何使用已編好程序。為方便使用,我已把這些程序都集中放在utils.em文件中,下文就此文件進行論述。
該宏文件實現了一些在編碼過程中可能會用到的功能, 如添加文件頭、函數說明(使用時能自動添加文件名、函數名和當前日期)和宏定義,代碼補全等。
使用說明:
  1. Project/Open Project…
    打開Base工程(該工程一般在”我的文檔/Source Insight/Projects/Base”中);
  2. Project/Add and Remove Project Files…
    加入宏文件(即utils.em);
  3. Options/Menu Assignments
    打開Menu Assignments窗口,在Command中輸入Macro,選中要使用的宏,添加到合適的菜單中.
推薦使用的宏:InsFileHeader、InsFunHeader、InsHeaderDef、InsIfdef和AutoExpand (為代碼自動補全功能,建議建快捷鍵)。
關於AutoExpand的舉例說明, 當你輸入了switch 且光標正處於switch後面,運行該宏則會得到
    switch (###) 
    { 
    case 
        break; 
    default: 
    }
對於InsFunHeader宏,如果有如下函數體
    int nOpenConfigFile(char *pchMemConfig, char *pchFlashConfig, 
        int nSize, int nMode) 
    { 
        I 
    }
光標在函數體內時運行該宏,那麼將會在函數體上方得到
/************************************************* ***************************** 
 * nOpenConfigFile - 
 * DESCRIPTION:- 
 * 
 * Input: N/A 
 * Output: N/A 
 * Returns: N/A 
 * 
 * modification history 
 * -------------------- 
 * 1.00, Apr 19, 2007, T357 written. 
 * -------- ------------ 
 ************************************** ****************************************/
其中的函數名及編寫日期自動按實際情況填充,T357串可通過修改utils.em文件,改成你需要的名字。
========================================================================

SourceInsight

SourceInsight使用简介
連結:http://wenku.baidu.com/view/2b40de76f46527d3240ce0b5.html
========================================================================

Source Insight 教學收集
http://huenlil.pixnet.net/blog/post/23271746

Source Insight – Trace Code的神兵利器
http://www.wretch.cc/blog/hidex/8117748

sourceinsight使用技巧
http://blog.csdn.net/flyyanqu/archive/2008/03/27/2222799.aspx

SourceInsight的实用技巧
http://blog.csdn.net/jupin/archive/2007/10/19/1832536.aspx

Source Insight3.0: Linux源代码阅读的利器, http://www.itepub.net/html/kaifawendang/caozuoxitong/Linux/ruanjianshiyong/2006/0501/14338.html

Source Insight常用设置及使用技巧
http://www.dz3w.com/tools/others/3677.html

source insight快捷键及使用技巧   
http://lucjn.blog.163.com/blog/static/92591152009111684354800/

未經允許不得轉載:GoMCU » [收集] Source Insight 使用教學、技巧、巨集、快速鍵、快捷鍵、教程。