如果你觉得这网页排版不好看,可以去下载我上传的word版:《烤鸭的Source Insight学习笔记.doc》 http://download.csdn.net/detail/benkaoya/4888311
烤鸭的SourceInsight学习笔记
写这份文档时,我用的SI版本是:Version 3.5。
Options菜单DocumentOptions选择合适的文件类型点击右边中间的Auto Indent钮在弹出的框中,左边选中点Simple。这样在输入函数回车后"{"不会缩进,而是和函数名称对齐。
Options菜单DocumentOptions Editing Options框中,tab width= 4 EditingOptions框中,勾选Expand tabs(这样,按tab键、等价于输入4个空格)在严格的编码规范中不可以使用Tab,要使用空格。这个是节省工作的符合编码规范的好方法。
Options > Document Options对话框中同时勾选了“VisiableTabs”和“Visiable spaces”两个选项,会导致tab和空格字符乱码
用Source Install写代码的时候,中文注释的每个汉字间都会有一个空格,这样看起来相当的不习惯。打开options->styleproperties对话框,找到如下style:
comment
…
commentTo Do
里面的font->font name设置为“Fixedsys”或其它中文字体就可以了。
Source Insight 菜单栏选择Options->DocumentOptions(或者直接Alt+T),打开DocumentOptions对话框,点击Screen Fonts,在新打开的字体对话框中设置为Fixedsys就OK啦。
Alt+F12可以将视图切换至草稿视图风格(draft view),可以有不同的视觉效果,试试吧。
让我疑惑的是,广受欢迎的Source insight竟然不支持UTF-8,导致很多中文会显示乱码。转为ANSI格式即可正常显示。可以用记事本打开源代码,再另存为ANSI格式的文件来进行转化。
把Misc->Use stricterconfirmation dialog选项去掉可以使确认时不输入"yes"。
Auto Completion->Use detailedcompletion window,选上后,联想时可以出现该函数的详细信息。如下图所示:
图表2‑1 Typing
Show exact caseof file names。如果看不惯si把所有的文件名首字母都大写就勾上这个选项吧。
Trim long pathnames with ellipses。这个建议不要选中。事实上这个主要影响标题栏,但一般来说标题栏上的空间是充裕的,选上之后往往会令我们不知道所编辑文件的具体位置。
Basics->Useonly color formatting,个人还是习惯勾选这个,效果比较好。
本章节介绍的宏文件,可以到我在CSDN上传的资源《Source Insight宏库.rar》去下载:http://download.csdn.net/detail/benkaoya/4888265
这里举个例子。首先要有宏文件(如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键;
http://www.sourceinsight.com/public/macros/
这里有很多例子值得学习。
宏文件(*.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搜索出来列表的基础上反方向显示。
默认快捷键 |
我的快捷键 |
说明 |
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+[ |
|
到块的上面 |
|
|
|
自定义命令可以让你很容易的执行外部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
以下几个自定义命令我把他们关联到了菜单。
自定义的菜单名 |
功能 |
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 |
Source Insight本身没有对代码进行格式化的功能,如果将Artistic Style集成到SourceInsight中,那就可以为它扩展出代码格式化的功能了。
很可惜的是:SI只能格式化整个文件,我还没找到可以格式化部分选中行的方法。如果有谁知道了,请告知我下。
AStyle为开源项目,支持C/C++、C#、java的代码格式化
Home Page: http://astyle.sourceforge.net/
Project Page: http://sourceforge.net/projects/astyle/
下载最新Windows版本的AStyle,解压到C盘根目录,如C:\AStyle\bin\AStyle.exe
添加新的自定义命令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.sourceforge.net/astyle.html
也可以用其他格式化工具,可以选自己喜欢的用。比如:
工具 |
官网 |
indent |
http://www.gnu.org/software/indent/ http://mirror.bjtu.edu.cn/gnu/indent/
[for windows] http://gnuwin32.sourceforge.net/packages/indent.htm |
uncrustify |
http://sourceforge.net/projects/uncrustify/files/ |
|
|
作者博客 :http://blog.csdn.net/orbit/article/details/7702472
下载地址1:http://www.winmsg.com/download/TabSiPlus_0_99b2_1749.rar
下载地址2:http://www.winmsg.com/download/TabSiPlus_0_99b2_1510.rar
这是个文件标签的插件,蛮好用的,谁用谁知道。效果如下图所示:
图表7‑1 TabSiPlus效果图
比如要快速查找autoexp.em文件,可以在编辑框中输入*.em回车。如果要再次显示全部文件,输入**回车。如果你要查看非项目里的文件输入点‘.’回车。