我们经常要对一整段代码进行注释,很多代码编辑器都提供了这样的功能:用快捷键“Ctrl + /”来实现“//”的多行注释。

但是在用source insight的时候,发现竟然没有这样的功能。于是在网上搜了一下,sourceinsight里面的多行注释可以用宏来实现。

以下是实现多行注释的宏代码(在别的网站copy过来的,经过测试,还是很好用的):

macro MultiLineComment()

{

hwnd = GetCurrentWnd()

selection = GetWndSel(hwnd)

LnFirst =GetWndSelLnFirst(hwnd)      //取首行行号

LnLast =GetWndSelLnLast(hwnd)      //取末行行号

hbuf = GetCurrentBuf()

if(GetBufLine(hbuf, 0) =="//magic-number:tph85666031"){

stop

}

Ln = Lnfirst

buf = GetBufLine(hbuf, Ln)

len = strlen(buf)

while(Ln <= Lnlast) {

buf = GetBufLine(hbuf, Ln)  //取Ln对应的行

if(buf ==""){                   //跳过空行

Ln = Ln + 1

continue

}

if(StrMid(buf, 0, 1) == "/"){       //需要取消注释,防止只有单字符的行

if(StrMid(buf, 1, 2) == "/"){

PutBufLine(hbuf, Ln, StrMid(buf, 2, Strlen(buf)))

}

}

if(StrMid(buf,0,1) !="/"){          //需要添加注释

PutBufLine(hbuf, Ln, Cat("//", buf))

}

Ln = Ln + 1

}

SetWndSel(hwnd, selection)

}

将上面的代码另存为xxx.em文件,打开source insight,将该文件添加到工程中,然后在Options->KeyAssignments中你就可以看到这个宏了,宏的名字是MultiLineComments,然后我们为它分配快捷键“Ctrl + /”,然后就可以了。

这里还有一份添加“#ifdef 0”和“#endif”的宏代码:

macro AddMacroComment()

{

hwnd=GetCurrentWnd()

sel=GetWndSel(hwnd)

lnFirst=GetWndSelLnFirst(hwnd)

lnLast=GetWndSelLnLast(hwnd)

hbuf=GetCurrentBuf()

if (LnFirst == 0) {

szIfStart = ""

} else {

szIfStart = GetBufLine(hbuf, LnFirst-1)

}

szIfEnd = GetBufLine(hbuf, lnLast+1)

if (szIfStart == "#if 0" && szIfEnd =="#endif") {

DelBufLine(hbuf, lnLast+1)

DelBufLine(hbuf, lnFirst-1)

sel.lnFirst = sel.lnFirst – 1

sel.lnLast = sel.lnLast – 1

} else {

InsBufLine(hbuf, lnFirst, "#if 0")

InsBufLine(hbuf, lnLast+2, "#endif")

sel.lnFirst = sel.lnFirst + 1

sel.lnLast = sel.lnLast + 1

}

SetWndSel( hwnd, sel )

}

这份宏的代码可以把光标显示的行注释掉:

macro CommentSingleLine()

{

hbuf = GetCurrentBuf()

ln = GetBufLnCur(hbuf)

str = GetBufLine (hbuf, ln)

str = cat("/*",str)

str = cat(str,"*/")

PutBufLine (hbuf, ln, str)

}

将一行中鼠标选中部分注释掉:

macro CommentSelStr()

{

hbuf = GetCurrentBuf()

ln = GetBufLnCur(hbuf)

str = GetBufSelText(hbuf)

str = cat("/*",str)

str = cat(str,"*/")

SetBufSelText (hbuf, str)

}

最后是source insight与宏有关的资源:

·                 source insight官方的宏库

·                 source insight官方帮助文档

转载于:https://www.cnblogs.com/dongzhiquan/archive/2013/03/04/2943448.html

Source Insight中的多行注释相关推荐

  1. 在source insight 中添加系统字体

    在source insight 中添加系统字体 1. "控制面板:--->"字体"--->找到Courier New(建议用这个字体,比Courier要平滑) ...

  2. 解决 Source Insight中的parse too complex问题

    FROM:http://blog.csdn.net/kunbo_1399614213/article/details/46730049 Source Insight 在导入文件后,有个别的文件无法正常 ...

  3. 工具及方法 - 在Source Insight中使用代码格式化工具

    在Source Insight 4.0中,有代码格式化工具: 当你打开某个源文件后,可以对当前文件进行格式修改: 有ANSI.GNU.K&R三种编码风格可以选择. 也可以自己进行设置: 同时, ...

  4. Source Insight中Quicker.em的使用方法

    1.安装方法 Source Insight有很多宏可以用,这里介绍的宏是quicker.em这个宏,它是华为的一个员工写的,很实用. 1)安装quicker.em宏 一.打开base这个工程Proje ...

  5. Source Insight中显示函数调用关系的方法

    接上一篇博客,解决了中文注释乱码后,使用Source Insight显示函数调用关系树状图 网上借鉴了一些经验,但感觉可能是版本不同未能完全奏效,下面我将记录我最终探寻出的解决方法 1.双击编辑器中需 ...

  6. Source Insight中查看文件显示全路径

    使用Source insight的时候想看文件的全路径,但是默认的是中间省略的路径,所以可以通过: 1.Options-->Preferences-->Display 设置Trim lon ...

  7. ubuntu14.04中 gedit 凝视能显示中文,而source insight中显示为乱码的解决的方法

    1.乱码显示情况: 2.用gedit打开文件,并用ctrl+shift+s(另存为),当中charactor coding选为chinese simplified(GB2312); 2.改动个文件名称 ...

  8. Source Insight中无法正确判断宏定义的问题

    Source Insight阅读C语言项目,会出现#ifdef无法正确判断宏定义值导致无法正确跳转到#else的问题,因为软件本身只能识别TRUE和FALSE,解决方法是右键该宏定义选择"E ...

  9. Source Insight(vs2012,ultraedit) 中Tab键设置为4个空格代替

    From: http://blog.csdn.net/wfdtxz/article/details/8520629 Source insight中显示TAB符用4个空格代替 Options->D ...

最新文章

  1. 非二叉树 UVA297 四分树 Quadtrees
  2. HDU 4614 Vases and Flowers 【线段树】+【二分】
  3. hdu5014 构造b数列使得t最大(小想法)
  4. 向服务器端提交数据的两种方式
  5. linux系统切换用户
  6. 【Linux】13_ 文件查找
  7. 还找不到数据异常原因?这份教程赶快拿走
  8. Java注解原理学习之@Cacheable debug
  9. 华科计算机系研究生遗书,看完华中科大研究生遗书《狗血的研究生生涯》,泪目了!有话要说...
  10. Silverlight 2 DataGrid December 2008
  11. no python application found_为什么我会得到“uWSGI Error Python application not found”?
  12. 全栈project师的毁与誉
  13. dw向右滚动字幕HTML,[转载]DW添加滚动字幕[转]
  14. 网络攻防|Web后门知识详解
  15. 基于STM32的多普勒雷达测速
  16. numpy 求向量夹角 区间 [-pi, +pi]
  17. 当我们在聊「开源大数据调度系统Taier」的数据开发功能时,到底在讨论什么?
  18. HTML+CSS写网站首页
  19. 《小狗钱钱》--chapter14~18--生活顺风顺水了起来
  20. 数据挖掘——数据挖掘的起源

热门文章

  1. java 统一编码_java GBK UTF-8编码与自动识别与统一(乱码问题)
  2. java 类的重载_Java自学-类和对象 方法重载
  3. 网工路由基础(1)静态路由
  4. KubeMeet 深圳站完整议题出炉 快来 get 云原生边缘计算硬核技术动态
  5. 3 种发布策略,解决 K8s 中快速交付应用的难题
  6. 华为服务器系统关机命令,云服务器关机指令
  7. 计算机听不到音乐怎么回事,电脑听不到声音怎么解决 电脑听不到声音的处理方法...
  8. nodejs 服务器怎么导入qs_nodejs基本原理总结
  9. 材料模拟python_用Python模拟无限生成器
  10. java 爬虫框架_不知道Python爬虫?这篇文章丢给他(内含框架结构)