6
由于Source Insight實(shí)質(zhì)上是一個(gè)支持多種開(kāi)發(fā)語(yǔ)言(java,c ,c++等等)的編輯器,只不過(guò)由于其查找、定位、彩色顯示等功能的強(qiáng)大,而被我們當(dāng)成源代碼閱讀工具使用。所以,為了有效的閱讀源程序,首先必須選擇功 能菜單上的 “Project”選項(xiàng)的子菜單“New Project”新建一個(gè)項(xiàng)目,項(xiàng)目名稱可以自由選定,當(dāng)然也可以選擇刪除(Remove)一個(gè)項(xiàng)目。當(dāng)刪除一個(gè)項(xiàng)目的時(shí)候,并不刪除原有的源代碼文件, 只是將該軟件生成的那些工程輔助文件刪除。設(shè)定之后,將會(huì)彈出一個(gè)對(duì)話框如圖2,接受默認(rèn)選擇,如果,硬盤(pán)空間足夠,可以將第一個(gè)復(fù)選框選上,該選項(xiàng)將會(huì) 需要與源代碼大致同等的空間來(lái)建立一個(gè)本地?cái)?shù)據(jù)庫(kù)以加快查找的速度。
圖2 工程設(shè)置
點(diǎn)擊“OK”按鈕,接受選擇后,將會(huì)有一個(gè)新的對(duì)話框彈出,在這個(gè)對(duì)話框里,可以選擇將要閱讀的文件加入工程,一種 方式是通過(guò)在File Name中輸入要閱讀源代碼文件的名稱,點(diǎn)擊“Add”按鈕將其加入,也可以通過(guò)其中“Add All”和“Add Tree”兩個(gè)按鈕可以將選中目錄的所有文件加入到工程中,其中“Add All”選項(xiàng)會(huì)提示加入頂層文件和遞歸加入所有文件兩種方式,而“Add Tree”相當(dāng)于“Add All”選項(xiàng)的遞歸加入所有文件,可以根據(jù)需要使用,就我來(lái)說(shuō),更喜歡“Add Tree”一些。由于該程序采用了部分打開(kāi)文件的方式,沒(méi)有用到的文件不會(huì)打開(kāi),所以,加入數(shù)千個(gè)文件也不用擔(dān)心加入的文件超出程序的所能容忍的最大值, 我就是采用“Add Tree”的方式將Linux2.4內(nèi)核的四千五百九十一個(gè)文件加入的。
圖3 添加文件
加入文件后,點(diǎn)擊一個(gè)文件,可以出現(xiàn)使用界面,如圖4所示,其中,右邊的那個(gè)窗口(Linux Project,即工程窗口)缺省按照字母順序列出當(dāng)前工程中所有的文件。
圖4 工作窗口
點(diǎn)擊一個(gè)文件就可以打開(kāi)該文件,顯示如圖5所示,進(jìn)入到右邊的那個(gè)窗口分別可以以文件列表的方式,列出所有的文件, 每個(gè)窗體下邊有一排按鈕,左邊的窗口(21142.c)從左至右分別為:按字母順序排列所有標(biāo)記、按照文件中行數(shù)順序排列標(biāo)記、按照類型排列標(biāo)記、瀏覽本 地文件標(biāo)記、標(biāo)記窗口屬性。右邊的窗口(Linux Project)從左至右分別為:按字母順序文件列表、顯示文件夾、按照文件類型歸類文件、全部文件的所有標(biāo)記列表、按照標(biāo)記類型歸類標(biāo)記、跳轉(zhuǎn)到定義 處、顯示標(biāo)記信息、瀏覽工程標(biāo)記、查找函數(shù)調(diào)用、工程屬性,其中全部文件的所有標(biāo)記列表選項(xiàng)可能要一段時(shí)間抽取標(biāo)記,同步到數(shù)據(jù)庫(kù)去,如果開(kāi)始選擇了建立 標(biāo)記數(shù)據(jù)庫(kù),將會(huì)在今后節(jié)省同步時(shí)間,最有用的莫過(guò)于瀏覽標(biāo)記信息和查找函數(shù)調(diào)用,前者可以通過(guò)“Jump”按鈕在不同的地方查找同樣的標(biāo)志,還可以通過(guò) “Reference”按鈕結(jié)合后者進(jìn)行全局的標(biāo)記查找。
Reference功能是Source Insight的特色之一,它可以在速度極快的在整個(gè)工程中找到所有的標(biāo)記,并且在該行程序的前邊加上紅色箭頭的小按鈕鏈接上。圖6是一個(gè) Reference搜索后的結(jié)果,它可以有兩種模式,一種集中顯示結(jié)果,圖6顯示的就是這種模式,在這種模式下,可以通過(guò)前邊的紅色箭頭小按鈕進(jìn)入另外一 種模式,該標(biāo)記的具體的所在處,也可以通過(guò)標(biāo)記的具體所在處點(diǎn)擊紅色箭頭小按鈕進(jìn)入警種模式,還可以通過(guò)工具條上的兩個(gè)紅色小箭頭直接在第二種模式下前后 移動(dòng),察看相應(yīng)信息。它的這個(gè)強(qiáng)大的功能使得閱讀Linux源程序有如神助。但是要注意的是,當(dāng)進(jìn)行了第二次“Reference”時(shí),它會(huì)提示你將結(jié)果 集附加在第一個(gè)結(jié)果集的后邊還是取代第一個(gè)結(jié)果集。如果選擇前者,不能對(duì)結(jié)果集根據(jù)前后兩次搜索結(jié)果進(jìn)行分類,然后在其子類里進(jìn)行移動(dòng),只能在整個(gè)結(jié)果集 里移動(dòng);如果,選擇后者,結(jié)果集將會(huì)被替換為第二次搜索的結(jié)果,略微有些不方便。
圖6 Reference的搜索結(jié)果
Source Insight設(shè)置
1、背景色選擇
要改變背景色Options->preference->windows background->color設(shè)置背景色
2、解決字符等寬對(duì)齊問(wèn)題。
SIS默認(rèn)字體是VERDANA,很漂亮。這網(wǎng)頁(yè)上應(yīng)該也是用的VERDANA字體。但由于美觀的緣故,VERDANA字體是不等寬的。比如下面兩行
llllllllll
MMMMMMMMMM
同樣10個(gè)字符,長(zhǎng)度差多了.用VERDANA來(lái)看程序,有些本應(yīng)該對(duì)齊的就歪了。解放方法是使用等寬的字體,但肯定比較丑。比較推薦的是用Courier New。3、解決TAB鍵縮進(jìn)問(wèn)題
Options-> Document Options里面的右下角Editing Options欄里,把Expand tabs勾起來(lái),然后確定。OK,現(xiàn)在TAB鍵的縮進(jìn)和四個(gè)空格的縮進(jìn)在SIS里面看起來(lái)就對(duì)齊咯
4、SI中的自動(dòng)對(duì)齊設(shè)置:
在C程序里, 如果遇到行末沒(méi)有分號(hào)的語(yǔ)句,如IF, WHILE, SWITCH等, 寫(xiě)到該行末按回車,則新行自動(dòng)相對(duì)上一行縮進(jìn)兩列。
Option->Document option下的Auto Indient中Auto Indient Type有三種類型 None,Simple,Smart。個(gè)人推薦選用Simple類型。5、向項(xiàng)目中添加文件時(shí),只添加特定類型的文件(文件類型過(guò)濾器)
編輯匯編代碼時(shí),在SIS里建立PROJECT并ADD TREE的時(shí)候,根據(jù)默認(rèn)設(shè)置并不會(huì)把該TREE里面所有匯編文件都包含進(jìn)來(lái)
只加了.inc和.asm后綴的,.s后綴的沒(méi)有。而且用SIS打開(kāi).s的文件,一片黑白沒(méi)有色彩,感覺(jué)回到DOS的EDIT時(shí)代了……
解決方法是在Options->Document Options里面,點(diǎn)左上的Document Type下拉菜單,選擇x86 Asm Source File,
然后在右邊的File filter里*.asm;*.inc;的后面加上*.s;接著CLOSE就可以了。
上面問(wèn)題解決了,但注意加入*.s后還需要重新ADD TREE一遍才能把這些匯編加到PROJECT里面。6、添加文件類型
用戶可以定義自己的類型,Options->Document Options->add type,定義文件類型名以及文件名后綴。
勾選include when adding to projects在添加目錄下文件到工程是該類文件就會(huì)添加進(jìn)SI的工程。
如果需要將所有文件添加進(jìn)SI的工程,可以定義一種文件類型*.*。 7、恢復(fù)ctrl+a的全選功能
通過(guò)關(guān)鍵詞save 找到save all,更改為ctrl+shift+a,通過(guò)關(guān)鍵詞select找到select all,更改為ctrl +a
Source Insight常用的快捷鍵:
Ctrl+= :Jump to definition
Alt+/ :Look up reference
F3 : search backward
F4 : search forward
F5: go to Line
F7 :Look up symbols
F8 :Look up local symbols
F9 :Ident left
F10 :Ident right
Alt+, :Jump backword
Alt+. : Jump forward
Shift+F3 : search the word under cusor backward
Shift+F4 : search the word under cusor forward
F12 : incremental search
Shift+Ctrl+f: search in project
shift+F8 : hilight word
Source Insight的窗口操作:
project window Ctrl+O打開(kāi)
symbol window Alt+F8打開(kāi)和關(guān)閉
Contex Window 自定義鍵打開(kāi)和關(guān)閉
Relation Window 自定義鍵打開(kāi) 先鎖定再刷新聯(lián)系
在Source Insight中添加自定義功能的步驟如下:
1.Source Insight中,Options->Custom Commands...->Add...,New Command name 隨便寫(xiě),我的是"Edit with Vim"
2.Run中寫(xiě)入: "C:Program FilesVimvim63gvim.exe" --remote-silent +%l %f
意思是在當(dāng)前已經(jīng)打開(kāi)的gvim窗口里面打開(kāi)當(dāng)前的文件,并且跳轉(zhuǎn)到指定行
%l為當(dāng)前的行號(hào),%f為文件名
使用 --remote-silent 的作用是,如果已經(jīng)打開(kāi)了對(duì)應(yīng)文件,就不會(huì)打開(kāi)第二次,而是在已經(jīng)打開(kāi)的文件里跳轉(zhuǎn)到對(duì)應(yīng)行
3.還是同一個(gè)對(duì)話框里面,選擇Keys->Assign New Key...->按F12,如果你已經(jīng)將F12設(shè)置給其他命令,選擇其他的按鍵就行了
下面是一些常用自定義功能:( CUSTOM COMMANDS )
打開(kāi)資源管理器并選中當(dāng)前文件
ShellExecute open explorer /e,/select,%f
查看log
"C:Program FilesTortoiseSVNinTortoiseProc.exe" /command:log /path:%f /notempfile /closeonend
diff
"C:Program FilesTortoiseSVNinTortoiseProc.exe" /command:diff /path:%f /notempfile /closeonend
取得鎖定(check out)
"C:Program FilesTortoiseSVNinTortoiseProc.exe" /command:lock /path:%f /notempfile /closeonend
提交(check in)
"C:Program FilesTortoiseSVNinTortoiseProc.exe" /command:commit /path:%f /notempfile /closeonend
更新(update)
"C:Program FilesTortoiseSVNinTortoiseProc.exe" /command:update /path:%f /notempfile /closeonend
更新整個(gè)目錄(update all)
"C:Program FilesTortoiseSVNinTortoiseProc.exe" /command:update /path:*.* /notempfile /closeonend
取消鎖定(undo check out)
"C:Program FilesTortoiseSVNinTortoiseProc.exe" /command:revert /path:%f /notempfile /closeonend
在ultriEdit中編輯
"C:Program FilesUltraEdit-32/uedit32" %f
在vim中編輯并定位到當(dāng)前行
"C:Program FilesVimvim63gvim.exe" --remote-silent +%l %f
匯總其他小技巧:
讓{ 和 } 不縮進(jìn):
Options->Document Options->Auto Indent->Indent Open Brace/Indent Close Brace
hao space: SourceInsight 小技巧
1、按住"ctrl", 再用鼠標(biāo)指向某個(gè)變量,點(diǎn)擊一下,就能進(jìn)入這個(gè)變量的定義。
2、今天把一個(gè)用sourceinsight排版整齊的C文件,偶然用VC打開(kāi)一看,全亂了。研究了半天,發(fā)現(xiàn)SI對(duì)每個(gè)字符的寬度不太一致。
請(qǐng)教同事發(fā)現(xiàn)選上"view --> draft view", 就可以讓每個(gè)字符的寬度一致了??旖萱I是 "Alt + F12"
3、"shift+F8" 標(biāo)亮所有文本中光標(biāo)所在位置的單詞
4、跳到某一行:"ctrl + g"
Source Insight是閱讀和編寫(xiě)代碼的好東東,基本上也算得上是經(jīng)典之作了,雖然還有一點(diǎn)點(diǎn)小bug,不過(guò)對(duì)于我們這些C程序員來(lái)說(shuō)可是一旦擁有別無(wú)所求。下 列小技巧是在工作中同事整理總結(jié)的,對(duì)提高工作效率多少有點(diǎn)幫助,其中有些是對(duì)應(yīng)于SVN的,沒(méi)有使用SVN做版本管理的人就不要白費(fèi)力氣了。
ShellExecute open explorer /e,/select,%f
/*作用是在資源管理器中打開(kāi)當(dāng)前編輯文件并選中*/
/*可以設(shè)置快捷鍵如ctrl+e,這樣能很方便的在資源管理器打開(kāi)對(duì)應(yīng)的文件,并進(jìn)行tortoiseSVN的相關(guān)操作*/
X:Progra~1TortoiseSVNinTortoiseProc.exe /command:log /path:% /notempfile /closeonend
/*使用前注意更改對(duì)應(yīng)的bin安裝路徑*/
/*作用是直接查看當(dāng)前文件的svn log*/
/*可以設(shè)置快捷鍵如ctrl+l*/
X:Progra~1TortoiseSVNinTortoiseProc.exe /command:diff /path:% /notempfile /closeonend
/*使用前注意更改對(duì)應(yīng)的bin安裝路徑*/
/*作用是直接查看當(dāng)前文件和基準(zhǔn)版本的比較*/
/*可以設(shè)置快捷鍵如ctrl+d*/
Source Insight中的文件過(guò)濾器
遇到在新建工程的時(shí)候,需要加入一些除了.c .h 等之外的文件,比如.s,.scf ,Makefile和ReleaseNotes等文件,而每次新建工程的時(shí)候,即使取消了shown only known document types,和在點(diǎn)擊Add All之后選擇了Recusively add lower sub-directories ,也還是不能正常識(shí)別這類文件,也就不能加入進(jìn)工程,只能我們自己手動(dòng)雙擊添加到工程中,如果文件少還無(wú)所謂,但是包含了很多子文件夾的大工程,這樣實(shí)在不可行。
百度了下,終于發(fā)現(xiàn)解決辦法了:
打開(kāi)Source Insight,在新建工程之前,進(jìn)入
Options -> Document Options... Alt-T -> 點(diǎn)擊Document Type的下拉框,然后選擇Make File,在右邊的File Filter中,在原先的*.mak后面加上一個(gè)分號(hào),即多個(gè)不同過(guò)濾規(guī)則以分號(hào)間隔開(kāi),再加上*makefile,變成 *.mak;*makefile,并且選中Include when adding to projects,這樣,以后再新建工程的時(shí)候,就可以識(shí)別makefile或Makefile了(好像此處Source Insight并不區(qū)分大小寫(xiě))。
類似的原理,給其他你想要加入的不同的類型的文件,分別加入到原先的一些文件類型后面,注意要用分號(hào)隔開(kāi),或者直接新建一個(gè)文件類型,然后寫(xiě)上對(duì)應(yīng)的顧慮規(guī)則,比如
點(diǎn)擊 Add Type,填入新文件類型的名字Scatter File,F(xiàn)ile Filter中寫(xiě)上*.scf,注意再選中下面的Include when adding to projects,這樣就建立了一個(gè)新的文件類型, 以后新建工程加入文件時(shí)候,系統(tǒng)就能夠識(shí)別后綴是scf的文件了。
當(dāng)然感興趣的,還可以對(duì)你新建立的文件類型進(jìn)行一些格式化設(shè)置。包括Parsing,Tab等等設(shè)置。
附上下載地址:http://www.skycn.com/soft/15346.html</a |