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…命令,在彈出的框中、選擇搜索模式、並填入相應的正則表達式串,點OK,SIS就會解析當前文件,如果有匹配,就創建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等等設置。