Source Insight 使用小技巧-2

1 sourceinsight screen font 的默認字體是Verdana的,它是一直變寬字體。在Document style中可以將字體改爲定寬的Courier 2 勾掉indent Open Brace和Indent Close Brace的效果: 繼上一段,在相對縮進行裏, 如果輸入"{"或"}", 則自動和上一行列對齊 3 今天把一個用sourceinsight排版整齊的C文件,偶然用VC打開一看,全亂了。研究了半天,發現SI對每個字符的寬度不太一致。 發現選上"view --> draft view", 就可以讓每個字符的寬度一致了。快捷鍵是 "Alt + F12" 4選中幾行代碼按tab鍵或者shift+tab可以左右移動代碼,調整代碼時很有用。配置成簡單好用的c/java代碼編輯器 1、縮進與tab (1)Options菜單àPreferencesàTyping卡,勾掉下面兩項∶ Typing tab indents line,regardless of selection,空行按tab無法前進 Typing tab replaces current selection,選定部分內容、再按tab時會清除所選 (2)Options菜單àDocument Options(針對不同文件類型,分別進行設置)à下拉左上文件類型框、選擇合適類型(c源文件)àEditing Options框中,tab width=2à Editing Options框中,勾選Expand tabs(這樣,按tab鍵、等價於輸入2個空格) (3)Options菜單àDocument Optionsà選擇合適的文件類型à點擊右邊中間的Auto Indent鈕à在彈出的框中,左邊一定要點Smart,右邊有兩個複選框Indent Open Brace和Indent Close Brace,具體效果可以看SIS的HELP。按照部門裏的編程風格要求,最方便的就是把兩個複選框都取消掉,然後點OK。 勾選Auto Indent之SMART的效果∶在C程序裏, 如果遇到行末沒有分號的語句,如IF, WHILE, SWITCH等, 寫到該行末按回車,則新行自動相對上一行縮進兩列。 勾掉Indent Open Brace和Indent Close Brace的效果∶繼上一段,在相對縮進行裏, 如果輸入"}", 則自動和上一行列對齊(好像勾不勾都會有這個功能);而輸入"{"時,不會與下面的行對齊(這是勾上Indent Open Brace時的效果)。 2、向項目中添加文件時,只添加特定類型的文件(文件類型過濾器)有個同事比較生猛,得整彙編代碼,但在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裏面。 3、去掉功能強大但是無用的自動完成功能 Options菜單àPreferences àTyping卡àAuto Completion框,勾掉Use automatic symbol completion window(這裏是SIS的全局設置) Options菜單àDocument OptionsàEditing Options框中,勾掉Allow auto-complete(局部設置) 上面兩項必須全部勾選,才能啓用Auto Completion功能 4、恢復小鍵盤的“+,-,*,/”功能 Options菜單àKey assignments,通過關鍵詞Scroll 找到Scroll Half Page Up,取消小鍵盤/;通過關鍵詞Scroll 找到Scroll Half Page Down取消小鍵盤*;通過關鍵詞Function找到Function Up,取消小鍵盤-,通過關鍵詞Function找到Function down,取消小鍵盤+。 5、恢復ctrl+a的全選功能通過關鍵詞save 找到save all,更改爲ctrl+shift+a,通過關鍵詞select找到select all, 更改爲ctrl +a 6、解決字符等寬對齊問題。 SIS默認字體是VERDANA,很漂亮。這網頁上應該也是用的VERDANA字體。但由於美觀的緣故,VERDANA字體是不等寬的。比如下面兩行 llllllllll MMMMMMMMMM 同樣10個字符,長度差多了.用VERDANA來看程序,有些本應該對齊的就歪了。解放方法是使用等寬的字體,但肯定比較醜。可以用DOS字體,也就是記事本里的默認字體sysfixed 很醜,要有心理準備。比較推薦的是用Courier New。

 

SourceInsight提供的功能

1、解析日誌信息時非常有用的Source Link

總地說來,SourceLink根據特定的搜索模式,把當前文件中滿足模式的行、鏈接到由該行指定的其他源文件中。

所謂特定的搜索模式,共有兩種“File, then line”和“Line, then file”,其中前後兩部分依靠正則表達式的組的概念來予以分割。如果當前文件具有匹配行,比如“Error d:tcsrcq5.c 18: Lvalue required in function jsSort”,那麼SourceInsight在該行創建SourceLink、把該行鏈接到由該行指定的文件中(即d:tcsrcq5.c,第18行)。

1.1 創建SourceLink

運行Search菜單的Parse Source Links…命令,在彈出的框中、選擇搜索模式、並填入相應的正則表達式串,點OKSIS就會解析當前文件,如果有匹配,就創建SourceLink

1.2 在解析日誌信息時,使用SourceLink

可以打開日誌信息,運行Parse Source Links命令,日誌中能夠匹配模式的每一行(通常是含有錯誤信息的行)、就會被設置上一個SourceLink

1.3在解析自定義命令輸出時,使用SourceLink

首先勾選Custom Command 中的“Parse Links in Output”,然後選擇特定的搜索模式,最後填入合適的正則表達式。這樣,Source Insight把輸出信息作爲當前搜索用文件;並且,如果有匹配行(通常即編譯錯誤信息行),SIS 該行創建SourceLink、並把每一個錯誤信息中給定的文件(和行號)作爲link目的地,這對於我們修改源代碼錯誤非常有幫助。

2、替換(Replace VS 上下文敏感的智能重命名(Context-Sensitive Smart Rename

2.1 替換(Replace

目前來說,普通的替換命令、快捷鍵爲ctrl+H,足以已滿足工作要求。

在彈出的替換窗口中,在Search框中勾選Selection來只在所選文本區域中替換(當然這時你要先選定區域然後再按ctrl+H)、勾選WholeFile來在整個當前文件內替換、兩者都不勾選來從當前光標處替換至文件末尾;點右邊的Files…按鈕,可選擇替換多個文件的內容。

2.2上下文敏感的智能重命名(Context-Sensitive Smart Rename

Smart Rename命令、快捷鍵是Ctrl+’,是上下文敏感的全局搜索替換。它可以智能地重命名全部項目文件中的一個標示符。SourceInsight的搜索索引(search index)使得搜索過程進行地非常快。而且,使用Smart Rename所做的替換會被記錄在Search Results窗口中,每一條替換記錄旁有一個SourceLink鏈接到替換髮生地文件。

Smart Rename可以用來重命名標記(symbol)。如果勾選了Smart Reference Matching選項,Smart Rename就只在正確的上下文範圍內進行重命名。它可以智能地重命名全部項目文件中的一個標示符;它可以重命名函數本地變量,類或結構體成員、函數。

在彈出的Smart Rename窗口中有下面幾項∶

Old Name 填舊名稱。光標下的詞會被自動加載;光標的位置非常重要,這是因爲Source Insight會根據本地上下文背景、準確地確定你想要重命名哪一個標記。

推薦只填單個詞、而不是字符串。

如果你在命名成員變量、或本地變量(),Old Name框中會顯示完全標記名、即上層容器名+標記名。例如,框中的“DocDraw.paintStruc”代表DocDraw是函數名,paintStruc是函數的本地成員變量。

New Name 填新名稱。只填標記名,不填上層容器名。

Output Search Results 如果勾選,搜索替換結果日誌會被輸出到Search Results窗口中。可以通過Windows菜單來切換,或ctrl+tab切換察看。並且每一條記錄旁會有SourceLink鏈接到替換髮生地文件。

Confirm Each Replacement 每次替換詢問。

Skip Comments 不重名註釋部分。

 

【使用心得列表】

(1)如何用Smart Rename重命名數組的數組名?如果只選取數組名,會報錯!

(2)如果勾掉Smart Reference Matching,會搜索全部項目文件,並且Old Name框中不顯示完全限定名;如果勾選Smart Reference Matching,無法重命名數組名,而且鼠標位置不正確時會報錯。應該如何應對? 

 

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 自定義鍵打開 先鎖定再刷新聯繫

在Source Insight中添加自定義功能的步驟如下:
1.Source Insight中,Options->Custom Commands...->Add...,New Command name 隨便寫,我的是"Edit with Vim"
2.Run中寫入: "C:/Program Files/Vim/vim63/gvim.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 Files/TortoiseSVN/bin/TortoiseProc.exe" /command:log /path:%f /notempfile /closeonend
diff
"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:diff /path:%f /notempfile /closeonend
取得鎖定(check out)
"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:lock /path:%f /notempfile /closeonend
提交(check in)
"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:commit /path:%f /notempfile /closeonend
更新(update)
"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:update /path:%f /notempfile /closeonend
更新整個目錄(update all)
"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:update /path:*.* /notempfile /closeonend
取消鎖定(undo check out)
"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:revert /path:%f /notempfile /closeonend
在ultriEdit中編輯
"C:/Program Files/UltraEdit-32/uedit32" %f
在vim中編輯並定位到當前行
"C:/Program Files/Vim/vim63/gvim.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打開一看,全亂了。研究了半天,發現SI對每個字符的寬度不太一致。
    請教同事發現選上"view --> draft view", 就可以讓每個字符的寬度一致了。快捷鍵是 "Alt + F12"

3、"shift+F8" 標亮所有文本中光標所在位置的單詞

4、跳到某一行:"ctrl + g"

Source Insight是閱讀和編寫代碼的好東東,基本上也算得上是經典之作了,雖然還有一點點小bug,不過對於我們這些C程序員來說可是一旦擁有別無所求。下列小技巧是在工作中同事整理總結的,對提高工作效率多少有點幫助,其中有些是對應於SVN的,沒有使用SVN做版本管理的人就不要白費力氣了。

ShellExecute open explorer /e,/select,%f
       
       

X:/Progra~1/TortoiseSVN/bin/TortoiseProc.exe /command:log /path:% /notempfile /closeonend
       
       
       

X:/Progra~1/TortoiseSVN/bin/TortoiseProc.exe /command:diff /path:% /notempfile /closeonend
       
       
       

                                       Source Insight中的文件過濾器

遇到在新建工程的時候,需要加入一些除了.c .h 等之外的文件,比如.s,.scf ,Makefile和ReleaseNotes等文件,而每次新建工程的時候,即使取消了shown only known document types,和在點擊Add All之後選擇了Recusively add lower sub-directories ,也還是不能正常識別這類文件,也就不能加入進工程,只能我們自己手動雙擊添加到工程中,如果文件少還無所謂,但是包含了很多子文件夾的大工程,這樣實在不可行。

百度了下,終於發現解決辦法了:

打開Source Insight,在新建工程之前,進入

Options -> Document Options... Alt-T    -> 點擊Document Type的下拉框,然後選擇Make File,在右邊的File Filter中,在原先的*.mak後面加上一個分號,即多個不同過濾規則以分號間隔開,再加上*makefile,變成 *.mak;*makefile,並且選中Include when adding to projects,這樣,以後再新建工程的時候,就可以識別makefile或Makefile了(好像此處Source Insight並不區分大小寫)。

類似的原理,給其他你想要加入的不同的類型的文件,分別加入到原先的一些文件類型後面,注意要用分號隔開,或者直接新建一個文件類型,然後寫上對應的顧慮規則,比如

點擊 Add Type,填入新文件類型的名字Scatter File,File Filter中寫上*.scf,注意再選中下面的Include when adding to projects,這樣就建立了一個新的文件類型, 以後新建工程加入文件時候,系統就能夠識別後綴是scf的文件了。

當然感興趣的,還可以對你新建立的文件類型進行一些格式化設置。包括Parsing,Tab等等設置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章