烤鴨的SourceInsight學習筆記
1.前言
寫這份文檔時,我用的SI版本是:Version 3.5。
2.常用設置
2.1.縮進
Options菜單DocumentOptions選擇合適的文件類型點擊右邊中間的Auto Indent鈕在彈出的框中,左邊選中點Simple。這樣在輸入函數回車后"{"不會縮進,而是和函數名稱對齊。
2.2.TAB與空格
Options菜單DocumentOptions Editing Options框中,tab width= 4 EditingOptions框中,勾選Expand tabs(這樣,按tab鍵、等價于輸入4個空格)在嚴格的編碼規(guī)范中不可以使用Tab,要使用空格。這個是節(jié)省工作的符合編碼規(guī)范的好方法。
2.3.可視化制表符和空格導致亂碼
Options > Document Options對話框中同時勾選了“VisiableTabs”和“Visiable spaces”兩個選項,會導致tab和空格字符亂碼
2.4.中文注釋間有空格
用Source Install寫代碼的時候,中文注釋的每個漢字間都會有一個空格,這樣看起來相當的不習慣。打開options->styleproperties對話框,找到如下style:
comment
…
commentTo Do
里面的font->font name設置為“Fixedsys”或其它中文字體就可以了。
2.5.等寬字體的調整
Source Insight 菜單欄選擇Options->DocumentOptions(或者直接Alt+T),打開DocumentOptions對話框,點擊Screen Fonts,在新打開的字體對話框中設置為Fixedsys就OK啦。
Alt+F12可以將視圖切換至草稿視圖風格(draft view),可以有不同的視覺效果,試試吧。
2.6.不支持UTF-8
讓我疑惑的是,廣受歡迎的Source insight竟然不支持UTF-8,導致很多中文會顯示亂碼。轉為ANSI格式即可正常顯示??梢杂糜浭卤敬蜷_源代碼,再另存為ANSI格式的文件來進行轉化。
2.7.Options->Perferences菜單配置
2.7.1.General
把Misc->Use stricterconfirmation dialog選項去掉可以使確認時不輸入"yes"。
2.7.2.Typing
Auto Completion->Use detailedcompletion window,選上后,聯(lián)想時可以出現(xiàn)該函數的詳細信息。如下圖所示:

圖表2?1 Typing
2.7.3.Display
Show exact caseof file names。如果看不慣si把所有的文件名首字母都大寫就勾上這個選項吧。
Trim long pathnames with ellipses。這個建議不要選中。事實上這個主要影響標題欄,但一般來說標題欄上的空間是充裕的,選上之后往往會令我們不知道所編輯文件的具體位置。
2.7.4.SyntaxFormatting
Basics->Useonly color formatting,個人還是習慣勾選這個,效果比較好。
3.SI宏
本章節(jié)介紹的宏文件,可以到我在CSDN上傳的資源《Source Insight宏庫.rar》去下載:http://download.csdn.net/detail/benkaoya/4888265
3.1.使用宏
這里舉個例子。首先要有宏文件(如SuperBackspace.em),至于宏的基礎知識不在本文討論范圍內。文件中有個宏Marco: SuperBackspace,該宏的作用是在刪除中文時,增加了對雙字節(jié)漢字的支持,我們要將該宏綁定到BackSpace鍵。那操作步驟如下:
① 將文件SuperBackspace.em復制入SourceInsight安裝目錄;
② 打開SI,選擇菜單 Project→Open Project,打開Base項目(Base項目是SI安裝是就有的);
③ 將復制過去的SuperBackspace.em添加入Base項目;
④ 重啟SourceInsight;(不重啟好像看不到宏Marco: SuperBackspace)
⑤ 選擇菜單Options→Key Assignments,將Marco:SuperBackspace綁定到BackSpace鍵;
3.2.官方宏庫
http://www./public/macros/
這里有很多例子值得學習。
3.3.我的宏庫
宏文件(*.em)
|
宏名
|
我的快捷鍵/菜單
|
功能描述
|
CompleteWord.em
|
Macro: CompleteWord
|
Alt+E
|
字符補全功能(雖然SI在你輸入時,能列出一個可選列表,但往往很多詞他沒法列出),這個宏非常好用。
|
AutoExpand.em
|
Macro: AutoExpand
|
Ctrl+Q
|
◆C語句自動擴展,如輸入if后按快捷鍵Ctrl+Q即可實現(xiàn)自動擴展。
可支持有:for、while、do、switch、#if、#ifndef、#ifdef、{等
◆文件頭注釋塊、函數頭注釋塊模板自動擴展。輸入/*或者/**按快捷鍵;
◆頭文件要寫防止重復編譯的預編譯處理時,可以輸入#ifndefh,按快捷鍵自動完成。
|
Switch_cpp_hpp.em
|
Macro: switch_cpp_hpp
|
Alt+O
|
在同名的cpp和h文件之間切換
|
Home.em
|
Macro: Home
Macro: ShiftHome
|
Home
Shift+Home
|
SI自帶快捷鍵Shif+Home的Navigation: Select To Start Of Line會把行首的空白字符也選進來。我還是更習慣于把行首非空白字符作為第一個字符。同樣的Home是也如此
|
ChineseCharacters.em
|
Macro: SuperBackspace
|
綁定到
BackSpace
|
使SI對中文按一個字符操作(如刪除,左右移),但鼠標拖動選中中文還是會出現(xiàn)亂碼。
|
Macro: SuperDelete
|
綁定到
Del
|
Macro: SuperCursorLeft
|
綁定到
Left
|
Macro: SuperCursorRight
|
綁定到
Right
|
Macro: SuperShiftCursorLeft
|
綁定到Shift+Left
|
Macro: SuperShiftCursorRight
|
綁定到Shift+Right
|
說明:
◆CompleteWord.em
字符補全的關鍵字所在文件要處于打開的狀態(tài),否則無效。按以下順序查找關鍵字:
① 光標位置向上搜索(當前文件)
② 光標位置向下搜索(當前文件)
③ 其他文件從開始位置搜索
CompleteWord按以上順序搜索顯示,CompleteWordBack則在CompleteWord搜索出來列表的基礎上反方向顯示。
4.常用快捷鍵
默認快捷鍵
|
我的快捷鍵
|
說明
|
Ctrl + L Click (select)
|
|
Symbol: Jump To Definition
|
Ctrl + R Click (select)
|
|
Symbol: Symbol Info...
|
F3
|
|
向后搜索
|
F4
|
|
向前搜索
|
F5
Ctrl + g
|
|
Go to line
|
F12
|
|
向前搜索,到文件尾后會回到文件頭
|
Shift+F3
|
|
向后搜索當前光標所處的字符串;
無須調出搜索對話框,而且使用過后就能用F3、F4、F12了
|
Shfit+F4
|
|
類似Shift+F3,只是向前搜索而已
|
Ctrl + m
|
|
Bookmark
|
Ctrl + home
|
|
Top of File
|
Ctrl + End
|
|
Bottom of File
|
Ctrl+9
|
|
跳至圓括號左邊
|
Ctrl+0
|
|
跳至圓括號右邊
|
Ctrl+Shift+{
|
|
跳至當前代碼塊所在的{,
鼠標可以置于{}塊中的任一位置
|
Ctrl+Shift+}
|
|
跳至當前代碼塊所在的},
鼠標可以置于{}塊中的任一位置
|
單擊編輯窗口左邊選擇欄
Shift+F6
|
|
選擇整行
|
雙擊編輯窗口左邊選擇欄
|
|
Select the whole enclosing symbol definition.
相當于雙擊symblo窗口中的symblo選中整個symblo,
可用于全選整個函數、整個結構體,以及其他類型的symblo
|
Ctrl + 單擊編輯窗口左邊的選擇欄
|
|
全選(整個文件)
|
Ctrl + - (不能用小鍵盤的-號)
|
|
選擇大括號、圓括號內的內容
鼠標可以置于匹配范圍內任一地方
|
在匹配符前面,雙擊或者Alt+=
|
|
即可選中{}、()、<>、[]、“”匹配范圍;
注意:鼠標一定要放在以上符號前面執(zhí)行動作
|
Alt+]
|
|
跳至匹配的字符{}、()、<>、[];
注意:SI默認的命令Jump To Match要求鼠標一定要放在以上符號前面執(zhí)行動作
|
Shift+Tab
|
|
Back Tab
|
Ctrl+S
|
|
File: Save
|
Ctrl+A
|
|
File: Save All
|
Alt + (KeyPad) +
|
|
Navigation: Go To Next Change
|
Alt + (KeyPad) -
|
|
Navigation: Go To Previous Change
|
Alt + L Click
|
|
Navigation: Make Column Selection
|
Shift+F1
|
|
Windows: Select Previous Window
|
Shift+F2
|
|
Windows: Select Next Window
|
Shift+F8
|
|
View: Highlight Word
|
Ctrl+Tab
|
|
Windows: Last Window
|
Ctrl+Shift+]
|
|
到塊的下面
|
Ctrl+Shift+[
|
|
到塊的上面
|
|
|
|
5.CustomCommands
5.1.自定義命令
自定義命令可以讓你很容易的執(zhí)行外部shell批處理程序或者window程序,自定義一個命令后,你可以給該命令定義一個快捷鍵或者一個菜單項,以方便調用。自定義命令的完整步驟如下:
◆Source Insight菜單Options->CustomCommands...在彈出的Custom Commands對話框中點擊Add按鈕新建一個自定義命令(名稱自己隨便取個,如Editwith UE);
◆添加完新命令后,回到Custom Commands對話框界面,在Run編輯框中輸入完整的命令,包括應用程序路徑,程序條用的參數,如:"C:\Program Files\UltraEdit-32/uedit32" %f(意思是:在ultriEdit中編輯SI當前文件)。可以點擊Run按鈕來試運行下效果。
◆你還可以按Menu或Keys按鈕來給剛自定義的命令關聯(lián)一個菜單或者快捷鍵。

圖表5?1 Custom Commands
5.2.我的自定義命令
以下幾個自定義命令我把他們關聯(lián)到了菜單。
自定義的菜單名
|
功能
|
Run編輯框內容
|
Explore File
|
打開資源管理器并選中當前文件
|
ShellExecute open explorer /e,/select,%f
|
Edit with UE
|
在ultriEdit中編輯
|
"C:\Program Files\UltraEdit-32/uedit32" %f
|
Edit with VIM
|
在vim中編輯并定位到當前行
|
"C:\Program Files\Vim\vim63\gvim.exe" --remote-silent +%l %f
|
AStyle_C
|
格式化當前文件(后面章節(jié)會介紹)
|
"C:\AStyle\bin\AStyle.exe" --options="C:\AStyle\bin\c.opt" %f
|
Trim Whitespace
|
刪除整個文件每行行末尾的空白字符
|
這個是從Edit: Trim Whitespace從加進來的,是SI自帶的功能,只是沒有放到菜單上來而已。
|
關于這些%f、%l等參數什么意思,這是SI的通配符,可以搜索下SI幫助文檔“Command Line Substitutions”章節(jié),里面有詳細的介紹。我這里列舉幾個:
Character
|
Expands to
|
Example
|
%f
|
full path name of the current file *
|
c:\myproj\file.c
|
%r
|
path name of current file relative to the project source directory *
|
file.c
|
%n
|
leaf name of the current file *
|
file.c
|
%d
|
directory path of the current file
|
c:\myproj
|
%h
|
directory path of current file without the drive letter
|
\myproj
|
%b
|
leaf name of current file w/o extension *
|
file
|
%e
|
extension of the current file
|
c
|
%c
|
drive letter of the current file
|
c:
|
%p
|
the current project name
|
c:\myproj\myproj
|
%j
|
the source directory of the current project
|
c:\myproj
|
%J
|
the data directory of the current project
|
C:\Documents and Settings\Jim Smith\My Documents\Source Insight\Projects\Base
|
%v
|
the drive letter of the current project’s source directory
|
c:
|
%o
|
leaf name of the project without path
|
myproj
|
%l
|
the current line number
|
any number
|
%w
|
first word in the selection, or the word under the cursor
|
any word
|
%s
|
name of a temp file where the current selection is saved while the custom command runs.
|
d:\tmp\vt0004.
|
%a
|
the current date
|
2005-12-2
|
%t
|
the current time
|
8:23
|
%1 - %9
|
user is prompted for arguments
|
any strings
|
6.代碼格式化
Source Insight本身沒有對代碼進行格式化的功能,如果將Artistic Style集成到SourceInsight中,那就可以為它擴展出代碼格式化的功能了。
很可惜的是:SI只能格式化整個文件,我還沒找到可以格式化部分選中行的方法。如果有誰知道了,請告知我下。
6.1.AStyle下載路徑
AStyle為開源項目,支持C/C++、C#、java的代碼格式化
Home Page: http://astyle./
Project Page: http:///projects/astyle/
下載最新Windows版本的AStyle,解壓到C盤根目錄,如C:\AStyle\bin\AStyle.exe
6.2.自定義命令集成Astyle工具
添加新的自定義命令Astyle_C,參數設置為:
“C:\AStyle\bin\AStyle.exe” --style=linux -s4 -S -N -L -m0 -M40 --suffix=none --convert-tabs %f
|
你還可以把AStyle定制的選項放在一個配置文件里:
“C:\AStyle\bin\AStyle.exe” --options=”C:\AStyle\bin\c.opt” %f
|
配置文件C:\AStyle\bin\c.opt文件的內容大致如下:
#大括號的樣式
--style=ansi
#縮進樣式(用tab還是space)
--indent=tab=4
#有的if語句沒有{},自動補全
--add-brackets
#定義指針變量時,*號緊貼變量名
--align-pointer=name
|
這里只是做個簡介,詳細的參數說明可以看AStyle安裝目錄的幫助文檔,如C:\AStyle\doc\index.html,或者看在線幫助文檔:http://astyle./astyle.html
6.3.其他工具
也可以用其他格式化工具,可以選自己喜歡的用。比如:
工具
|
官網
|
indent
|
http://www./software/indent/
http://mirror./gnu/indent/
[for windows]
http://gnuwin32./packages/indent.htm
|
uncrustify
|
http:///projects/uncrustify/files/
|
|
|
7.插件
7.1.TabSiPlus
作者博客 :http://blog.csdn.net/orbit/article/details/7702472
下載地址1:http://www./download/TabSiPlus_0_99b2_1749.rar
下載地址2:http://www./download/TabSiPlus_0_99b2_1510.rar
這是個文件標簽的插件,蠻好用的,誰用誰知道。效果如下圖所示:

圖表7?1 TabSiPlus效果圖
8.其他
8.1.ProjectWindow
比如要快速查找autoexp.em文件,可以在編輯框中輸入*.em回車。如果要再次顯示全部文件,輸入**回車。如果你要查看非項目里的文件輸入點‘.’回車。
|