$ the end of the line。如TRUE$,匹配TRUE在句尾。 转义字符。如果在它后面有元字符,取消其特殊含义。 可利用 “(”和 “)”、把正则表达式分割成不同的组;模式中的每个组自左向右指定为 Group #n,n=1,2,…;组的概念在替换时很有用。 例如∶ abc(xyz)可匹配abcxyz,其中xyz被认为是group#1, 利用21来替换(abc)(xyz),替换结果为xyzabc。 3.2 正则表达式在配置tc编译器中的应用∶ 正则表达式格式与源代码文件路径相对应,这里我的tc安装目录为d:tc,tc源文件放在d:tcsrc下,并命名为qn.c或qtn.c(其中n=1,2,…)。 观察Tc编译器某一次输出错误信息的格式∶ Error d:tcsrcq5.c 18: Lvalue required in function jsSort 则我们要匹配“d:tcsrcq5.c 18”部分,进一步地,按照SourceInsight捕捉输出并加以解析时的要求,要以组的形式、分别匹配“d:tcsrcq5.c 18”中的文件部分和行号部分∶ 行号([1-9][0-9]*) 空格行号s([1-9][0-9]*) 文件名(d:tcsrc[qQ][tT][1-9][0-9]*.[cC]) 全部加起来为∶ (d:tcsrc[qQ][tT]*[1-9][0-9]*.[cC])s([1-9][0-9]*) 3.3 正则表达式在配置javac编译器中的应用∶
我的JAVA_HOME是c:jdk,我的java源文件放于d:javasrc中,并命名为qn.java或qtn.java(其中n=1,2,…)。 观察JDK编译器某一次输出错误信息的格式∶ D:javasrcQ3.java:3: ';' expected 正则表达式为∶ ([dD]:javasrc[qQ][tT]*[1-9][0-9]*.java):([1-9][0-9]*) 4、自定义命令
自定义命令与项目相关,在一个项目中定义的所有自定义命令属于该项目、只对该项目有效(包括快捷键等)。
自定义命令类似于命令行批处理文件。SIS允许自定义命令在后台运行;并可以捕捉自定义命令的输出、放置于文件中、或粘贴入当前光标插入点。
分别利用上面SIS对输出信息的处理方式,自定义命令对集成编译器相当有用,可以捕捉编译器输出并创建SourceLink寻错;自定义命令对于文本过滤也相当有用,可选中待过滤区块、运行Sort自定义命令、粘贴回选定区块、即完成文本过滤。
请按下面步骤创建自定义命令∶ Options菜单?Custom Command
?点右边Add钮、填入新自定义命令名称,或下拉左边Commands、选择命令进行修改 ?Run框、填入待执行命令行,可含有特殊元字符,见后面的元字符表
?Dir框、执行命令行时应处的目录,如不填,以源代码文件所在目录为命令执行目录 ?勾选Output框的Capture Output、输出被捕捉,如果勾选Paste Output,输出被粘贴 ?勾选Control Group框中的Save Files First、SIS会在运行命令前先检查文件是否保存 ?勾选Control Group框中的Pause When Done、SIS会在命令结束后暂停、方便检查 ?勾选Source Links in Output框中的Parse Source Links,?/p> source insight常用宏
转自:http://blog.csdn.net/Jupin/archive/2005/02/04/281020.aspx
说明:
该宏文件实现一些编码程中能会到的功能, 如添加文件头、函数说明和宏定义等, 使用时能自动添加文件名、函数名和当前日期. 使用说明:
1. Project->Open Project... 打开Base工程(该工程一般在\我的文档\\Source Insight\\Projects\\Base\中);
2. Project->Add and Remove Project Files... 加入宏文件(即Gaoke.em);
3. Options->Menu Assignments 打开Menu Assignments窗口, 在Command中输入Macro, 选中要使用的宏, 添加到合适的菜单中.
/*附上宏定义文件*/
/* t357.em - a small collection of useful editing macros */
/******************************************************************************
* InsFileHeader -- insert the information of file *
* modification history * --------------------
* 01a, 23mar2003, added DESCRIPTION by t357 * 01a, 05mar2003, t357 written * --------------------
******************************************************************************/
/*------------------------------------------------------------------------- I N S E R T H E A D E R
Inserts a comment header block at the top of the current function. This actually works on any type of symbol, not just functions.
To use this, define an environment variable \ to your email name. eg. set szMyName=raygr
-------------------------------------------------------------------------*/ macro InsFileHeader() {
/*#########################################################
#########################################################
####### Set szMyName variable to your name ######## ####### for example szMyName = \########
#########################################################
#########################################################*/
szMyName = \ // Get current time szTime = GetSysTime(1) Day = szTime.Day Month = szTime.Month Year = szTime.Year if (Day < 10) szDay = \0@Day@\ else
szDay = Day
szMonth = NumToName(Month) hBuf = GetCurrentBuf()
szpathName = GetBufName(hBuf) szfileName = GetFileName(szpathName)
nlength = StrLen(szfileName)
szInf = Ask(\
szDescription = Ask(\ hbuf = GetCurrentBuf()
// begin assembling the title string InsBufLine(hbuf, 0,
\****\
InsBufLine(hbuf, 1, \ InsBufLine(hbuf, 2, \
InsBufLine(hbuf, 3, \Co.,Ltd.\
InsBufLine(hbuf, 4, \
InsBufLine(hbuf, 5, \ InsBufLine(hbuf, 6, \@szDescription@\ InsBufLine(hbuf, 7, \ InsBufLine(hbuf, 8, \
InsBufLine(hbuf, 9, \ InsBufLine(hbuf, 10, \ InsBufLine(hbuf, 11, \
******************************************************************************/\
// put the insertion point inside the header comment SetBufIns(hbuf, 1, nlength + strlen(szInf) + 8) }
/******************************************************************************
* InsFunHeader -- insert function's information *