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

      说些废话本人屌丝初级码农一枚,由于几个月前感冒发烧但是没办法仍然继续码代码,后来感冒好了,但是发现视力大不如前,所以请各位码农珍惜自己的身体,身体是革命的本钱!这也是我用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就可以看到自定义的两个宏如图:

source insight添加、取消多行屏蔽宏_第1张图片

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

source insight添加、取消多行屏蔽宏_第2张图片


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


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



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



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

相关参考1

相关参考2

你可能感兴趣的:(source,Sight)