开胃菜-初级应用
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
选择美丽的界面享受工作
字体选择
在SI中样式是可以被继承,如果要从根本上改变字体,最简单的方式就是直接修改根样式中的字体,因为其它样式都会由此继承而来。选择Options/Document Options页面颜定义
选择Options/Style Properties页面,就可以在其中修改所有样式了。选择等号(=)表示继承Parent Style,也可以选择Pick(或者ON/OFF等)去配置一个新值
。
标识符样式选择
在与颜定义一节同样的界面while (1) {
I }
while (1)
{
I
}
何乐而不为呢?
显示坐标
创建便捷的快捷键快乐工作几个较常用的快捷键
默认情况下,SI已经定义了很多非常实用的快捷键:
F5
指定行号,实现行跳转,在遇到编译错误的时候,能特别方便的到出错行。 Shift+F8
高亮显示指定标识,快速浏览标识的使用情况。 Ctrl+鼠标点击标识
直接跳转至标识定义处。
Ctrl+F
F3
F4
F7厉害的编程代码
打开Browse Project Symbols窗口,快速浏览工程内标识定义。
Ctrl+M
创建或查书签,方便下次回此位置。
自定义快捷健
选择Options/Key Assignments,在弹出的Key Assignments窗口中可自由添加自己喜欢的快捷键。比较值得推荐的有如下几个快捷键定义:
Edit: Drag Line Down
光标当前行下移。
Edit: Drag Line Up
光标当前行下移。
Edit: Join Lines
当前行和下一行连接成一行。
更多的快捷键
如果你正好对SI的Marco语言(下文将会介绍)有研究,那么还可以定义更多有用的快捷键,比如添加文件头、函数头、注释等(下文在介绍Marco语言时会介绍如何实现)。
小技巧-中级应用
查与替换
在SI中支持多种查及替换方式,除了上文提到的文件R 按钮,在弹出的Loopup References窗口进行查操作。在Search Method中有四种可选的查方式:Simple String、Regular Expression、Keyword Expression和Look Up Reference。其中Simple String是最普通的查方式,可以查文件中出现的任意字符或字符,甚至可以查_upap || u 这样的字符串,但是在工程较大时,查过程会较慢。Regular Expression查方式将在后面讲述正则表达时会介绍到,这里暂时按下不表。Keyword Expression和Look Up Reference查的结果基本相同,但是显示方式略有差异。这两种方式都是使用SI预先建立的数据库,查起来速度相当快。但通常这种速度只对在查标识符时有明显效果。对于像函数名,变量名等的查,强烈建议使用这两种方式进行查。
2. Search Files
选择Search/Search Files或按Ctrl+Shift+F组合键,在弹出的Search Files窗口进行查操作。在File N
ame框中可以填入文件名或文件夹。注意当要查询的文件夹双包含子文件夹时,可以勾选Options中的Include Subdirectiories,实现对各层文件的递归搜索。
3. Search Project
选择Search/Search Project,在弹出的Search Project窗口进行查操作。操作与Loopup References几乎完全一致,它们各自保存上次搜索的配置。
替换
1. 单文件替换
选择Search/Replace或按Ctrl+H组合键,在弹出的Replace窗口进行查操作。在Search项目里勾选Selection则仅对当前选中的文档部分进行替换。另外如果勾选了Confirm Replacements则是逐个确认替换,否则会同时替换所有符合替换条件内容。
2. 多文件替换
选择Search/Replace Files或按Ctrl+Shift+H组合键,在弹出的Replace Files 窗口进行查操作。除了增加New框(替换后的array[0] = 1;
array[1] = 2;
array[2] = 3;
现在要改为
array[0] = 0; array[1] = 1;
array[2] = 2;
array[3] = 3;
当然可以一个个修改,但最快的方式是在array[0] = 1;之前添加array[0] = 0;,然后列选数组下标,使用Renumber功能以0为起始值重填数值。
Edit Condition
很多代码尤其是驱动代码,当中有大量的预编译定义,以实现对不同硬件配置的支持。在阅读这样的代码时
最痛苦的是不能简单判断程序实际执行的代码分枝。大量分枝同时存在,常常会混淆我们的视听。比
如对于下面的代码:#ifdef DEV1
/* DEV1代码代码*/
#else
/* 其它设备执行代码*/
#endif 如果确定我们当前分析的是DEV1的执行情况,那么可以选择上下文件菜单的Edit Condition 选项,在弹出的Conditional Parsing窗口中把DEV1的值设置为True,那么#ifdef DEV1就等价于#if 1了,相当注释掉了#else分枝的代码。反之,设置为Flase时,则注释掉#ifdef DEV1分枝的代码。
学会偷懒-高级应用
附录1-SI中正则表达式
由于在查及替换中,经常会使用用正则表达式,这里对SI的正则表达式进行简单介绍。
通配符
正则表达式通配符总表:
在执行替换操作时,组将大有用武之地。正则表达式的各个部分可以用/(和/)进行分隔,分隔得到的每一项就是一个组。在进行替换时可通过组从匹配内容中抽取出特定串。在正则表达式中每个组都有一个编号,自左至右编号从1开始。例如:abc/(xyx/)将能匹配abcxyz ,此时组1就包含了xyz 串。在进行替换操作时,就可以通过在替换后内容框中填入/1来取出这个字符串。推而广之,可以使用/<number>;来取得组<number>;所包含的串。例如:当设定把/(abc/)/(xyz/)替换为/2/1的替换规则时,对于abcxyz 被替换串,则组1包含abc,组2包含xyz,而替换后的内容定义为组2内容后跟组1内容(/2/1),因此将得到xyzabc。举个真实的使用例子,相信会增加大家的兴趣。有时为方便调试,代码中到处流浪着各种形式的mytrace调用
mytrace2-SI中的宏语言
我始终认为这是SI中最有趣的部分,这是一种功能强大的编程语言,几乎可以实现在编程过程可能使用到的各种功能。这里不准备对如何实用宏语言进行编程作介绍(可参阅SI帮助文档。),只介绍如何使用已编好程序。为方便使用,我已把这些程序都集中放在文件中,下文就此文件进行论述。该宏文件实现了一些在编码过程中可能会用到的功能, 如添加文件头、函数说明(使用时能自动添加文件名、函数名和当前日期)和宏定义,代码补全等。使用说明:
1. Project/
打开Base工程(该工程一般在";我的文档/Source Insight/Projects/Base";中);
2. Project/Add and Remove
加入宏文件(即);
3. Options/Menu Assignments
打开Menu Assignments窗口,在Command中输入Macro,选中要使用的宏,添加到合适的菜单中.
推荐使用的宏:InsFileHeader、InsFunHeader、InsHeaderDef、InsIfdef和AutoExpand (为代码自动补全功能,建议建快捷键)。关于AutoExpand的举例说明,当你输入了switch 且光标正处于switch后面,运行该宏则会得到switch (###) {
case
break;
default:
}
对于InsFunHeader宏,如果有如下函数体
int nOpenConfigFile(char *pchMemConfig, char *pchFlashConfig,
int nSize, int nMode)
{
I
}
光标在函数体N/A
* Output: N/A
* Returns: N/A
*
* modification history
* --------------------
* 1.00, Apr 19, 2007, T357 written.
* --------------------
******************************************************************* ***********/
其中的函数名及编写日期自动按实际情况填充,T357串可通过修改文件,改成你需要的名字。
附录3-推荐格式
所谓人各有志,这里就不说啦。
结束至此,已将我所知的所有关于Source Insight(未包括其附带的Macro语言)知识在此文档中描述出来。如有错漏,请指正。谢谢观赏
Create by LATEX From CTEX
Footnotes:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论