最新UltraEdit编辑器使用技巧之内置JS脚本.docx

上传人:b****7 文档编号:9834814 上传时间:2023-02-06 格式:DOCX 页数:7 大小:49.51KB
下载 相关 举报
最新UltraEdit编辑器使用技巧之内置JS脚本.docx_第1页
第1页 / 共7页
最新UltraEdit编辑器使用技巧之内置JS脚本.docx_第2页
第2页 / 共7页
最新UltraEdit编辑器使用技巧之内置JS脚本.docx_第3页
第3页 / 共7页
最新UltraEdit编辑器使用技巧之内置JS脚本.docx_第4页
第4页 / 共7页
最新UltraEdit编辑器使用技巧之内置JS脚本.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

最新UltraEdit编辑器使用技巧之内置JS脚本.docx

《最新UltraEdit编辑器使用技巧之内置JS脚本.docx》由会员分享,可在线阅读,更多相关《最新UltraEdit编辑器使用技巧之内置JS脚本.docx(7页珍藏版)》请在冰豆网上搜索。

最新UltraEdit编辑器使用技巧之内置JS脚本.docx

最新UltraEdit编辑器使用技巧之内置JS脚本

UltraEdit编辑器使用技巧之内置JS脚本

UltraEdit编辑器使用技巧

——内置JS脚本

前言:

我使用的UE版本是14.20,应该是现今较通用版本。

恕其他版本无暇多予比对。

之前一直用Editplus,因速度比拟快,功能也尚可,且以前版本的UE没什么独到之处,直到用了14.20,用了其强大的自定义功能,以及内置JS脚本〔而非过于弱智的宏〕,才彻底抛弃Editplus,转而研究UE,并彻底被其吸引……

一、脚本使用

首先讲讲UE使用脚本的好处和根本原理:

使用脚本相当于是把外置的一个程序引用到编辑器之中,作为它的一个可执行命令,就好似我们UE中编辑->删除->删除至行尾;或者在word之中,可以选中一段内容->右键->选择格式相似的文本〔这个例子可能不恰当,因为这已经不是纯文本编辑,而是附带了格式的。

但其本质是一样的〕。

如果我们要使用自己特有的功能,而不是系统提供的呢?

如果我要统计文本里面有多少个字符串〞TEST〞怎么做?

我要统计只在行首显示的〞TEST〞怎么做?

如果我不但要统计有多少个行首的〞TEST〞,还要把这些行都重新复制到一个新的文本,该怎么做?

在数据量小的时候,可以手工操作,可如果这是一个50K的文本,估计一天之内,你就不用干别的了,如果是500K呢?

本质上来说脚本和宏的道理是一样的,只是宏靠的是录制,记录你一连串的操作,以便之后你再使用同样的操作的时候,可以仅仅点击一下鼠标或者用个快捷键,就实现了之前的一连串操作。

但是如果你没有确定的操作该怎么办呢?

就好似刚刚说的“不单要统计有多少个行首的〞TEST〞,并且还要把这些行都重新复制到一个新的文本〞,这个操作到底该怎么录制,我还真说不清楚……估计不录个十次八次的,谁都不知道自己的操作对不对。

因此说,宏有它的局限性,不适于过于复杂的操作,当然宏本身也是可以编辑的,但是相对于脚本语言来说,晦涩难懂的宏语句绝对不是给人看的……据说有“编辑器之神〞之称的Emacs就是靠它的内置脚本编辑方法,维护着绝对老大的地位。

我无缘接触Emacs,幸好UE也终于有了这个功能,并且用的还是比

我使用的例子数据如下:

thisisthetestdata.

#thisisthetestdata.

thisisthetestdata.

thisisthetestdata.

testthisisthetestdata.

testthisisthetestdata.

testthisisthetestdata.

testthisisthetestdata.

testthisisthetestdata.

test#thisisthetestdata.

testthisisthetestdata.

testthisisthetestdata.

testthisisthetestdata.

testthisisthetestdata.

testthisisthetestdata.

testthisisthetestdata.

testthisisthetestdata.

thisisthetestdata.

thisisthetestdata.

#thisisthetestdata.

thisisthetestdata.

thisisthetestdata.

thisisthetestdata.

thisisthetestdata.

thisisthetestdata.

thisisthetestdata.

thisisthetestdata.

thisisthetestdata.

二、程序举例

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.正那么表达式问题,或许以后我会另写一篇,希望有人支持!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1