Source Insight 的实用技巧
|
1 开胃菜-初级应用
选择Options/Key Assignments,在弹出的Key Assignments窗口中可自由添加自己喜欢的快捷键。比较值得推荐的有如下几个快捷键定义:
如果你正好对SI的Marco语言(下文将会介绍)有研究,那么还可以定义更多有用的快捷键,比如添加文件头、函数头、注释等(下文在介绍Marco语言时会介绍如何实现)。 2 小技巧-中级应用 2.1 查找与替换 在SI中支持多种查找及替换方式,除了上文提到的文件内查找外,还支持工程范围内查找、目录查找、指定多文件查找等等。 2.1.1 查找 [list=1] 我们最常用的一种查找方式是选择Search/Lookup References或按Ctrl+/组合键再或者鼠标点 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预先建立的数据库,查找起来速度相当快。但通常这种速度只对在查找标识符时有明显效果。对于像函数名,变量名等的查找,强烈建议使用这两种方式进行查找。 选择Search/Search Files或按Ctrl+Shift+F组合键,在弹出的Search Files窗口进行查找操作。 在File Name框中可以填入文件名或文件夹。注意当要查询的文件夹双包含子文件夹时,可以勾选Options中的Include Subdirectiories,实现对各层文件的递归搜索。 选择Search/Search Project,在弹出的Search Project窗口进行查找操作。操作与Loopup References几乎完全一致,它们各自保存上次搜索的配置。 [list=1] 选择Search/Replace或按Ctrl+H组合键,在弹出的Replace窗口进行查找操作。在Search项目里勾选Selection则仅对当前选中的文档部分进行替换。另外如果勾选了Confirm Replacements则是逐个确认替换,否则会同时替换所有符合替换条件内容。 选择Search/Replace Files或按Ctrl+Shift+H组合键,在弹出的Replace Files 窗口进行查找操作。除了增加New框(替换后的内容)外,其余均与Search Files窗口相同,可参照查找部分的说明进行操作。 虽然开篇时就说过,SI的列操作功能比较弱,但不等于没有。先按下Alt键,接着就可用鼠标进行列选择,然后就可以删除指定的列。 2.3 无名技巧 这里介绍一些小技巧,大多数情况下我们可以无视它们的存在。但如果我们知道这些,某些时候,会有效提高工作效率。
4 附录1-SI中正则表达式 由于在查找及替换中,经常会使用用正则表达式6,这里对SI的正则表达式进行简单介绍。 4.1 通配符 正则表达式通配符总表:
在执行替换操作时,组将大有用武之地。正则表达式的各个部分可以用\(和\)进行分隔,分隔得到的每一项就是一个组。在进行替换时可通过组从匹配内容中抽取出特定串。在正则表达式中每个组都有一个编号,自左至右编号从1开始。 例如:abc\(xyx\)将能匹配 abcxyz ,此时组1就包含了 xyz 串。在进行替换操作时,就可以通过在替换后内容框中填入\1来取出这个字符串。推而广之,可以使用\<number>来取得组<number>所包含的串。 例如:当设定把\(abc\)\(xyz\)替换为\2\1的替换规则时,对于 abcxyz 被替换串,则组1包含 abc,组2包含 xyz,而替换后的内容定义为组2内容后跟组1内容(\2\1),因此将得到 xyzabc。 举个真实的使用例子,相信会增加大家的兴趣。有时为方便调试,代码中到处流浪着各种形式的mytrace调用[pre] mytrace("Create parameter list... "); [/pre]有时希望把它们全部注释掉,而有些时候又希望把它们全部恢复回来。这是个简单的例子,可以使用[pre] ^\(.*\)\(/\*\)\(.*mytrace.*\)\(\*/\)___FCKpd___6nbsp;==> \1\3 [/pre]把它们恢复回来,而使用[pre] ^\(.*\)\(mytrace\)\(.*\)___FCKpd___7nbsp;==> \1/*\2\3*/ [/pre]则完成把它们全部注释掉。 5 附录2-SI中的宏语言 我始终认为这是SI中最有趣的部分,这是一种功能强大的编程语言,几乎可以实现在编程过程可能使用到的各种功能。 这里不准备对如何实用宏语言进行编程作介绍(可参阅SI帮助文档。),只介绍如何使用已编好程序。为方便使用,我已把这些程序都集中放在utils.em文件中,下文就此文件进行论述。 该宏文件实现了一些在编码过程中可能会用到的功能, 如添加文件头、函数说明(使用时能自动添加文件名、函数名和当前日期)和宏定义,代码补全等。 使用说明: [list=1] 打开Base工程(该工程一般在"我的文档/Source Insight/Projects/Base"中); 加入宏文件(即utils.em); 打开Menu Assignments窗口,在Command中输入Macro,选中要使用的宏,添加到合适的菜单中. { case break; default: } [/pre]对于InsFunHeader宏,如果有如下函数体[pre] int nOpenConfigFile(char *pchMemConfig, char *pchFlashConfig, int nSize, int nMode) { I } [/pre]光标在函数体内时运行该宏,那么将会在函数体上方得到[pre]/****************************************************************************** * nOpenConfigFile - * DESCRIPTION:- * * Input: N/A * Output: N/A * Returns: N/A * * modification history * -------------------- * 1.00, Apr 19, 2007, T357 written. * -------------------- ******************************************************************************/ [/pre]其中的函数名及编写日期自动按实际情况填充,T357串可通过修改utils.em文件,改成你需要的名字。 6 附录3-推荐格式 所谓人各有志,这里就不说啦。 7 结束 至此,已将我所知的所有关于Source Insight(未包括其附带的Macro语言)知识在此文档中描述出来。 如有错漏,请指正 |
一共有 1 条评论
广州:020-86258808,13710999790 QQ:474068668
深圳:0755-27226693,13418921954 QQ:604250790
东莞:0769-23105760,13412217208 QQ:656004991
佛山:13760936583 QQ:769639089
惠州:15902018326 QQ:825856208
韶关:15914800077 QQ:839396324
http://www.homeebay.cn