UltraEdit编辑器使用技巧之内置JS脚本.docx
- 文档编号:347684
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:7
- 大小:133.55KB
UltraEdit编辑器使用技巧之内置JS脚本.docx
《UltraEdit编辑器使用技巧之内置JS脚本.docx》由会员分享,可在线阅读,更多相关《UltraEdit编辑器使用技巧之内置JS脚本.docx(7页珍藏版)》请在冰豆网上搜索。
UltraEdit编辑器使用技巧之内置JS脚本
UltraEdit编辑器使用技巧之内置JS脚本
UltraEdit编辑器使用技巧
——内置JS脚本
前言:
我使用的UE版本是14.20,应该是现今较通用版本。
恕其他版本无暇多予比对。
之前一直用Editplus,因速度比较快,功能也尚可,且以前版本的UE没什么独到之处,直到用了14.20,用了其强大的自定义功能,以及内置JS脚本(而非过于弱智的宏),才彻底抛弃Editplus,转而研究UE,并彻底被其吸引……
一、脚本使用
首先讲讲UE使用脚本的好处和基本原理:
使用脚本相当于是把外置的一个程序引用到编辑器之中,作为它的一个可执行命令,就好像我们UE中编辑->删除->删除至行尾;或者在word之中,可以选中一段内容->右键->选择格式相似的文本(这个例子可能不恰当,因为这已经不是纯文本编辑,而是附带了格式的。
但其本质是一样的)。
如果我们要使用自己特有的功能,而不是系统提供的呢?
如果我要统计文本里面有多少个字符串”TEST”怎么做?
我要统计只
二、程序举例
1.下面以刚刚的“如果我要统计文本里面有多少个字符串”TEST”怎么做?
”为例,讲解UE-JS。
UltraEdit.activeDocument.top();//把光标移至文本的最顶端
varstr_f="test";//要搜索的字符串
varcnt1=0;//个数统计
UltraEdit.activeDocument.findReplace.find(str_f);//查找字符串str_f
while(UltraEdit.activeDocument.isFound())//如果找到要查询的字符串,则执行下面程序
{
cnt1=cnt1+1;
UltraEdit.activeDocument.findReplace.find(str_f);//再一次查找
}
UltraEdit.messageBox("共搜索到"+cnt1+"个字符串");//弹出窗口显示结果
以上程序相当于是用程序步骤模仿手工操作,并同时加上手动的计数。
程序不会重新从头搜索,所以向下搜不到字符串的时候,就跳出循环,显示结果了。
这个需求也有另一种办法来做——全部通过标准的JS。
此种方法不是很推荐,但本质上来说更加灵活,适于JS方面比较擅长者,在此我也写出来供大家参考。
JS的function我就不多做解释了,因为其很灵活,我只是随便用了一种。
functioncount_str(text_all,str_f)
{
varresult="";
result=text_all.split(str_f);
returnresult.length-1;
}
UltraEdit.activeDocument.selectAll();//选择全部文本
vartext_all=UltraEdit.activeDocument.selection;//获取文本为字符串
varstr_f="test";//要搜索的字符串
varcnt1=count_str(text_all,str_f);//调用函数count_str
UltraEdit.messageBox("共搜索到"+cnt1+"个字符串");//弹出窗口显示结果
2.我们再看“我要统计只在行首显示的”TEST”怎么做?
”
UltraEdit.activeDocument.top();//把光标移至文本的最顶端
UltraEdit.activeDocument.findReplace.regExp=true;//使用正则表达式查找
varstr_f="^test";//要搜索的字符串:
行首的"test"
varcnt1=0;//个数统计
UltraEdit.activeDocument.findReplace.find(str_f);//查找字符串str_f
while(UltraEdit.activeDocument.isFound())//如果找到要查询的字符串,则执行下面程序
{
cnt1=cnt1+1;
UltraEdit.activeDocument.findReplace.find(str_f);//再一次查找
}
UltraEdit.messageBox("共搜索到"+cnt1+"个字符串");//弹出窗口显示结果
这个时侯就需要用到正则表达式了,正则表达式作为“非人类语言”,本身值得重新讲一次,但是网上已经有很多相关的资料,本人的水平也有限,就不再赘述了。
各位可以自己去看看,UE本身也有正则表达式的参考,仔细研究研究都能明白。
闲话少说,看程序:
同上面第一个程序,这个也可以全部通过标准的JS来做。
不过在这里再写出来意义不大。
不再重复。
3.我们最后再看看“如果我不单要统计有多少个行首的”TEST”,并且还要把这些行都重新复制到一个新的文本,该怎么做?
”
这里不单要读,要匹配查询,还要写到其他的文件里,稍微要再多一个步骤。
略有不同的地方是“UltraEdit.document[0].write(line);”这一句,表示把一个字符串写到一个文档里面,UltraEdit.document[0]表示的是UE打开窗口中的第一个窗口。
请看程序:
UltraEdit.activeDocument.top();//把光标移至文本的最顶端
UltraEdit.activeDocument.findReplace.regExp=true;//使用正则表达式查找
varstr_f="^test";//要搜索的字符串:
行首的"test"
varcnt1=0;//个数统计
varline;
UltraEdit.activeDocument.findReplace.find(str_f);//查找字符串str_f
while(UltraEdit.activeDocument.isFound())//如果找到要查询的字符串,则执行下面程序
{
cnt1=cnt1+1;
UltraEdit.activeDocument.selectLine();
line=UltraEdit.activeDocument.selection;
UltraEdit.document[0].write(line);
UltraEdit.activeDocument.findReplace.find(str_f);//再一次查找
}
附注:
1.UE按名称排序,正常情况下,我会用一个日期命名的文件作为当日的临时文件,其他的都是字母命名,每次打开当日临时文件都是排在第一个,也方便查找每天工作的文本记录。
2.脚本使用帮助参见UEHelp“入门->脚本命令”。
3.UE虽然支持脚本,但暂时还没有调试功能,这个很让人郁闷。
暂时我也还没想到太好的办法,只能是靠经验了。
4.正则表达式问题,或许以后我会另写一篇,希望有人支持!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UltraEdit 编辑器 使用 技巧 内置 JS 脚本