source insight(3.5和4.0)安装及配置
文章目录
- (1)、使用快捷键注释,单行注释,多行注释,#if 0注释
- (2)、再打开的Base工程的界面中,选择Project Window窗口下面的添加工程文件按钮,将mycomment.em文件添加到该Base工程中:
- (3)、选择菜单Options-> Key Assignments... 为宏添加一个快捷键:
- (4)、此时随便找一个简单的文件拖到souceinsight窗口中就可以测试了:
- 三、注意:
一、下载(包含3.5和4.0)
可以自行在网上搜索下载,也可以下载我的打包合集
二、配置
设置配置(主要是3.5的,4.0也可以借鉴):http://www.360doc.com/content/16/1215/21/6359190_615104612.shtml
SI插件配置及使用
下面复制了一下插件的设置,避免404找不到:
1、mycomment.em
(1)、使用快捷键注释,单行注释,多行注释,#if 0注释
将文件 mycomment.em点此下载 放到sourceinsight的Base工程的路径下(一般是在C:\Documents and Settings\Administrator\My Documents\Source Insight\Projects\Base),当然推荐存放到该目录下,一般em文件是sourceinsight的宏语言文件,宏语言是sourceinsight定义的一种语言,语法与C语言类似,sourceinsight提供了很多函数可供调用,以实现一些自定义的功能。em文件可以放到任意位置,不一定要放在souceinsight的工程目录下。
在souceinsight中选择菜单 Project ->Open Project 弹出对话框如下,选择打开Base工程:
(2)、再打开的Base工程的界面中,选择Project Window窗口下面的添加工程文件按钮,将mycomment.em文件添加到该Base工程中:
(3)、选择菜单Options-> Key Assignments… 为宏添加一个快捷键:
mycomment.em文件中定义了3个宏,首先找到宏 Macro: WangQiGuo_MultiLineComment 该宏的功能是当执行之后会将所选择的代码块的每一行前面添加//双斜杠注释,选择这个宏之后,点击按钮Assign New Key … 为该宏分配一个快捷键,此时会弹出一个对话框,这个时候只需要按键盘上面想要的快捷键就行了,例如我这里使用的是ctrl + / 这个快捷键,该快捷键会被检测到并自动添加到Keystroks窗口中,表示添加成功了,此时点击OK就设置完成了。
(4)、此时随便找一个简单的文件拖到souceinsight窗口中就可以测试了:
选中某一行,直接按ctrl + / 就会自动注释,当然多行也是可以的。
用同样的方法为mycomment.em文件中的另外两个宏 Macro: WangQiGuo_AddMacroComment 与 Macro: WangQiGuo_CommentSelStr 定义快捷键,其中宏Macro: WangQiGuo_AddMacroComment 是将选中的代码前后添加#if 0 与 #endif 注释的。而宏Macro: WangQiGuo_CommentSelStr 是在选中的代码前后添加 /* 和 */ 注释的
为了便于记忆,我为Macro: WangQiGuo_AddMacroComment设置的快捷键是 ctrl + 3 原因是在大键盘上数字键3上有一个#号,而我们的注释块#if 0 ,#endif中有#号,而Macro: WangQiGuo_CommentSelStr的快捷键我设置的是 ctrl + 8 原因是大键盘上的数字键8上有一个*号。
宏块注释的效果如下图:
多行注释的效果如下图:
2、跳转到当前文件所在的文件夹,并高亮选择(这个4.0支持了,3.5不行)
我们使用sourceinsight的时候是否会有这样的需求:有时候代码很多,我需要找到sourceinsight中的某个源文件在资源管理器中的位置,但是可惜的是sourceinsight没有这样的功能,为此我google,百度了很久都没有一个好的解决方法,而实际上该功能的实现是非常简单的:
将文件 openfolder.em点此下载 添加到sourceinsight的Base工程目录,按照上面的方法,将openfolder.em添加到Base工程中,该文件中有一个宏Macro: ToExplorerFolder 其功能就是当宏执行的时候在资源管理器中打开sourceinsight中的当前文件所在的文件夹,并高亮选择该源文件,添加快捷键的图如下:
我选择的快捷键是ctrl + t按ctrl + t之后,其执行的效果如下图:
自动打开一个资源管理器窗口,并定位到我的文件test.cpp,实际上打开openfolder.em可以看到其实现是很简单的,就是利用sourceinsight提供的相关函数获得当前文件的绝对路径,然后将该路径传递给命令行的explorer命令,执行该命令就可以了,explorer的命令可以自行到cmd中试一下,openfolder.em中有注释说明。
3、使用quicker.em插件添加函数注释,文件头注释,标记注释等
3.5的quicker.em点此下载 该文件据说是华为的一个员工写的,主要功能是为函数接口添加注释,为文件添加注释,生成头文件,生成标记注释(添加类似这样的注释:/added by xxx 2014-05-07/) , 按照同样的方法将该文件添加到Base工程中,该文件中定义了一个主要的宏Macro: AutoExpand 该宏支持很多扩展命令,下面是我为该宏配置的快捷键 ctrl + enter (推荐使用ctrl + enter):
该宏下面包含许多子命令,下面介绍常用的命令:
a、添加文件头注释:
命令:fi 解释:file
b、添加函数说明注释:
命令:fu 解释: function
c、添加单行注释:
命令:as 解释: add start (添加之后:/* add by zhangsan, 20140504, Mantis号:d, 原因: */ )
命令:ms 解释: modify start (添加之后:/* modify by zhangsan, 20140504, Mantis号:d, 原因: */ )
命令:ds 解释: delete start (添加之后:/* delete by zhangsan, 20140504, Mantis号:d, 原因: */ )
d、添加标记注释:
命令:ab 解释: add begin (添加之后:/* add begin by zhangsan, 20140504, Mantis号:d 原因: */)
命令:ae 解释: add end (添加之后:/* add end by zhangsan, 20140504 */)
命令:mb 解释: modify begin (添加之后:/* modify begin by zhangsan, 20140504, Mantis号:d 原因: */)
命令:me 解释: modify end (添加之后:/* modify end by zhangsan, 20140504 */)
命令:db 解释: delete begin (添加之后:/* delete begin by zhangsan, 20140504, Mantis号:d 原因: */)
命令:de 解释: delete end (添加之后:/* delete end by zhangsan, 20140504 */)
e、配置命令:
命令:co 解释:config (修改相关配置信息)
如何使用呢,以为整个文件添加注释为例,在源文件的任何地方输入命令 fi 之后直接按ctrl + enter 如下图所示:
在弹出的对话框中输入对该文件的描述信息,例如我输入的是“测试文件” , 直接点击OK之后文件变成这样:
可以看到在该文件的头部自动生成了一块注释代码其中包含了 文件名,负责人,文件说明,版权说明,生成时间,修改日志等
我们可以使用co命令修改这里的负责人,并且可以指定生成的语言是中文还是英文,同样在源文件的任何地方输入co之后直接按ctrl + enter 会弹出输入框让我们修改作者,选择语言,该配置只需要设置一次,之后再使用其他命令只要生成的注释里面包含作者信息的都会使用我们配置的这个作者名。
这里的版权说明只能自己手工修改代码,打开quicker.em文件,找到macro InsertFileHeaderCN定义就会看到相关版权信息的说明,自己改一下就可以了:
同样如果生成的是英文信息,请修改InsertFileHeaderEN 这个宏里面的相关代码。本段只演示了fi命令如何添加文件头的注释信息,其他的命令,例如fu命令添加函数头的注释信息,还有其他的命令添加相关形式的注释信息,请自行测试,要说明的是quicker.em中的这些命令都是扩展命令,其使用方法都是一样的,在文件的任何地方输入命令之后直接按ctrl + enter 就会出效果。例如添加函数注释的效果如下:
直接在函数max前面输入fu命令之后 按ctrl + enter 会提示输入相关的注释信息下面的3个注释是分别输入as 之后按ctrl +enter , 输入ms 之后按ctrl + enter , 输入ds之后按ctrl + enter 之后生成的注释效果:
有关quicker.em的其他命令请自行测试,另外还有一些没有提到的命令,例如自动生成if块,for语句块,switch块等,请百度搜索相关资料:
1 标准C语言扩展
1.1
该命令自动生成C语言的注释,它能自动换行对齐,在把文档中一长串注释拷贝 过来时特别管用,不用自己去对齐了。还能自动识别中文和英文单词,对于中文不会把一个字分开,对于英文单词分开时会自动添加连字符,下面是一个注释的例子 abcdefghijk = abcd + cdefg + hijk
1.2 { 自动生成 }
1.3 while (wh) 自动生成While语句
while ( # )
{
#
}
1.4 if 自动生成if语句
if 生成if结构的语句
ife 对应生成if else结构的语句
ifs 对应生成if elseif else结构的f语句
if ( # )
{
#
}
1.5 for 自动生成for语句,支持块命令插入
该命令自动生成如下格式
for ( #; #; # )
{
#
}
1.5.1 fo 自动生成for语句与前一条命令相比它直接会定义循环变量
UINT32 ulI = 0;
for ( ulI = 0; ulI < #; ulI++ )
{
#
}
1.6 do 自动生成 do while语句
该命令自动生成如下格式
do
{
#
} while ( # );
1.7 #ifd 自动生成 #ifdef 命令
该命令生成如下格式
#ifdef UMSC
#endif
1.8 #ifn 自动生成 #ifndef 命令
该命令生成如下格式
#ifndef UMSC
#endif
1.9 #if 自动生成 #if 命令
该命令生成如下格式
#if ( UMSC == 1)
#endif
1.10 cpp 自动生成适用于c++的c原型说明定义
该命令生成如下格式
#ifdef __cplusplus
#if __cplusplus
extern "C"{
#endif
#endif
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif
1.11 switch (sw) 自动生成switch语句
该命令将提示输入case的个数,生成如下格式
switch ( # )
{
case #:
#
break;
default:
#
}
1.12 case (ca)自动生成case语句
支持块命令输入
该命令生成如下格式,用它可以避免遗漏break
case #:
#
break;
1.13 struct (st) 自动生成结构类型
该命令自动生成如下结构定义,它提示输入结构名,会自动转换成大写形式,并且自动在其后添加_STRU作为结构类型
typedef struct HELLO_TEST
{
#
}HELLO_TEST_STRU;
1.14 enum (en) 自动生成枚举类型
该命令自动生成如下结构定义,它提示输入结构名,会自动转换成大写形式,并且自动在其后添加_STRU作为结构类型
typedef enum HELLO_TEST
{
#
}HELLO_TEST_ENUM;
2 标准说明生成
2.1 config (co) 配置用户名和标题的说明语种
用户名就是前面自动生成的作者,修改者的名字,语种
2.2 file (fi) 生成标准的文件头
自动生成如下格式,它能自动取得文件名,作者名,时间,以及函数列表
2.3 func (fu) 生成标准的函数头说明
其 自动生成如下函数头,该函数必须在该函数的前一行执行,它能自动取得函数名,能够自动取得函数的输入、输出参数,并且排列好,同时生成日期和作者。能够 提示输入功能描述,输入的内容能够自动换行对齐,这样既可以避免遗漏说明,而且一般在详细设计中对每个函数的主要功能都有详细的描述,只要把这些描述 拷贝过来即可,它能自动排列好, 非常方便。 (因为SI的宏功能有限,没能自动加入调用函数和被调函数的功能)
如果不是在已存在的函数前执行则提示输入函数名,提示输入函数描述,提示输入返回值类型,提示输入函数入口参数,输完后按Esc退出
2.4 hi 增加修改历史列表
自动在该行增加修改历史列表,用于文件头和函数头说明中的历史记录更新,其添加形式如下
2.5 hd 自动生成函数头文件
该命令能够自动生成但前C文件的头文件定义,包括常用的宏定义,还有全部的函数原型定义。
2.6 Hdn 生成新的有文件
该命令能够自动生成指定的的头文件定义,包括常用的宏定义,提示输入函数原型的类型。
3 代码修改注释
3.1 pn 添加问题单号
在进行问题单修改时都要求在修改的地方注明问题单号和修改人以及修改时间,大部分一个问题单的修改都会涉及到几个地方,本功能提供自动取问题单号的功能,下面的几个命令所生成的问题单号就是有它提供,如果输入为#则不显示问题单号
3.2 ap 添加问题单修改说明
该命令提示输入问题单号和修改原因,生成如下格式的说明
3.3 ab 添加开始说明
它能自动生成如下说明:
1.有问题单号的情况,其中问题单号是由ap命令加入的。
2.没有问题单号的情况,
3.4 ae 添加结束命令
该命令是as的对应命令,表示结束添加
支持块命令操作
3.5 abg 插入添加开始和结束说明
该命令是前两个命令的组合
支持块命令操作
3.6 db 删除开始命令
它能自动生成如下说明:
1.有问题单号的情况,其中问题单号是由ap命令加入的。
2.没有问题单号的情况,
3.7 de 删除结束命令
该命令是ds的对应命令,表示删除结束
3.8 dbg 插入删除开始和结束说明
该命令是前两个命令的组合
支持块命令操作
3.9 mb 修改开始命令
它能自动生成如下说明:
1.有问题单号的情况,其中问题单号是由ap命令加入的。
2.没有问题单号的情况,
3.10 me 修改结束命令
该命令是ms的对应命令,表示删除结束
3.11 mbg 插入修改开始和结束说明
该命令是前两个命令的组合
支持块命令操作
4、多选项卡插件(4.0同样有了,3.5没有)
如果你希望在sourceinsight中像别的编辑器一样为每个文件生成一个选项卡页面,你可以试试这个插件TabSiPlus,该插件需要安装。解压之后先运行VC_x86Runtime.exe ,之后直接运行TabSiHost.exe ,此时你的sourceinsight窗口自动出现下面的选项卡图:
双击选项卡可以关闭某一个文件,在选项卡的左边点击下拉箭头,可以对该插件设置,或者关闭该插件:
三、注意:
对于4.0,如果你是在网上搜的quicker.em插件,可以自己更改quicker.em从GB2312为UTF-8版本。
我的资源合集中quicker.em编码格式4.0的为UTF-8的,3.5的为ANSI-C。其它插件忘记了,如果不对更正下编码格式即可。
建议使用4.0版本的SI,不支持UTF-8用起来真的不好,3.5的转utf8的插件老是崩,不好用。
最后,再次感谢以上网址作者的贡献。