烤鸭的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个空格)在严格的编码规范中不可以使用Tab,要使用空格。这个是节省工作的符合编码规范的好方法。
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,选上后,联想时可以出现该函数的详细信息。如下图所示:

图表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宏
本章节介绍的宏文件,可以到我在CSDN上传的资源《Source Insight宏库.rar》去下载:http://download.csdn.net/detail/benkaoya/4888265
3.1.使用宏
这里举个例子。首先要有宏文件(如SuperBackspace.em),至于宏的基础知识不在本文讨论范围内。文件中有个宏Marco: SuperBackspace,该宏的作用是在删除中文时,增加了对双字节汉字的支持,我们要将该宏绑定到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即可实现自动扩展。
可支持有: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对中文按一个字符操作(如删除,左右移),但鼠标拖动选中中文还是会出现乱码。
|
Macro: SuperDelete
|
绑定到
Del
|
Macro: SuperCursorLeft
|
绑定到
Left
|
Macro: SuperCursorRight
|
绑定到
Right
|
Macro: SuperShiftCursorLeft
|
绑定到Shift+Left
|
Macro: SuperShiftCursorRight
|
绑定到Shift+Right
|
说明:
◆CompleteWord.em
字符补全的关键字所在文件要处于打开的状态,否则无效。按以下顺序查找关键字:
① 光标位置向上搜索(当前文件)
② 光标位置向下搜索(当前文件)
③ 其他文件从开始位置搜索
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+=
|
|
即可选中{}、()、<>、[]、“”匹配范围;
注意:鼠标一定要放在以上符号前面执行动作
|
Alt+]
|
|
跳至匹配的字符{}、()、<>、[];
注意:SI默认的命令Jump To Match要求鼠标一定要放在以上符号前面执行动作
|
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.自定义命令
自定义命令可以让你很容易的执行外部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按钮来给刚自定义的命令关联一个菜单或者快捷键。

图表5?1 Custom Commands
5.2.我的自定义命令
以下几个自定义命令我把他们关联到了菜单。
自定义的菜单名
|
功能
|
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
|
格式化当前文件(后面章节会介绍)
|
"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”章节,里面有详细的介绍。我这里列举几个:
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回车。如果要再次显示全部文件,输入**回车。如果你要查看非项目里的文件输入点‘.’回车。
|