好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

ultraedit编辑器使用技巧之内置js脚本.doc

5页
  • 卖家[上传人]:F****n
  • 文档编号:97957445
  • 上传时间:2019-09-07
  • 文档格式:DOC
  • 文档大小:28.50KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 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”开始的,我也写了一个UltraEdit.activeDocument.write("Hello world!"); //在当前活动窗口写入” Hello world!”UltraEdit.messageBox("Hello world!"); //弹出消息框” Hello world!”UE-JS的”Hello world”,如下:首先,新建一个空的js文件(如t.js)打开“脚本->脚本”,再弹出的窗口里点“添加”,引入刚刚写的空文件,然后选中刚刚引入的那个文件,编辑。

      写入上面的内容在某一活动窗口,”脚本->t.js”你就会看到窗口中写入了” Hello world!”,然后还有一个弹出框显示” Hello world!”,调试通过这个,就可以开始写其他的脚本程序了我使用的例子数据如下:this is the test data. #this is the test data. this is the test data. this is the test data. test this is the test data. test this is the test data. test this is the test data. test this is the test data. test this is the test data. test #this is the test data. test this is the test data. test this is the test data. test this is the test data. test this is the test data. test this is the test data. test this is the test data. test this is the test data. this is the test data. this is the test data. #this is the test data. this is the test data. this is the test data. this is the test data. this is the test data. this is the test data. this is the test data. this is the test data. this is the test data. 二、程序举例1. 下面以刚刚的“如果我要统计文本里面有多少个字符串”TEST”怎么做?”为例,讲解UE-JS。

      UltraEdit.activeDocument.top(); //把光标移至文本的最顶端var str_f = "test"; //要搜索的字符串var cnt1 = 0; //个数统计UltraEdit.activeDocument.findReplace.find(str_f); //查找字符串 str_fwhile (UltraEdit.activeDocument.isFound()) //如果找到要查询的字符串,则执行下面程序{ cnt1 = cnt1 + 1; UltraEdit.activeDocument.findReplace.find(str_f); //再一次查找}UltraEdit.messageBox("共搜索到 " + cnt1 + "个字符串"); //弹出窗口显示结果以上程序相当于是用程序步骤模仿手工操作,并同时加上手动的计数程序不会重新从头搜索,所以向下搜不到字符串的时候,就跳出循环,显示结果了这个需求也有另一种办法来做——全部通过标准的JS此种方法不是很推荐,但本质上来说更加灵活,适于JS方面比较擅长者,在此我也写出来供大家参考JS的function 我就不多做解释了,因为其很灵活,我只是随便用了一种。

      function count_str(text_all,str_f){ var result = ""; result = text_all.split(str_f); return result.length - 1;}UltraEdit.activeDocument.selectAll(); //选择全部文本var text_all = UltraEdit.activeDocument.selection; //获取文本为字符串var str_f = "test"; //要搜索的字符串var cnt1 =count_str(text_all,str_f); //调用函数 count_strUltraEdit.messageBox("共搜索到 " + cnt1 + "个字符串"); //弹出窗口显示结果 2. 我们再看“我要统计只在行首显示的”TEST”怎么做?”UltraEdit.activeDocument.top(); //把光标移至文本的最顶端UltraEdit.activeDocument.findReplace.regExp = true; //使用正则表达式查找var str_f = "^test"; //要搜索的字符串:行首的"test"var cnt1 = 0; //个数统计UltraEdit.activeDocument.findReplace.find(str_f); //查找字符串 str_fwhile (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; //使用正则表达式查找var str_f = "^test"; //要搜索的字符串:行首的"test"var cnt1 = 0; //个数统计var line;UltraEdit.activeDocument.findReplace.find(str_f); //查找字符串 str_fwhile (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. 脚本使用帮助参见UE Help“入门->脚本命令”3. UE虽然支持脚本,但暂时还没有调试功能,这个很让人郁闷暂时我也还没想到太好的办法,只能是靠经验了4. 正则表达式问题,或许以后我会另写一篇,希望有人支持!解决党委自身和基层党支部存在的的突出问题,发挥各村、社区、机关单位党支部在当前城市征迁、园区建设、招商引资、服务群众、维护稳定的作用,我镇党委高度重视,制定了切合临淮实际的活动实施方案,按照中央规定的活动步骤和要求扎实有效的开展了基层组织建设年活动。

      点击阅读更多内容
      相关文档
      高等学校学生手册.doc 2025年区教育系统招聘编外教师储备人才事业单位考试押题.docx 2025年秋季青岛版三年级数学上册认识轴对称现象教学课件.pptx 2025年秋季青岛版三年级数学上册用乘法估算解决问题教学课件.pptx 2025年秋季青岛版三年级数学上册两、三位数乘一位数的笔算(不进位)教学课件.pptx 2025年秋季青岛版三年级数学上册1200张纸有多厚教学设计范文.docx 2025年秋季青岛版三年级数学上册多位数除以一位数教学课件.pptx 2025年秋季青岛版三年级数学上册认识平移、旋转现象教学课件.pptx 2025年秋季青岛版三年级数学上册多位数乘一位数教学设计范本.docx 2025年秋季青岛版三年级数学上册认识平移与旋转教学设计范文.docx 2025年秋季青岛版三年级数学上册乘数中间有0或末尾有0的乘法教学课件.pptx 2025年秋季青岛版三年级数学上册两位数乘一位数的笔算(进位)教学课件.pptx 2025年秋季青岛版三年级数学上册《两、三位数乘一位数的笔算(不进位)》教学设计与意图.docx 2025年秋季青岛版三年级数学上册我学会了吗教学课件.pptx 2025年连云港市妇幼保健院招聘专业技术人员考试笔试试题.docx 2025年深圳市大鹏新区发展和财政局招聘考试笔试试卷.docx 2025年绵阳市梓潼县财政投资评审中心招聘考试试题.docx 2025年来宾市妇幼保健院招聘考试笔试试题.docx 2025年无极县教育系统招聘教师考试笔试试卷.docx 2025年灵山县第三中学调配教师考试笔试试题.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.