UltraEdit编辑器使用技巧之内置JS脚本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UltraEdit编辑器使用技巧
——内置JS脚本前言:
我使用的UE版本是14.20,应该是现今较通用版本。恕其他版本无暇多予比对。之前一直用Editplus,因速度比较快,功能也尚可,且以前版本的UE没什么独到之处,直到用了14.20,用了其强大的自定义功能,以及内置JS脚本(而非过于弱智的宏),才彻底抛弃Editplus,转而研究UE,并彻底被其吸引……
一、脚本使用
首先讲讲UE使用脚本的好处和基本原理:
使用脚本相当于是把外置的一个程序引用到编辑器之中,作为它的一个可执行命令,就好像我们UE中编辑->删除->删除至行尾;或者在word之中,可以选中一段内容->右键->选择格式相似的文本(这个例子可能不恰当,因为这已经不是纯文本编辑,而是附带了格式的。但其本质是一样的)。如果我们要使用自己特有的功能,而不是系统提供的呢?如果我要统计文本里面有多少个字符串”TEST”怎么做?我要统计只在行首显示的”TEST”怎么做?如果我不但要统计有多少个行首的”TEST”,还要把这些行都重新复制到一个新的文本,该怎么做?在数据量小的时候,可以手工操作,可如果这是一个50K的文本,估计一天之内,你就不用干别的了,如果是500K呢?!
本质上来说脚本和宏的道理是一样的,只是宏靠的是录制,记录你一连串的操作,以便之后你再使用同样的操作的时候,可以仅仅点击一下鼠标或者用个快捷键,就实现了之前的一连串操作。但是如果你没有确定的操作该怎么办呢?就好像刚刚说的“不单要统计有多少个行首的”TEST”,并且还要把这些行都重新复制到一个新的文本”,这个操作到底该怎么录制,我还真说不清楚……估计不录个十次八次的,谁都不知道自己的操作对不对。因此说,宏有它的局限性,不适于过于复杂的操作,当然宏本身也是可以编辑的,但是相对于脚本语言来说,晦涩难懂的宏语句绝对不是给人看的……据说有“编辑器之神”之称的Emacs就是靠它的内置脚本编辑方法,维护着绝对老大的地位。我无缘接触Emacs,幸好UE也终于有了这个功能,并且用的还是比较普及的JS脚本。
接下来,就从脚本开始吧:
基本上教程都是以”Hello world”开始的,我也写了一个UE-JS的”Hello world”,如下:
首先,新建一个空的js文件(如t.js)。打开“脚本->脚本”,再弹出的窗口里点“添加”,引入刚刚写的空文件,然后选中刚刚引入的那个文件,编辑。写入上面的内容。在某一活动窗口,”脚本->t.js”。你就会看到窗口中写入了”Hello world!”,然后还有一个弹出框显示” Hello world!”,调试通过这个,就可以开始写其他的脚本程序了。
我使用的例子数据如下:
二、程序举例
1. 下面以刚刚的“如果我要统计文本里面有多少个字符串”TEST”怎么做?”为例,讲解UE-JS。
以上程序相当于是用程序步骤模仿手工操作,并同时加上手动的计数。程序不会重新从头搜索,所以向下搜不到字符串的时候,就跳出循环,显示结果了。
这个需求也有另一种办法来做——全部通过标准的JS。此种方法不是很推荐,但本质上来说更加灵活,适于JS方面比较擅长者,在此我也写出来供大家参考。JS的function 我就不多做解释了,因为其很灵活,我只是随便用了一种。
2. 我们再看“我要统计只在行首显示的”TEST”怎么做?”
这个时侯就需要用到正则表达式了,正则表达式作为“非人类语言”,本身值得重新讲一次,但是网上已经有很多相关的资料,本人的水平也有限,就不再赘述了。各位可以自己去看看,UE本身也有正则表达式的参考,仔细研究研究都能明白。闲话少说,看程序:
同上面第一个程序,这个也可以全部通过标准的JS来做。不过在这里再写出来意义不大。不再重复。
3. 我们最后再看看“如果我不单要统计有多少个行首的”TEST”,并且还要把这些行都重新复制到一个新的文本,该怎么做?”
这里不单要读,要匹配查询,还要写到其他的文件里,稍微要再多一个步骤。略有不同的地方是“UltraEdit.document[0].write(line);”这一句,表示把一个字符串写到一个文档里面,UltraEdit.document[0] 表示的是UE打开窗口中的第一个窗口。请看程序:
附注:
1.UE按名称排序,正常情况下,我会用一个日期命名的文件作为当日的临时文件,其他
的都是字母命名,每次打开当日临时文件都是排在第一个,也方便查找每天工作的文本记录。
2.脚本使用帮助参见UE Help“入门->脚本命令”。
3.UE虽然支持脚本,但暂时还没有调试功能,这个很让人郁闷。暂时我也还没想到太好
的办法,只能是靠经验了。
4.正则表达式问题,或许以后我会另写一篇,希望有人支持!