Source Insight中添加自定义功能
SourceInsight常用功能设置

SourceInsight常⽤功能设置 熟悉⼯具的使⽤能在⼀定程度上提⾼⼯作效率,但⼯具永远只是⼯具,⼤家要把重点放在内功的修炼上。
符号导航 符号(变量、宏定义、结构定义、枚举、函数等等)在SI 中的检索⾮常⽅便。
Ctrl+⿏标左键或Ctrl+=可以⽴即转到符号的定义处,Alt+/可以打开⼀个窗⼝查看符号的定义。
F7 浏览或查找⼯程的全局变量和函数,F8 浏览查找当前⽂件的全局变量和函数。
Ctrl+/打开 Lookup Reference 窗⼝⽤于搜索符号在⼯程中的索引,所有搜索结果在搜索窗⼝中显⽰,点击搜索结果左边的红⾊源链接即可打开其所在位置。
Lookup Reference 是在整个⼯程⽂件中进⾏搜索,要只在当前⽂件或特定的⽬录下进⾏搜索,使⽤ Ctrl+H 或Ctrl+Shfit+H 进⾏搜索,F3 和F4 是上⼀个、下⼀个搜索结果的快捷键。
使⽤Shift+F8 可以让当前的符号在整个⼯程⽂件中⾼亮显⽰。
参数设置 SI 有很⾃由的⾃定义功能,⼏乎所有的窗⼝都可以⾃定义字体、颜⾊,可以轻松地把各种类型关键字、变量、标志符、函数、宏、注释等定义为不同的颜⾊和显⽰⽅式(正体或斜体、加粗或正常、加下划线、放⼤显⽰等),可以随意的增加修改删除菜单项和快捷键。
更重要的是,可以通过⾃定义命令执⾏外部程序,也可以通过 SI ⾃⼰的宏语⾔,⾃⼰写⼀段程序实现特定的功能,这些可以提⾼我们⼯作的效率,从重复繁琐的⼯作中解脱出来。
字体选择 在 SI 中样式是可以被继承,如果要从根本上改变字体,最简单的⽅式就是直接修改根样式中的字体,因为其它样式都会由此继承⽽来。
选择 Options/Document Options 页⾯内的 Font Options 中的Screen Fonts 字体,即可改变根样式中的字体。
SI 中的默认配置为Verdana 字体,是⼀种⾮等宽字体,为了使编写的代码在各种编辑器中看起来都有良好的对齐效果,强烈建议使⽤等宽字体,Courier、New Courier 和宋体等都是较好的选择。
Source Insight中添加自定义功能

在Source Insight中添加自定义功能的步骤如下1.Source Insight中,Options->Custom Commands...->Add...,New Command name 随便写,我的是"Edit with Vim"2.Run中写入: "C:\Program Files\Vim\vim63\gvim.exe" --remote-silent +%l %f意思是在当前已经打开的gvim窗口里面打开当前的文件,并且跳转到指定行%l为当前的行号,%f为文件名使用--remote-silent 的作用是,如果已经打开了对应文件,就不会打开第二次,而是在已经打开的文件里跳转到对应行3.还是同一个对话框里面,选择Keys->Assign New Key...->按F12,如果你已经将F12设置给其他命令,选择其他的按键就行了下面是一些常用自定义功能:( CUSTOM COMMANDS )打开资源管理器并选中当前文件ShellExecute open explorer /e,/select,%f查看log"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:log /path:%f /notempfile /closeonenddiff"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:diff /path:%f /notempfile /closeonend取得锁定(check out)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:lock /path:%f /notempfile /closeonend提交(check in)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:%f /notempfile /closeonend更新(update)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:%f /notempfile /closeonend更新整个目录(update all)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:*.* /notempfile /closeonend取消锁定(undo check out)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:revert /path:%f /notempfile /closeonend在ultriEdit中编辑"C:\Program Files\UltraEdit-32/uedit32" %f在vim中编辑并定位到当前行"C:\Program Files\Vim\vim63\gvim.exe" --remote-silent +%l %f汇总其他小技巧:让{ 和} 不缩进:Options->Document Options->Auto Indent->Indent Open Brace/Indent Close Bracehao space: SourceInsight 小技巧1、按住"ctrl", 再用鼠标指向某个变量,点击一下,就能进入这个变量的定义。
在SourceInsight集成Astyle(在SourceInsight集成风格)

在Source Insight集成Astyle(在Source Insight集成风格)在Source Insight集成风格Windows平台下也有好多人都喜欢用很编辑C / C++程序,但是很没有提供对代码格式化的功能,如果将艺术风格集成到很中,那就可以为它扩展出代码格式化的功能了。
假定明日香。
exe的目录是“C:\风格\”,在该目录下有一个”c.opt”文件是用来保存配置的文件下面简要地介绍下集成到很中的方法艺术风格。
1。
打开你的很方便,选择菜单”选项-->自定义命令-->添加”,输入艺术风格(可以随便输入一个名字)。
2。
运行中输入:C:\风格\ astyle.exe --选项= c.opt %F三.你留空,将标志性窗口,捕获输出,解析环节输出,文件,然后线四项前打上勾。
4。
然后点对话框中右侧的按钮“菜单”,菜单->菜单-->视图--> <结束>,右侧插入,OK。
5。
此时在很中的观菜单下多了个风格的子菜单选项,可以用它来对单个C / C++文件进行格式化。
1。
常用功能(1)单个文件--缺省美化风格——风格= ANSI form1.cs处理前的代码:private void form1_load(object sender,EventArgs e){int的;对于(int = i 0;i < 10;i + +){对于(int = 0;j<10;j + +){s + j + i;}}}处理后:private void form1_load(object sender,EventArgs e){int的;对于(int = i 0;i < 10;i + +){为(int = 0;j<10;j + +){s + j + j + i;}}}(2)单个文件--更改缩进2个空格风格——风格= = = 2 ANSI,缩进空间form1.cs缺省缩进一个选项卡,也可以显式说明使用选项卡,如下:风格——风格= ANSI——缩进=标签form1.cs(3)处理多个文件--有限个风格——风格= ANSI form1.cs form2.cs(4)批量处理多个文件--无限个/ R。
Source_Insight设置

si的主要配置都在Options->Perferences菜单里,1、GeneralProject File Synchronization->Remove missing file from project选上可以避免因文件找不到而弹出错误对话框。
把Misc->Use stricter confirmation dialog选项去掉可以使确认时不输入"yes"。
2、TypingSource Editing->Indent commands affect #-preprocessor statements。
去掉后(默认值),进行多行缩进时不会影响预处理语句(如#if...#endif)。
Auto Completion->Use detailed completion window,选上后,联想时可以出现该函数的详细信息。
见下图:(简单)(详细)Auto Completion->Insert paremeters for functions,去掉后,自动联想不会把整个参数都输出到当前行。
Browsing in Lists->Match syllables while typing(slower)。
在symbol list框检索符号时是否采用音节匹配方式,如对于函数FindNext,输入find或者next都可以找到该函数。
该功能可能导致反应缓慢(视工程和机器配置而定),建议关闭,因为即使在关闭状态下也可以通过先输入空格再输入单词来动态启用该功能。
注意Browsing in Lists里其实有两个功能,但一般我们只能看到Match syllables while typing 这一条,应该是si的菜单设计没有做好,导致在中文windows下不能显示全,另一个功能是Match members while typing,用于打开/关闭按成员变量名来检索类/结构体的功能。
sourceinsight快捷键及使用技巧

sourceinsight快捷键及使用技巧【引用】source insight快捷键及使用技巧退出程序: Alt+F4重画屏幕: Ctrl+Alt+Space完成语法: Ctrl+E复制一行: Ctrl+K恰好复制该位置右边的该行的字符: Ctrl+Shift+K 复制到剪贴板: Ctrl+Del剪切一行: Ctrl+U剪切该位置右边的该行的字符: Ctrl+;剪切到剪贴板: Ctrl+Shift+X剪切一个字: Ctrl+,左边缩进: F9右边缩进: F10插入一行: Ctrl+I插入新行: Ctrl+Enter加入一行: Ctrl+J从剪切板粘贴: Ctrl+Ins粘贴一行: Ctrl+P重复上一个动作: Ctrl+Y重新编号: Ctrl+R重复输入: Ctrl+替换: Ctrl+H智能重命名: Ctrl+'关闭文件: Ctrl+W关闭所有文件: Ctrl+Shift+W新建: Ctrl+N转到下一个文件: Ctrl+Shift+N打开: Ctrl+O重新装载文件: Ctrl+Shift+O另存为: Ctrl+Shift+S显示文件状态: Shift+F10激活语法窗口: Alt+L回到该行的开始: Home回到选择的开始: Ctrl+Alt+[到块的下面: Ctrl+Shift+]到块的上面: Ctrl+Shift+[书签: Ctrl+M到文件底部: Ctrl+End, Ctrl+(KeyPad) End到窗口底部: (KeyPad) End (小键盘的END) 到一行的尾部: End 到选择部分的尾部: Ctrl+Alt+]到下一个函数: 小键盘+上一个函数: 小键盘-后退: Alt+,, Thumb 1 Click后退到索引: Alt+M向前: Alt+., Thumb 2 Click转到行: F5, Ctrl+G转到下一个修改: Alt+(KeyPad) +转到下一个链接: Shift+F9, Ctrl+Shift+L回到前一个修改: Alt+(KeyPad) -跳到连接(就是语法串口列表的地方) : Ctrl+L跳到匹配: Alt+]下一页: PgDn, (KeyPad) PgDn上一页: PgUp, (KeyPad) PgUp向上滚动半屏: Ctrl+PgDn, Ctrl+(KeyPad) PgDn, (KeyPad) * 向下滚动半屏: Ctrl+PgUp, Ctrl+(KeyPad) PgUp, (KeyPad) / 左滚: Alt+Left向上滚动一行: Alt+Down向下滚动一行: Alt+Up右滚: Alt+Right选择一块: Ctrl+-选择当前位置的左边一个字符: Shift+Left选择当前位置右边一个字符: Shift+Right选择一行: Shift+F6从当前行其开始向下选择: Shift+Down从当前行其开始向上选择: Shift+Up选择上页: Shift+PgDn, Shift+(KeyPad) PgDn选择下页: Shift+PgUp, Shift+(KeyPad) PgUp选择句子(直到遇到一个 . 为止) : Shift+F7, Ctrl+.从当前位置选择到文件结束: Ctrl+Shift+End从当前位置选择到行结束: Shift+End从当前位置选择到行的开始: Shift+Home从当前位置选择到文件顶部: Ctrl+Shift+Home选择一个单词: Shift+F5选择左边单词: Ctrl+Shift+Left选择右边单词: Ctrl+Shift+Right到文件顶部: Ctrl+Home, Ctrl+(KeyPad) Home到窗口顶部: (KeyPad) Home到单词左边(也就是到一个单词的开始) : Ctrl+Left到单词右边(到该单词的结束) : Ctrl+Right排列语法窗口(有三种排列方式分别按1,2,3次) : Alt+F7移除文件: Alt+Shift+R同步文件: Alt+Shift+S增量搜索(当用Ctrl + F 搜索,然后按F12就会转到下一个匹配) : F12替换文件: Ctrl+Shift+H向后搜索: F3在多个文件中搜索: Ctrl+Shift+F向前搜索: F4搜索选择的(比如选择了一个单词,shift+F4将搜索下一个) : Shift+F4搜索: Ctrl+F浏览本地语法(弹出该文件语法列表窗口,如果你光标放到一个变量/函数等,那么列出本文件该变量/函数等的信息) : F8浏览工程语法: F7, Alt+G跳到基本类型(即跳到原型) : Alt+0跳到定义出(也就是声明) : Ctrl+=, Ctrl+L Click (select), Ctrl+Double L Click检查引用: Ctrl+/语法信息(弹出该语法的信息) : Alt+/, Ctrl+R Click (select)高亮当前单词: Shift+F8语法窗口(隐藏/显示语法窗口) : Alt+F8关闭窗口: Alt+F6, Ctrl+F4最后一个窗口: Ctrl+Tab, Ctrl+Shift+Tab几个较常用的快捷键默认情况下,SI已经定义了很多非常实用的快捷键:F5指定行号,实现行跳转,在遇到编译错误的时候,能特别方便的找到出错行。
source inside学习指导

Source Insight实质上是一个支持多种开发语言(java,c ,c 等等)的编辑器,只不过由于其查找、定位、彩色显示等功能的强大,常被我们当成源代码阅读工具使用。
作为一个开放源代码的操作系统,Linux附带的源代码库使得广大爱好者有了一个广泛学习、深入钻研的机会,特别是 Linux内核的组织极为复杂,同时,又不能像windows平台的程序一样,可以使用集成开发环境通过察看变量和函数,甚至设置断点、单步运行、调试等手段来弄清楚整个程序的组织结构,使得Linux内核源代码的阅读变得尤为困难。
当然Linux下的vim和emacs编辑程序并不是没有提供变量、函数搜索,彩色显示程序语句等功能。
它们的功能是非常强大的。
比如,vim和emacs就各自内嵌了一个标记程序,分别叫做ctag和etag,通过配置这两个程序,也可以实现功能强大的函数变量搜索功能,但是由于其配置复杂,linux附带的有关资料也不是很详细,而且,即使建立好标记库,要实现代码彩色显示功能,仍然需要进一步的配置(在另一片文章,我将会讲述如何配置这些功能),同时,对于大多数爱好者来说,可能还不能熟练使用vim和emacs那些功能比较强大的命令和快捷键。
为了方便的学习Linux源程序,我们不妨回到我们熟悉的window环境下,也算是“师以长夷以制夷”吧。
但是在 Window平台上,使用一些常见的集成开发环境,效果也不是很理想,比如难以将所有的文件加进去,查找速度缓慢,对于非Windows平台的函数不能彩色显示。
于是笔者通过在互联网上搜索,终于找到了一个强大的源代码编辑器,它的卓越性能使得学习Linux内核源代码的难度大大降低,这便是Source Insight3.0,它是一个Windows平台下的共享软件,可以从/上边下载30天试用版本。
由于Source Insight是一个Windows平台的应用软件,所以首先要通过相应手段把Linux系统上的程序源代码弄到Windows平台下,这一点可以通过在 linux平台上将/usr/src目录下的文件拷贝到Windows平台的分区上,或者从网上光盘直接拷贝文件到Windows平台的分区来实现。
sourceinsight使用之添加自定义语言

Source Insight使用之添加自定义语言在右键中选择“Document Options...”选项。
然后选择“Add Type...”给自定义语言的源文件起个名字。
如:“3850ASM Source File”。
然后再“File filter”文件过滤器栏中填入要过滤出来的文件类型。
如填入:*.inc;*.a74,即其源文件包括:.inc文件和.a74文件。
这个选项将影响“Add and Remove Project Files”选项,在添加文件时它将按照这个过滤选项来显示源文件。
最后在左下“Language:”中添加一个语言的名字。
如:3850 ASM下一步就是添加关键字了。
打开“Keyword List...”,然后“Add Word...”。
在“Style”栏中选择关键字的样式,如“Control” ,“Keyword”,“Number”等等。
简便一些的方法就是选中关键字,然后按上步骤操作。
第三步设置语言属性。
右键选择“Language Properties...”。
“Info”选项卡就不用填了。
忽略。
“Option”选项卡上“General”部分全选。
“Syntax”也都全选吧。
后面那个框“Non-AlphaNum indentifier chars:”就不用动了。
下面“Numbers”选择数字所用的格式,第一个“Detecet Numbers”选上,然后其它的按需要选吧。
“Comments and Ranges”,在这里添加注释和其它一些范围如字符串的范围定义,即那些部分是注释,那些部分是字符串等等。
“Add...”,在“Type of Range”中非C语言好像只能选“Line”和“Mutileline”单行和多行。
然后选择“Syntax Forma ting Style:”,注释有好几种选择,单行注释的话就选择“Comment Single Line”。
下面填入“Range begins with”范围开始以。
SourceInsight使用指南

Source Insight使用指南目录1.Source Insight 基本设置 (3)1.1字体设置 (3)1.2自动缩进设置 (3)1.3其它设置 (4)2.Source Insight中的宏 (5)2.1使用宏 (5)2.2指定快捷键 (6)3.Source Insight中的自定义命令 (6)3.1如何自定义命令 (6)3.2指定快捷键 (7)3.3正则表达式语法 (7)3.4集成编译器 (8)3.5集成版本控制工具 (10)4.其它 (11)4.1特殊的注释 (11)1.Source Insight 基本设置1.1字体设置Option-〉Document Options 文档设置。
Screen Fonts 设置显示字体。
推荐使用等宽字体,如“Courier”,这样在代码对齐时容易处理,但中文字体显示有锯齿。
使用“宋体”字时,代码可能存在对齐问题。
1.2自动缩进设置Option-〉Document Options-〉Auto Indent 自动缩进设置。
详细缩进样式请参考Source Insight 帮助的Command Reference-> Document Options-〉Auto Indenting。
Auto Indent Type 选择 SmartSmart Indent Options 两个复选框都不要选择缩进后样式如:if(){}1.3其它设置Editing Options 编辑器设置Show line numbers 显示行号Show right margin 显示右边界线(边界线显示在Margin width 处)Tab width TAB键宽度,设置为 4Margin width 页空白宽度,页面右边界线的位置,设置为80。
选择后在编辑窗口右侧设置的宽度处出现分割线Show page breaks 显示页面分割线,选择后在编辑窗口出现打印页分割线●如果编辑窗口中的中文字符中间分割过大或者出现对齐问题时,请尝试如下设置:Options-> Preferences-> Display-> Spacing选择Layout tabstops using monospace calculations 和Layout spaces using monospace calculations●定制Open命令Options-> Preferences-> Files-〉Custom “Open” Command2.Source Insight中的宏2.1使用宏首先关闭当前使用中的Source Insight,然后复制macro\utils.em 到我的文档\SourceInsight\Projects\Base,覆盖原有的文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Source Insight中添加自定义功能的步骤如下1.Source Insight中,Options->Custom Commands...->Add...,New Command name 随便写,我的是"Edit with Vim"2.Run中写入: "C:\Program Files\Vim\vim63\gvim.exe" --remote-silent +%l %f意思是在当前已经打开的gvim窗口里面打开当前的文件,并且跳转到指定行%l为当前的行号,%f为文件名使用--remote-silent 的作用是,如果已经打开了对应文件,就不会打开第二次,而是在已经打开的文件里跳转到对应行3.还是同一个对话框里面,选择Keys->Assign New Key...->按F12,如果你已经将F12设置给其他命令,选择其他的按键就行了下面是一些常用自定义功能:( CUSTOM COMMANDS )打开资源管理器并选中当前文件ShellExecute open explorer /e,/select,%f查看log"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:log /path:%f /notempfile /closeonenddiff"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:diff /path:%f /notempfile /closeonend取得锁定(check out)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:lock /path:%f /notempfile /closeonend提交(check in)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:%f /notempfile /closeonend更新(update)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:%f /notempfile /closeonend更新整个目录(update all)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:*.* /notempfile /closeonend取消锁定(undo check out)"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:revert /path:%f /notempfile /closeonend在ultriEdit中编辑"C:\Program Files\UltraEdit-32/uedit32" %f在vim中编辑并定位到当前行"C:\Program Files\Vim\vim63\gvim.exe" --remote-silent +%l %f汇总其他小技巧:让{ 和} 不缩进:Options->Document Options->Auto Indent->Indent Open Brace/Indent Close Bracehao space: SourceInsight 小技巧1、按住"ctrl", 再用鼠标指向某个变量,点击一下,就能进入这个变量的定义。
2、今天把一个用sourceinsight排版整齐的C文件,偶然用VC打开一看,全乱了。
研究了半天,发现SI对每个字符的宽度不太一致。
请教同事发现选上"view --> draft view",就可以让每个字符的宽度一致了。
快捷键是"Alt + F12"3、"shift+F8" 标亮所有文本中光标所在位置的单词4、跳到某一行:"ctrl + g"Source Insight是阅读和编写代码的好东东,基本上也算得上是经典之作了,虽然还有一点点小bug,不过对于我们这些C程序员来说可是一旦拥有别无所求。
下列小技巧是在工作中同事整理总结的,对提高工作效率多少有点帮助,其中有些是对应于SVN的,没有使用SVN做版本管理的人就不要白费力气了。
ShellExecute open explorer /e,/select,%f/*作用是在资源管理器中打开当前编辑文件并选中*//*可以设置快捷键如ctrl+e,这样能很方便的在资源管理器打开对应的文件,并进行tortoiseSVN的相关操作*/X:\Progra~1\TortoiseSVN\bin\TortoiseProc.exe /command:log /path:% /notempfile /closeonend/*使用前注意更改对应的bin安装路径*//*作用是直接查看当前文件的svn log*//*可以设置快捷键如ctrl+l*/X:\Progra~1\TortoiseSVN\bin\TortoiseProc.exe /command:diff /path:% /notempfile /closeonend/*使用前注意更改对应的bin安装路径*//*作用是直接查看当前文件和基准版本比较*//*可以设置快捷键如ctrl+d*/在Source Insight中快速添加注释将以下代码保存成Utils.em,详细使用说明看文章结尾/* Utils.em - a small collection of useful editing macros *//*-------------------------------------------------------------------------I N S E R T H E A D E RInserts 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 "MYNAME" and set itto your email name. eg. set MYNAME=raygr-------------------------------------------------------------------------*/macro InsertHeader(){// Get the owner's name from the environment variable: MYNAME.// If the variable doesn't exist, then the owner field is skipped.szMyName = getenv(MYNAME)// Get a handle to the current file buffer and the name// and location of the current symbol where the cursor is.hbuf = GetCurrentBuf()szFunc = GetCurSymbol()ln = GetSymbolLine(szFunc)// begin assembling the title stringsz = "/* "/* convert symbol name to T E X T L I K E T H I S */cch = strlen(szFunc)ich = 0while (ich < cch){ch = szFunc[ich]if (ich > 0)if (isupper(ch))sz = cat(sz, " ")elsesz = cat(sz, " ")sz = Cat(sz, toupper(ch))ich = ich + 1}sz = Cat(sz, " */")InsBufLine(hbuf, ln, sz)InsBufLine(hbuf, ln+1, "/*-------------------------------------------------------------------------")/* if owner variable exists, insert Owner: name */if (strlen(szMyName) > 0){InsBufLine(hbuf, ln+2, " Owner: @szMyName@")InsBufLine(hbuf, ln+3, " ")ln = ln + 4}elseln = ln + 2InsBufLine(hbuf, ln, " ") // provide an indent alreadyInsBufLine(hbuf, ln+1, "-------------------------------------------------------------------------*/")// put the insertion point inside the header commentSetBufIns(hbuf, ln, 4)}/* InsertFileHeader: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 "MYNAME" and set itto your email name. eg. set MYNAME=raygr*/macro InsertFileHeader(){szMyName = getenv(MYNAME)hbuf = GetCurrentBuf()InsBufLine(hbuf, 0, "/*-------------------------------------------------------------------------")/* if owner variable exists, insert Owner: name */InsBufLine(hbuf, 1, " ")if (strlen(szMyName) > 0){sz = " Owner: @szMyName@"InsBufLine(hbuf, 2, " ")InsBufLine(hbuf, 3, sz)ln = 4}elseln = 2InsBufLine(hbuf, ln, "-------------------------------------------------------------------------*/")// Inserts "Returns True .. or False..." at the current linemacro ReturnTrueOrFalse(){hbuf = GetCurrentBuf()ln = GetBufLineCur(hbuf)InsBufLine(hbuf, ln, " Returns True if successful or False if errors.") }/* Inserts ifdef REVIEW around the selection */macro IfdefReview(){IfdefSz("REVIEW");}/* Inserts ifdef BOGUS around the selection */macro IfdefBogus(){IfdefSz("BOGUS");}/* Inserts ifdef NEVER around the selection */macro IfdefNever(){IfdefSz("NEVER");}// Ask user for ifdef condition and wrap it around current// selection.macro InsertIfdef(){sz = Ask("Enter ifdef condition:")if (sz != "")IfdefSz(sz);}macro InsertCPlusPlus(){IfdefSz("__cplusplus");}// Wrap ifdef <sz> .. endif around the current selectionmacro IfdefSz(sz){hwnd = GetCurrentWnd()lnFirst = GetWndSelLnFirst(hwnd)lnLast = GetWndSelLnLast(hwnd)hbuf = GetCurrentBuf()InsBufLine(hbuf, lnFirst, "#ifdef @sz@")InsBufLine(hbuf, lnLast+2, "#endif /* @sz@ */")}// Delete the current line and appends it to the clipboard buffer macro KillLine(){hbufCur = GetCurrentBuf();lnCur = GetBufLnCur(hbufCur)hbufClip = GetBufHandle("Clipboard")AppendBufLine(hbufClip, GetBufLine(hbufCur, lnCur))DelBufLine(hbufCur, lnCur)}// Paste lines killed with KillLine (clipboard is emptied)macro PasteKillLine(){PasteEmptyBuf(GetBufHandle("Clipboard"))}// delete all lines in the buffermacro EmptyBuf(hbuf){lnMax = GetBufLineCount(hbuf)while (lnMax > 0){DelBufLine(hbuf, 0)lnMax = lnMax - 1}}// Ask the user for a symbol name, then jump to its declaration macro JumpAnywhere(){symbol = Ask("What declaration would you like to see?")JumpToSymbolDef(symbol)}// list all siblings of a user specified symbol// A sibling is any other symbol declared in the same file.macro OutputSiblingSymbols(){symbol = Ask("What symbol would you like to list siblings for?") hbuf = ListAllSiblings(symbol)SetCurrentBuf(hbuf)}// Given a symbol name, open the file its declared in and// create a new output buffer listing all of the symbols declared// in that file. Returns the new buffer handle.macro ListAllSiblings(symbol){loc = GetSymbolLocation(symbol)if (loc == ""){msg ("@symbol@ not found.")stop}hbufOutput = NewBuf("Results")hbuf = OpenBuf(loc.file)if (hbuf == 0){msg ("Can't open file.")stop}isymMax = GetBufSymCount(hbuf)isym = 0;while (isym < isymMax){AppendBufLine(hbufOutput, GetBufSymName(hbuf, isym))isym = isym + 1}CloseBuf(hbuf)return hbufOutput}/*written by yubind*/macro SingleLineComment(){szMyName = "chenjsa"// Get a handle to the current file buffer and the name// and location of the current symbol where the cursor is.hbuf = GetCurrentBuf()ln = GetBufLnCur(hbuf)// Get current timeszTime = GetSysTime(1)Hour = szTime.HourMinute = szTime.MinuteSecond = szTime.SecondDay = szTime.DayMonth = szTime.MonthYear = szTime.Yearif (Day < 10)szDay = "0@Day@"elseszDay = Day//szMonth = NumToName(Month)if (Month < 10)szMonth = "0@Month@"elseszMonth = MonthszDescription = Ask("请输入修改原因")// begin assembling the title stringInsBufLine(hbuf, ln+1, "/*@szDescription@ @szMyName@.xmyanfa @Year@-@szMonth@-@szDay@*/")}macro MultiLineCommentHeader(){szMyName = "chenjsa"// Get a handle to the current file buffer and the name// and location of the current symbol where the cursor is.hbuf = GetCurrentBuf()ln = GetBufLnCur(hbuf)// Get current timeszTime = GetSysTime(1)Hour = szTime.HourMinute = szTime.MinuteSecond = szTime.SecondDay = szTime.DayMonth = szTime.MonthYear = szTime.Yearif (Day < 10)szDay = "0@Day@"elseszDay = Day//szMonth = NumToName(Month)if (Month < 10)szMonth = "0@Month@"elseszMonth = MonthszDescription = Ask("请输入修改原因:")// begin assembling the title stringInsBufLine(hbuf, ln + 1, "/*@szDescription@ @szMyName@.xmyanfa @Year@-@szMonth@-@szDay@ begin*/")}macro MultiLineCommentEnd(){szMyName = "chenjsa"// Get a handle to the current file buffer and the name// and location of the current symbol where the cursor is.hbuf = GetCurrentBuf()ln = GetBufLnCur(hbuf)// Get current timeszTime = GetSysTime(1)Hour = szTime.HourMinute = szTime.MinuteSecond = szTime.SecondDay = szTime.DayMonth = szTime.MonthYear = szTime.Yearif (Day < 10)szDay = "0@Day@"elseszDay = Day//szMonth = NumToName(Month)if (Month < 10)szMonth = "0@Month@"elseszMonth = MonthInsBufLine(hbuf, ln + 1, "/*@szMyName@.xmyanfa @Year@-@szMonth@-@szDay@ end*/")}使用说明:可以实现在sourceinsight中快速添加修改注释。