sourceinsight中的多行注释.docx
上传人:sy****28 上传时间:2024-09-13 格式:DOCX 页数:3 大小:23KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

sourceinsight中的多行注释.docx

sourceinsight中的多行注释.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

sourceinsight中的多行注释我们经常要对一整段代码进行注释,很多代码编辑器都提供了这样的功能:用快捷键“Ctrl+/”来实现“//”的多行注释。但是在用sourceinsight的时候,发现竟然没有这样的功能。于是在网上搜了一下,sourceinsight里面的多行注释可以用宏来实现。以下是实现多行注释的宏代码(在别的网站copy过来的,经过测试,还是很好用的):12345678910111213141516171819202122232425262728293031323334353637macroMultiLineComment(){hwnd=GetCurrentWnd()selection=GetWndSel(hwnd)LnFirst=GetWndSelLnFirst(hwnd)//取首行行号LnLast=GetWndSelLnLast(hwnd)//取末行行号hbuf=GetCurrentBuf()if(GetBufLine(hbuf,0)=="//magic-number:tph85666031"){stop}Ln=Lnfirstbuf=GetBufLine(hbuf,Ln)len=strlen(buf)while(Ln<=Lnlast){buf=GetBufLine(hbuf,Ln)//取Ln对应的行if(buf==""){//跳过空行Ln=Ln+1continue}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文件,打开sourceinsight,将该文件添加到工程中,然后在Options->KeyAssignments中你就可以看到这个宏了,宏的名字是MultiLineComments,然后我们为它分配快捷键“Ctrl+/”,然后就可以了。这里还有一份添加“#ifdef0”和“#endif”的宏代码:12345678910111213141516171819202122232425262728macroAddMacroComment(){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=="#if0"&&szIfEnd=="#endif"){DelBufLine(hbuf,lnLast+1)DelBufLine(hbuf,lnFirst-1)sel.lnFirst=sel.lnFirst–1sel.lnLast=sel.lnLast–1}else{InsBufLine(hbuf,lnFirst,"#if0")InsBufLine(hbuf,lnLast+2,"#endif")sel.lnFirst=sel.lnFirst+1sel.lnLast=sel.lnLast+1}SetWndSel(hwnd,sel)}这份宏的代码可以把光标显示的行注释掉:123456789macroCommentSingleLine(){hbuf=GetCurrentBuf()ln=GetBufLnCur(hbuf)str=GetBufLine(hbuf,ln)str=cat("/*",str)str=cat(str,"*/")PutBufLine(hbuf,ln,str)}将一行中鼠标选中部分注释掉:123456789macroCommentSelStr(){hbuf=GetCurrentBuf()ln=GetBufLnCur(hbuf)str=GetBufSelText(hbuf)st