ZNDS智能電視網 推薦當貝市場

TV應用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計算器

綜合交流 / 評測 / 活動區(qū)

交流區(qū) | 測硬件 | 網站活動 | Z幣中心

新手入門 / 進階 / 社區(qū)互助

新手 | 你問我答 | 免費刷機救磚 | ROM固件

查看: 18470|回復: 0
上一主題 下一主題
[交流&討論]

推薦一個查看源碼的好工具Source Insight

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

上一篇:第24講:Android動畫入門(一).docx
下一篇:獲取別人Android程序中的圖片資源的方法
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

Archiver|新帖|標簽|軟件|Sitemap|ZNDS智能電視網 ( 蘇ICP備2023012627號 )

網絡信息服務信用承諾書 | 增值電信業(yè)務經營許可證:蘇B2-20221768 丨 蘇公網安備 32011402011373號

GMT+8, 2025-1-14 16:37 , Processed in 0.073976 second(s), 15 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報:report#znds.com (請將#替換為@)

© 2007-2025 ZNDS.Com

快速回復 返回頂部 返回列表