步骤:
1.新建文件comment.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)
}
// 添加 #if 0 #endif
macro AddMacroComment()
{
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 == "#if 0" && szIfEnd == "#endif") {
DelBufLine(hbuf, lnLast+1)
DelBufLine(hbuf, lnFirst-1)
lnFirst = lnFirst - 1
lnLast = lnLast - 1
}else{
InsBufLine(hbuf, lnFirst, "#if 0")
InsBufLine(hbuf, lnLast+2, "#endif")
lnFirst = lnFirst + 1
lnLast = lnLast + 1
}
SetWndSel( hwnd, sel )
}
2.将comment.em拷贝到Source Insight base工程目录,如C:\Users\Administrator\Documents\Source Insight\Projects\Base
3. 创建sourceinsight工程,将工程所需的源代码与上一步骤中的***.em文件都添加到工程中。
4. 重建工程: Project->Rebuilt Project; (若是在工程建好后再添加.em文件,此步很重要)
4.添加快捷键: Options->Key Assignment,在command编辑框下敲入MultiLineComment会出现Macro:MultiLineComment, 点击Assign New Key...,输入快捷键,常用的是Ctrl+\, 若该快捷键已被占用,可使用Ctrl+shift+\或其他习惯用的。
5.添加工具栏菜单: Options->Menu Assignment, 同样在command编辑框下敲入MultiLineComment, 点击右边的Menu下拉框,选择想要放的菜单栏,例如放在edit菜单栏下,再点击MeauContents下的<end of menu>,点击右边的Insert按钮,插入子菜单名称即可,如MultiLineComment, 再点击OK。
6.此时选择多行代码按快捷键就可以注释和非注释某些代码了。主菜单下会有edit菜单项,Work下有MultiLineComment子菜单项,并且显示了快捷键,选择需要注释的代码段,点击子菜单或使用快捷键即可实现多行注释,再点击快捷键或子菜单即可消除多行注释