您的位置:首页 > 其它

source insight添加、取消多行屏蔽宏

2016-05-05 10:11 621 查看
说些废话本人屌丝初级码农一枚,由于几个月前感冒发烧但是没办法仍然继续码代码,后来感冒好了,但是发现视力大不如前,所以请各位码农珍惜自己的身体,身体是革命的本钱!这也是我用source insight的原因。

source insight之前也是一直安装在电脑上的,但是因为搞得嵌入式代码不算太大也就一直在用IAR,keil凑合看了,现在回过头来用source insight,习惯了IAR中批量屏蔽

Ctrl + K;取消屏蔽Ctrl+shift +K;杯具的发现source insight 没有该快捷键,后来经多方查找原来是需要自己写宏。顿时感觉source insight高大上了许多,更加坚定了我以后要用source insight了。因为暂时只用到了批量屏蔽和取消屏蔽,所以就以这两了为例了。关于其他的功能请自行网上搜索。我也是在网上找到的这两个宏。具体的连接会在文章末尾标示,这里感谢一下那些共享出那些宏的大神们。俗话说调调大路通罗马,我的方法不会是唯一的方法,但是都是经本人实践验证,各位可以酌量选择,如有不对或者不完善的地方请各位一定指出大家共同学习进步。

实现步骤:

Step1:我是在我的工程目录下新建了一个txt文档,然后将宏函数复制进去,然后把txt格式改成.em格式保存命名为:mymacro.em

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)

}

macro UnMultiLineComment()
{   //取消杠杠注释,不选中多行的话,默认只处理当前行
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 >= 2 )
{
start = 0

while( strmid( buf, start, start + 1 ) == CharFromAscii(32) || strmid( buf, start, start + 1 ) == CharFromAscii(9) )
{
start = start + 1
if( start >= len )
break
}
if( start < len - 2 )
{
if( strmid( buf, start, start + 2 ) == "//" )
{
buf2 = cat( strmid( buf, 0, start ), strmid( buf, start + 2, len ) )
PutBufLine( hbuf, ln, buf2 )
}
}
}
ln = ln + 1
}
SetWndSel( hwnd, selection )
}


然后保存,将该文件添加到source insight中。

Step 2:选择Project->Add and Remove Project File...将mymacro.em添加到工程中,这里注意,mymacro.em一定要在Directory中

Step3:已经添加完成之后选择Option->Key Assignments...输入Macro就可以看到自定义的两个宏如图:



然后选中一个宏名称点击Assign New Key,出来提示对话框如图:



这时就可以按快捷键了,这里用Ctrl+K;点击OK即可。之后就可以使用Ctrl + K屏蔽多行了。

至于取消操作与上文操作步骤相同。

官方宏连接:http://www.sourceinsight.com/public/macros/

这里感谢各位大牛们的分享:

相关参考1

相关参考2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: