Source Insight 宏-局部替换

        编码中有没有遇到这种情况:添加一个新的函数,参考某某函数。然后我们新加一个函数名,把某某函数的内容全部拷贝过来,参数不一样时,再把拷贝过来的内容里的参数全部替换成新的参数。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 文件里,再添加到项目中,就可以为这个宏添加一个快捷键了,如:

Source Insight 宏-局部替换_第1张图片

操作时,可以不选中代码,那就要看光标在哪里了,也可以选中代码,如:

Source Insight 宏-局部替换_第2张图片

选中完按下快捷键,弹出要输入的旧的字符串,如:

Source Insight 宏-局部替换_第3张图片

然后再输入新的字符串,如:

Source Insight 宏-局部替换_第4张图片

确定后,会弹出对话框让你选择是一个个替换,还是全部替换,如:

Source Insight 宏-局部替换_第5张图片

Source Insight 宏-局部替换_第6张图片

选中“all” 确实后,原来的_entry 全部替换为了 entry222,如:

Source Insight 宏-局部替换_第7张图片

完美。 

你可能感兴趣的:(其他,编辑器)