编码中有没有遇到这种情况:添加一个新的函数,参考某某函数。然后我们新加一个函数名,把某某函数的内容全部拷贝过来,参数不一样时,再把拷贝过来的内容里的参数全部替换成新的参数。source insight 里替换的命令是ctrl+h,但是这个是全局查找来替换的;如果我只想在这个函数内进行替换呢,该怎么操作呢?
下面使用宏来处理,具体的宏如下:
macro ReplaceInSelection()
{
hwnd = GetCurrentWnd() //取当前窗口
LnFirst = GetWndSelLnFirst(hwnd) //取选中的首行行号
LnLast = GetWndSelLnLast(hwnd) //取选中的末行行号
hbuf = GetCurrentBuf()
oldString = Ask("Input Old String") //输入旧字符串
newString = Ask("Input New String") //输入新字符串
//替换
ReplaceInBuf(hbuf, "@oldString@", "@newString@", LnFirst, LnLast + 1, False, False, True, True)
}
把这个宏添加到一个.em 文件里,再添加到项目中,就可以为这个宏添加一个快捷键了,如:
操作时,可以不选中代码,那就要看光标在哪里了,也可以选中代码,如:
选中完按下快捷键,弹出要输入的旧的字符串,如:
然后再输入新的字符串,如:
确定后,会弹出对话框让你选择是一个个替换,还是全部替换,如:
选中“all” 确实后,原来的_entry 全部替换为了 entry222,如:
完美。