对于一直使用sourceinsight编辑C/C++代码的工程师们,sourceinsight是一个非常好用的编辑工具可以任意定位,跳转,回退,本人一直使用该工具做C/C++开发,sourceinsight能够满足我的大部分需求,但是有些功能没有总觉得是一个缺憾。源码链接:链接:https://pan.baidu.com/s/1DpGV75XeSpQrP1BlFbYHHg 密码:bqq6

<1>.在SourceInsight里使用"#if 0 #endif"注释,可用下面的方法添加宏插件。

  • 在C:\Users\计算机名\Documents\Source Insight\Projects\Base中有个utils.em文件.打开编辑(注:最好预先备份utils.em)
  • 在文档的最后添加以下代码.
  1. macro Custom_AddMacroComment()//Alt+1
  2. { //add #if 0 #endif
  3. hwnd=GetCurrentWnd()
  4. sel=GetWndSel(hwnd)
  5. lnFirst=GetWndSelLnFirst(hwnd)
  6. lnLast=GetWndSelLnLast(hwnd)
  7. hbuf=GetCurrentBuf()
  8.  
  9. if (LnFirst == )
  10. {
  11. szIfStart = ""
  12. }
  13. else
  14. {
  15. szIfStart = GetBufLine(hbuf, LnFirst-)
  16. }
  17.  
  18. szIfEnd = GetBufLine(hbuf, lnLast+)
  19.  
  20. if (szIfStart == "#if 0" && szIfEnd =="#endif")
  21. {
  22. DelBufLine(hbuf, lnLast+)
  23. DelBufLine(hbuf, lnFirst-)
  24. sel.lnFirst = sel.lnFirst
  25. sel.lnLast = sel.lnLast
  26. }
  27. else
  28. {
  29. InsBufLine(hbuf, lnFirst, "#if 0")
  30. InsBufLine(hbuf, lnLast+, "#endif")
  31. sel.lnFirst = sel.lnFirst +
  32. sel.lnLast = sel.lnLast +
  33. }
  34. SetWndSel( hwnd, sel )
  35. }
  • 打开任意一个SI工程,点击Project->Open Project->Base,以此打开Base工程(此工程是SI的默认基础工程,如果不打开Base工程,在后面的操作中将不会显示所添加的宏),然后关闭此工程.
  • 再打开任意一个SI工程,点击Options->Key Assignments,然后查找Custom_AddMacroComment

  • 点击Assign New Key,此时输入键盘上想设置的快捷键(觉得Alt+X比较顺手).点击OK.

<2>.在SourceInsight里使用多行“//”注释,可用下面代码添加宏插件,方法如<1>.

  1. macro Custom_MultiLineComment()//Alt+2
  2. { //comment multiple lines
  3. hwnd = GetCurrentWnd()
  4. selection = GetWndSel(hwnd)
  5. LnFirst = GetWndSelLnFirst(hwnd)
  6. LnLast = GetWndSelLnLast(hwnd)
  7. hbuf = GetCurrentBuf()
  8.  
  9. if(GetBufLine(hbuf, ) == "//magic-number:tph85666031")
  10. {
  11. stop
  12. }
  13.  
  14. Ln = Lnfirst
  15. buf = GetBufLine(hbuf, Ln)
  16. len = strlen(buf)
  17.  
  18. while(Ln <= Lnlast)
  19. {
  20. buf = GetBufLine(hbuf, Ln)
  21. if(buf == "")
  22. {
  23. Ln = Ln +
  24. continue
  25. }
  26.  
  27. if(StrMid(buf, , ) == "/")
  28. {
  29. if(StrMid(buf, , ) == "/")
  30. {
  31. PutBufLine(hbuf, Ln, StrMid(buf, , Strlen(buf)))
  32. }
  33. }
  34.  
  35. if(StrMid(buf,,) != "/")
  36. {
  37. PutBufLine(hbuf, Ln, Cat("//", buf))
  38. }
  39. Ln = Ln +
  40. }
  41.  
  42. SetWndSel(hwnd, selection)
  43. }

<3>.在SourceInsight里去除多行“//”注释,可用下面代码添加宏插件,方法如<1>.

  1. macro Custom_RemoveMultiLineComment()//Alt+3
  2. { //Uncomment multiple lines
  3. hwnd = GetCurrentWnd()
  4. selection = GetWndSel( hwnd )
  5. lnFirst = GetWndSelLnFirst( hwnd )
  6. lnLast = GetWndSelLnLast( hwnd )
  7.  
  8. hbuf = GetCurrentBuf()
  9. ln = lnFirst
  10. while( ln <= lnLast )
  11. {
  12. buf = GetBufLine( hbuf, ln )
  13. len = strlen( buf )
  14. if( len >= )
  15. {
  16. start =
  17.  
  18. while( strmid( buf, start, start + ) == CharFromAscii() || strmid( buf, start, start + ) == CharFromAscii() )
  19. {
  20. start = start +
  21. if( start >= len )
  22. break
  23. }
  24. if( start < len - )
  25. {
  26. if( strmid( buf, start, start + ) == "//" )
  27. {
  28. buf2 = cat( strmid( buf, , start ), strmid( buf, start + , len ) )
  29. PutBufLine( hbuf, ln, buf2 )
  30. }
  31. }
  32. }
  33. ln = ln +
  34. }
  35. SetWndSel( hwnd, selection )
  36. }

代码非原创,如有侵权,请联系删除

SourceInsight宏插件1(非常好用,强力推荐)的更多相关文章

  1. SourceInsight宏插件3(非常好用,强力推荐)

    openfolder.em源码:(链接:https://pan.baidu.com/s/1draaimWzCHZ3vLxL--lfiQ  提取码:zyq4) //使用资源管理器打开当前文件所在文件夹, ...

  2. SourceInsight宏插件2(非常好用,强力推荐)

    Quicker宏在SI中的使用方法(下载地址:链接:https://pan.baidu.com/s/1VrDxlPhft7RPUCCOKxsGIg  提取码:2d4u) Quicker宏的添加到SI中 ...

  3. 利用sourceinsight宏(Quicker.em)提高编码效率和质量

    利用sourceinsight宏(Quicker.em)提高编码效率和质量Marco是sourceinsight软件一个强大的功能,用户可以通过编写宏来实现自定义功能.这里有个比较流行的宏文件quic ...

  4. 非常适用的Sourceinsight插件,提高效率【强力推荐】

    转自:http://www.cnblogs.com/heiyue/p/6225975.html 一直使用sourceinsight编辑C/C++代码,sourceinsight是一个非常好用的编辑工具 ...

  5. quicker+.em SourceInsight 宏加强版制作

    这两天苦于新建的文件每次都要手动添加文件头,新建的函数每次都要手动添加函数说明,连.h也要手动生成.于是乎,上网搜了搜,发现了lushengwen写的一个神器:quicker.em .好家伙,有了这个 ...

  6. 我的Android进阶之旅------>经典的大牛博客推荐(排名不分先后)!!

    本文来自:http://blog.csdn.net/ouyang_peng/article/details/11358405 今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下 谦虚的天下 柳志超 ...

  7. 如何让Ubuntu系统支持WebP图片格式

    本文主要向大家介绍如何让 Ubuntu 系统支持查看 WebP 图片格式,以及如何将 WebP 转为 JPEG 或 PNG 图片格式的方法. 什么是WebP图片 Google开发并推出 WebP 图片 ...

  8. excel多个sheet表拆分成独立的excel文件

    一.问题: 公司做一个项目,给的用户上报文是一个包含多个sheet页的excel文件, 但是在实际处理报文数据的时候需要拆分excel文件为多个独立的报文excel文件 二.解决: (1)一个一个的复 ...

  9. 性能测试之nmon对linux服务器的监控

    大家都知道在做性能测试的时候,需要监控服务器的资源情况,而大多数服务器是Linux系统,网上资料嘿多,这里汇总介绍下Nmon监控工具: -------------------------------- ...

随机推荐

  1. DOM中offsetLeft与style.left的区别

    offsetLeft 获取的是相对于父对象的左边距 left 获取或设置相对于 具有定位属性(position定义为relative)的父对象 的左边距 如果父div的position定义为relat ...

  2. 自动化测试-21.RobotFrameWork配置安装

    更新pip python -m pip install --upgrade pip 1安装robotframework --pip install robotframework 2. 安装支持框架的运 ...

  3. Python学习笔记第十一周

    目录: 1.RabbitMQ   2.Redis  内容: 1.RabbitMQ 实现简单的队列通信 send端 import pika credentials = pika.PlainCredent ...

  4. opengl库学习

    http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html http://blog.csdn.net/wolf96/article/d ...

  5. Android动态添加Device Admin权限

    /********************************************************************** * Android动态添加Device Admin权限 ...

  6. Pytorch自定义dataloader以及在迭代过程中返回image的name

    pytorch官方给的加载数据的方式是已经定义好的dataset以及loader,如何加载自己本地的图片以及label? 形如数据格式为 image1 label1 image2 label2 ... ...

  7. javascript文档DOC

    python.java都有官网,有官方文档 javascript却找不到官网和官方文档 js大全 https://github.com/jobbole/awesome-javascript-cn md ...

  8. MultipartFile(文件的上传)

    摘自:https://www.cnblogs.com/896240130Master/p/6430908.html https://blog.csdn.net/kouwoo/article/detai ...

  9. Map集合与转化

    |--Hashtable:底层是哈希表数据结构,是线程同步的.不可以存储null键,null值. |--HashMap:底层是哈希表数据结构,是线程不同步的.可以存储null键,null值.替代了Ha ...

  10. 20155219 《Java程序设计》实验一(Java开发环境的熟悉)实验报告

    一.实验内容及步骤 1.使用JDK编译.运行简单的java程序 先在命令行中按老师要求输入,之后编译运行,如下图. 具体代码如下: package src.shiyan1; import java.u ...