SourceInsight宏插件1(非常好用,强力推荐)
对于一直使用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)
- 在文档的最后添加以下代码.
- macro Custom_AddMacroComment()//Alt+1
- { //add #if 0 #endif
- hwnd=GetCurrentWnd()
- sel=GetWndSel(hwnd)
- lnFirst=GetWndSelLnFirst(hwnd)
- lnLast=GetWndSelLnLast(hwnd)
- hbuf=GetCurrentBuf()
- if (LnFirst == )
- {
- szIfStart = ""
- }
- else
- {
- szIfStart = GetBufLine(hbuf, LnFirst-)
- }
- szIfEnd = GetBufLine(hbuf, lnLast+)
- if (szIfStart == "#if 0" && szIfEnd =="#endif")
- {
- DelBufLine(hbuf, lnLast+)
- DelBufLine(hbuf, lnFirst-)
- sel.lnFirst = sel.lnFirst –
- sel.lnLast = sel.lnLast –
- }
- else
- {
- InsBufLine(hbuf, lnFirst, "#if 0")
- InsBufLine(hbuf, lnLast+, "#endif")
- sel.lnFirst = sel.lnFirst +
- sel.lnLast = sel.lnLast +
- }
- SetWndSel( hwnd, sel )
- }
- 打开任意一个SI工程,点击Project->Open Project->Base,以此打开Base工程(此工程是SI的默认基础工程,如果不打开Base工程,在后面的操作中将不会显示所添加的宏),然后关闭此工程.
- 再打开任意一个SI工程,点击Options->Key Assignments,然后查找Custom_AddMacroComment
- 点击Assign New Key,此时输入键盘上想设置的快捷键(觉得Alt+X比较顺手).点击OK.
<2>.在SourceInsight里使用多行“//”注释,可用下面代码添加宏插件,方法如<1>.
- macro Custom_MultiLineComment()//Alt+2
- { //comment multiple lines
- hwnd = GetCurrentWnd()
- selection = GetWndSel(hwnd)
- LnFirst = GetWndSelLnFirst(hwnd)
- LnLast = GetWndSelLnLast(hwnd)
- hbuf = GetCurrentBuf()
- if(GetBufLine(hbuf, ) == "//magic-number:tph85666031")
- {
- stop
- }
- Ln = Lnfirst
- buf = GetBufLine(hbuf, Ln)
- len = strlen(buf)
- while(Ln <= Lnlast)
- {
- buf = GetBufLine(hbuf, Ln)
- if(buf == "")
- {
- Ln = Ln +
- continue
- }
- if(StrMid(buf, , ) == "/")
- {
- if(StrMid(buf, , ) == "/")
- {
- PutBufLine(hbuf, Ln, StrMid(buf, , Strlen(buf)))
- }
- }
- if(StrMid(buf,,) != "/")
- {
- PutBufLine(hbuf, Ln, Cat("//", buf))
- }
- Ln = Ln +
- }
- SetWndSel(hwnd, selection)
- }
<3>.在SourceInsight里去除多行“//”注释,可用下面代码添加宏插件,方法如<1>.
- macro Custom_RemoveMultiLineComment()//Alt+3
- { //Uncomment multiple lines
- hwnd = GetCurrentWnd()
- selection = GetWndSel( hwnd )
- lnFirst = GetWndSelLnFirst( hwnd )
- lnLast = GetWndSelLnLast( hwnd )
- hbuf = GetCurrentBuf()
- ln = lnFirst
- while( ln <= lnLast )
- {
- buf = GetBufLine( hbuf, ln )
- len = strlen( buf )
- if( len >= )
- {
- start =
- while( strmid( buf, start, start + ) == CharFromAscii() || strmid( buf, start, start + ) == CharFromAscii() )
- {
- start = start +
- if( start >= len )
- break
- }
- if( start < len - )
- {
- if( strmid( buf, start, start + ) == "//" )
- {
- buf2 = cat( strmid( buf, , start ), strmid( buf, start + , len ) )
- PutBufLine( hbuf, ln, buf2 )
- }
- }
- }
- ln = ln +
- }
- SetWndSel( hwnd, selection )
- }
代码非原创,如有侵权,请联系删除
SourceInsight宏插件1(非常好用,强力推荐)的更多相关文章
- SourceInsight宏插件3(非常好用,强力推荐)
openfolder.em源码:(链接:https://pan.baidu.com/s/1draaimWzCHZ3vLxL--lfiQ 提取码:zyq4) //使用资源管理器打开当前文件所在文件夹, ...
- SourceInsight宏插件2(非常好用,强力推荐)
Quicker宏在SI中的使用方法(下载地址:链接:https://pan.baidu.com/s/1VrDxlPhft7RPUCCOKxsGIg 提取码:2d4u) Quicker宏的添加到SI中 ...
- 利用sourceinsight宏(Quicker.em)提高编码效率和质量
利用sourceinsight宏(Quicker.em)提高编码效率和质量Marco是sourceinsight软件一个强大的功能,用户可以通过编写宏来实现自定义功能.这里有个比较流行的宏文件quic ...
- 非常适用的Sourceinsight插件,提高效率【强力推荐】
转自:http://www.cnblogs.com/heiyue/p/6225975.html 一直使用sourceinsight编辑C/C++代码,sourceinsight是一个非常好用的编辑工具 ...
- quicker+.em SourceInsight 宏加强版制作
这两天苦于新建的文件每次都要手动添加文件头,新建的函数每次都要手动添加函数说明,连.h也要手动生成.于是乎,上网搜了搜,发现了lushengwen写的一个神器:quicker.em .好家伙,有了这个 ...
- 我的Android进阶之旅------>经典的大牛博客推荐(排名不分先后)!!
本文来自:http://blog.csdn.net/ouyang_peng/article/details/11358405 今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下 谦虚的天下 柳志超 ...
- 如何让Ubuntu系统支持WebP图片格式
本文主要向大家介绍如何让 Ubuntu 系统支持查看 WebP 图片格式,以及如何将 WebP 转为 JPEG 或 PNG 图片格式的方法. 什么是WebP图片 Google开发并推出 WebP 图片 ...
- excel多个sheet表拆分成独立的excel文件
一.问题: 公司做一个项目,给的用户上报文是一个包含多个sheet页的excel文件, 但是在实际处理报文数据的时候需要拆分excel文件为多个独立的报文excel文件 二.解决: (1)一个一个的复 ...
- 性能测试之nmon对linux服务器的监控
大家都知道在做性能测试的时候,需要监控服务器的资源情况,而大多数服务器是Linux系统,网上资料嘿多,这里汇总介绍下Nmon监控工具: -------------------------------- ...
随机推荐
- DOM中offsetLeft与style.left的区别
offsetLeft 获取的是相对于父对象的左边距 left 获取或设置相对于 具有定位属性(position定义为relative)的父对象 的左边距 如果父div的position定义为relat ...
- 自动化测试-21.RobotFrameWork配置安装
更新pip python -m pip install --upgrade pip 1安装robotframework --pip install robotframework 2. 安装支持框架的运 ...
- Python学习笔记第十一周
目录: 1.RabbitMQ 2.Redis 内容: 1.RabbitMQ 实现简单的队列通信 send端 import pika credentials = pika.PlainCredent ...
- opengl库学习
http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html http://blog.csdn.net/wolf96/article/d ...
- Android动态添加Device Admin权限
/********************************************************************** * Android动态添加Device Admin权限 ...
- Pytorch自定义dataloader以及在迭代过程中返回image的name
pytorch官方给的加载数据的方式是已经定义好的dataset以及loader,如何加载自己本地的图片以及label? 形如数据格式为 image1 label1 image2 label2 ... ...
- javascript文档DOC
python.java都有官网,有官方文档 javascript却找不到官网和官方文档 js大全 https://github.com/jobbole/awesome-javascript-cn md ...
- MultipartFile(文件的上传)
摘自:https://www.cnblogs.com/896240130Master/p/6430908.html https://blog.csdn.net/kouwoo/article/detai ...
- Map集合与转化
|--Hashtable:底层是哈希表数据结构,是线程同步的.不可以存储null键,null值. |--HashMap:底层是哈希表数据结构,是线程不同步的.可以存储null键,null值.替代了Ha ...
- 20155219 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
一.实验内容及步骤 1.使用JDK编译.运行简单的java程序 先在命令行中按老师要求输入,之后编译运行,如下图. 具体代码如下: package src.shiyan1; import java.u ...