Source Insight(SI)中有一个Base工程,是安装完SI后自动生成的一个工程,该工程里只有一个Utils.em文件,该文件是常用编辑宏的一个集合。
通过修改或添加宏就可以让宏实现我们想要在编辑文本时添加的内容。
文件注释
macro InsertFileHeader()
{
//get crrunt time
szTime = GetSysTime(1)
Day = szTime.Day
Month = szTime.Month
Year = szTime.Year
hbuf = GetCurrentBuf()
filename = GetBufName(hbuf)
InsBufLine(hbuf, 0, " /**")
InsBufLine(hbuf, 1, "***************************************************************************")
InsBufLine(hbuf, 2, "* \@文件名称: @filename@")
InsBufLine(hbuf, 3, "* \@描述 : alw ")
InsBufLine(hbuf, 4, "* \@时间 : @Year@-@Month@-@Day@")
InsBufLine(hbuf, 5, "* \@版本 :")
InsBufLine(hbuf, 6, "* \@创建人 :")
InsBufLine(hbuf, 7 , "**************************************************************************")
InsBufLine(hbuf, 8, " */")
}
函数注释
macro InsertFunctionHeader()
{
hwnd = GetCurrentWnd()
lnFirst = GetWndSelLnFirst(hwnd)
// Get current time
szTime = GetSysTime(1)
Day = szTime.Day
month = szTime.Month
Year = szTime.Year
if (Day < 10)
szDay = "0@Day@"
else
szDay = Day
hbuf = GetCurrentBuf()
InsBufLine(hbuf, lnFirst, "/*")
InsBufLine(hbuf, lnFirst+1, "*\@ 描述 :")
InsBufLine(hbuf, lnFirst+2, "*\@ 描述 :")
InsBufLine(hbuf, lnFirst+3, "*\@ 注意 :")
InsBufLine(hbuf, lnFirst+4, "*\@ 输入 :")
InsBufLine(hbuf, lnFirst+5, "*\@ 返回 :")
InsBufLine(hbuf, lnFirst+6, "*\@ 时间 : @Year@-@month@-@Day@")
InsBufLine(hbuf, lnFirst+7, "*/")
}
多行注释
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)
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)
}
设置快捷键
Options --> Key Assigmengts -->Command (输入需要映射命 Macro: MultiLineComment)–> Assign New Key
设置到菜单栏中
Options --> Key Assigmengts -->Command (输入需要映射命 Macro: MultiLineComment)–>menu (选择菜单栏命令))–> Menu contents(选择设置命令) -->ok