转自:http://www.cnblogs.com/dongzhiquan/archive/2013/03/04/2943448.html

我们经常要对一整段代码进行注释,很多代码编辑器都提供了这样的功能:用快捷键“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官方帮助文档

Source Insight中的多行注释的更多相关文章

  1. source insight中的快捷键总结

    1.快捷键 1,Shift+F8高亮显示指定字符. 2,Ctrl+F找出来的结果用F4,F3前进后退查找. 3,Alt+,后退alt+.前进查找关键字. 4,Alt+G或者F5跳转到某个固定的行号. ...

  2. 在source insight中集成astyle

    转自:http://www.cnblogs.com/xuxm2007/archive/2013/04/06/3002390.html 好吧,我有代码格式的强迫症,代码不整齐,我看的都头疼,之前一直喜欢 ...

  3. Source Insight 中使用 AStyle 代码格式工具

    Source Insight 中使用 AStyle 代码格式工具 彭会锋 2015-05-19 23:26:32     Source Insight是较好的代码阅读和编辑工具,不过source in ...

  4. AStyle代码格式工具在source insight中的使用

    一.AStyle下载路径 Astyle为开源项目,支持C/C++和java的代码格式化 Home Page: http://astyle.sourceforge.net/ Project Page:  ...

  5. source insight 中tab键的设置

    转:http://xinzero.com/source-insight-code-alignment-ended.html source insight代码对齐Tab键终极版 以前也写过一个sourc ...

  6. Source Insight 中调用Notepad++

    options>custom commands 指令为 "E:\Program Files (x86)\Notepad++\notepad++.exe" %f 其中%f表示S ...

  7. Source Insight 中的 Auto Indenting

    编码过程中,希望输入花括号时能自动对齐,Source Insigth 应如何设置? 先来看一下Source Insight 中的帮助. “ Auto Indenting The auto-indent ...

  8. Source insight 中 标题栏路径显示完整路径的方法

    在source insight 的标题栏中显示完整路径名的方法.Options -> Preferences -> Display -> Trim long path names w ...

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

    1.乱码显示情况: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcjc3NjgzOTYy/font/5a6L5L2T/fontsize/400/fill/ ...

随机推荐

  1. How to: Display a Non-Persistent Object's List View from the Navigation

    This example demonstrates how to display a non-persistent object's List View when a navigation item ...

  2. Oracle中Date和Timestamp的区别

    Date和Timestamp精度不一样: 01)Timestamp精确到了秒的小数点(如:2018-11-13 16:40:03.698): 02)Date只精确到整数的秒(如:2018-11-13 ...

  3. 写个hello world了解Rxjava

    目录 什么是Rxjava? 在微服务中的优点 上手使用 引入依赖 浅谈分析Rxjava中的被观察者,观察者 spring boot 项目中使用Rxjava2 什么是Rxjava? 来自百度百科的解释 ...

  4. Linux中的mysql指令

    如何启动/停止/重启MySQL一.启动方式1.使用 service 启动:service mysqld start2.使用 mysqld 脚本启动:/etc/inint.d/mysqld start3 ...

  5. parewise算法性能优化

    在<接口自动化测试框架-AIM>这篇博客中,提到了parewise算法. 这次对其进行性能优化,共3点. 一. 因为笛卡尔积和两两拆分,是有序的. 就保证了两两拆分后的每列都是相同位置的元 ...

  6. SpringCloud版本问题

    兴致勃勃地跟随文档创建并配置Eureka Server工程后,启动准备测试,发现报了java.lang.NoSuchMethodError: org.springframework.boot.buil ...

  7. NO--16 vue之父子组件传值

    先创建项目并运行 vue init webpack-simple templatecd templatenpm inpm run dev 一.子组件访问父组件的数据 方式一 :子组件直接访问父组件的数 ...

  8. 010 --MySQL查询优化器的局限性

    MySQL的万能"嵌套循环"并不是对每种查询都是最优的.不过还好,mysql查询优化器只对少部分查询不适用,而且我们往往可以通过改写查询让mysql高效的完成工作.在这我们先来看看 ...

  9. SICP读书笔记 2.5

    SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 ...

  10. Python 夺大满贯!三大编程语言榜即将全部“失守”!

    有互联网创业者说: 2019年可能会是过去十年里最差的一年 但却是未来十年里最好的一年 真的是这样吗? “每月工资1w,如何赚到200w?” 同样一个问题,问不同的人会得到不同的答案. 有一类人,开始 ...