jEdit应用指南【基础篇】
jEdit是Java编写,强大,易用的程序员文本编辑器
jEdit是一个成熟的,设计优秀的程序员文本编辑器,已经有了7年的开发历史。在功能和易用性方面压倒许多昂贵的开发工具时,jEdit在GNU公用许可证(GPL)下发布成了开源软件。
jEdit的核心主要由Slava Pestov开发完成,一支由世界各地的程序员组成的队伍正在为jEdit开发插件(plugin)。
下面是jEdit的几个特色:
- 用java编写,所以它可以运行在Mac OS X, OS/2, Unix, VMS 和Windows平台上(山颠:非java程序员不推荐使用)
- 内建宏语言;可扩展的插件体系;目前已经有了很多宏和插件.(山颠:内建BeanShell脚本语言,通过插件可以支持其他脚本语言.这点是我之所以在这里费力的原因 ^_^)
- 使用jEdit的插件管理器可以下载插件并安装.(山颠:如果网络状况允许,这个功能确实非常好.不过建议想这么干的家伙去sf看看那些插件都是干什么的先,全装了会影响性能)
- 提供超过130总编程语言的自动缩进和语法高亮.(山颠:很棒.据我所知,BeanShell的高亮显示好象只有它支持)
- 支持UTF8和Unicode在内的大量字符编码
- 代码折叠
- 自动换行
- 极高的可配置性和可定制性
- 所有其他你希望在一个文本编辑器里找到的功能,不管是基础性的还是高级的,你都可以在jEdit中找到.请查看全部功能清单
看看这些截图,从直观上感受一下jEdit:http://www.jedit.org/index.php?page=screenshots
是啊,千变万化的jEdit。融合VIM,EditPlus,Emacs等编辑器的优点于一身。请查看维基百科中的文本编辑器比较。在这个有些片面(显然测试的是个阳春版本,没有加任何插件)的比较中,jEdit的表现仍然很是抢眼,全面超越它的只有Emacs(这个超级难用的程序)。作为一个Java程序员,我找遍了整个地球,在苦恼地承认自己的智商还不足以轻松学好Emacs或Vim后欣喜地发现了:开源、强大、易用、Java编写的jEdit正是我要的。
相关:从其他编辑器转移到jEdit http://community.jedit.org/cgi-bin/TWiki/view/Main/SwitchingToJEdit
Beanshell脚本在jEdit的应用
第一节 强大、简单、独到的宏
在目前的Java IDE领域中,Eclipse是最好的。但jEdit并不是一个IDE,而是“程序员文本编辑器”。在文本编辑领域,jEdit拥有很多独到的优势,其中之一,也是作者最感兴趣的部分,就是它的宏——其实就是Beanshell脚本。内嵌的Beanshell引擎能够直接访问jEdit的内部对象和API,例如:你可以写出这样的宏命令:
buffer.undo(textArea); //撤销当前buffer的一个操作
Registers.paste(textArea,'$',false);//粘贴到当前文本域
textArea.setSelectedText(" ");//将选定文本设为“ ”
textArea.goToNextLine(false);//移动光标到下一行
Registers.copy(textArea,'$');//copy
textArea.showWordCountDialog();//显示对话框,统计字数
textArea.backspace();//按一下后退键
buffer、textArea都是jEdit的内部对象,Registers是jEdit中的寄存器类。可见Beanshell脚本具有直接访问jEdit内部资源的能力,这使我们写出一个高度自动化的宏命令成为可能。
除了手工编写宏文件(.bsh文件)外,jEdit也可以录制宏。 录制宏有三种途径:
1.使用菜单:打开 Macros->Record Macro,进行操作,完成时点击stop Recording。
2.使用快捷键:开始录制用c+m c+r,结束录制用c+m c+s。(其中c+m c+r表示先按Ctrl+e,再按Ctrl+r,也可以按住Ctrl,然后再接着按m和r键)
3.使用action bar:Ctrl+Enter组合键打开action bar,输入record,按Tab键,回车,就开始录制宏。完成后打开action bar,输入recording,按tab,回车。
Note:多种使用方式体现出jEdit强大的操作性;有关action bar的相关资料,请查看帮助。
Note:宏文件必须存放在jedit/macros/目录或/Documents and Settings/uername/.jedit/macros目录下,前者是系统宏目录,后者是用户宏目录。
第二节 使用 jEdit中的Beanshell编写宏
到了这一步,看来我们又要学一门新的语言了。“太麻烦了!”,你可能已经决定放弃jEdit了。幸好,Beanshell是Java阵营的脚本语言,我们基本上不需要什么精力就学会怎么在jEdit中使用它——当然前提你必须熟悉Java,这就是我在前面推荐Java程序员使用jEdit的原因。
Beanshell 有脚本语言的特性,如弱类型、闭包等,但同时也完全兼容Java语法。为了简便起见,我们这里就象java一样来写beanshell,只要记住一点:它是解释执行的。更深入的学习推荐访问以下网站:
1. http://dev.csdn.net/develop/article/15/15090.shtm
2. http://www-128.ibm.com/developerworks/cn/java/l-beanshell/index.html
3. 官方网站:http://www.beanshell.org
4. 在线教程:http://www.beanshell.org/manual/contents.html
下面通过jEdit自带的一个宏文件来看看宏是怎么“炼成”的。
实例:jEdit 4.2/macros/java/Java_File_Save.bsh
文件源代码如下:中文部分是添加的注释






























































这个bsh脚本能自动得到文件中的类名,以此作为文件名的前缀保存。要执行这个文件,点击
Macros-Java-java_File_save。要快速执行,可以设定快捷键。打开Utilities-Global
option,选择shortcuts-macros进行快捷键设置。
jEdit自带的Macro就是很好的例子,配合帮助中的API,beanshell宏是很容易上手的。
jEdit应用指南【基础篇】的更多相关文章
- 【转】Spark性能优化指南——基础篇
http://mp.weixin.qq.com/s?__biz=MjM5NDMwNjMzNA==&mid=2651805828&idx=1&sn=2f413828d1fdc6a ...
- Spark性能优化指南——基础篇
本文转自:http://tech.meituan.com/spark-tuning-basic.html 感谢原作者 前言 在大数据计算领域,Spark已经成为了越来越流行.越来越受欢迎的计算平台之一 ...
- Spark性能优化指南——基础篇(转)
[转]Spark性能优化指南——基础篇 http://mp.weixin.qq.com/s?__biz=MjM5NDMwNjMzNA==&mid=2651805828&idx=1&am ...
- 【转载】 Spark性能优化指南——基础篇
转自:http://tech.meituan.com/spark-tuning-basic.html?from=timeline 前言 开发调优 调优概述 原则一:避免创建重复的RDD 原则二:尽可能 ...
- Spark性能优化指南——基础篇(转载)
前言 在大数据计算领域,Spark已经成为了越来越流行.越来越受欢迎的计算平台之一.Spark的功能涵盖了大数据领域的离线批处理.SQL类处理.流式/实时计算.机器学习.图计算等各种不同类型的计算操作 ...
- Spark性能优化指南——基础篇转
前言 在大数据计算领域,Spark已经成为了越来越流行.越来越受欢迎的计算平台之一.Spark的功能涵盖了大数据领域的离线批处理.SQL类处理.流式/实时计算.机器学习.图计算等各种不同类型的计算操作 ...
- Spark性能优化指南--基础篇
前言 开发调优 调优概述 原则一:避免创建重复的RDD 原则二:尽可能复用同一个RDD 原则三:对多次使用的RDD进行持久化 原则四:尽量避免使用shuffle类算子 原则五:使用map-side预聚 ...
- 基于vue2.x的webpack升级与项目搭建指南--基础篇
first thing fitrst 博主声明:绝对不当标题党 有人看最好不过的背景: 十月初对公司产品的前端构建做了一些优化,但还遗留了不少问题(可了解我的前一篇博文:一次webpack小规模优化经 ...
- MaxCompute安全管理指南-基础篇
背景及目的 方便和辅助MaxCompute的project owner或安全管理员进行project的日常安全运维,保障数据安全. MaxCompute有安全模型,DataWorks也有安全模型,当通 ...
- Metasploit学习指南—基础篇
Metasploit是一款强大的渗透测试平台,其中包括了很多渗透测试利器,本文简单介绍一下Metasploit的配置和基础的使用方法,主要包括以下几个方面: Metasploit的核心 基础的配置 M ...
随机推荐
- async await的前世今生
async 和 await 出现在C# 5.0之后,给并行编程带来了不少的方便,特别是当在MVC中的Action也变成async之后,有点开始什么都是async的味道了.但是这也给我们编程埋下了一些隐 ...
- Linux命令:tail命令详解
概述:tail命令显示文件末尾区块,也可以查看线上日志 1.格式 tail [参数][文件] 2.参数 -f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c<数目> 显示的 ...
- SGU 221.Big Bishops(DP)
题意: 给一个n*n(n<=50)的棋盘,放上k个主教(斜走),求能放置的种类总数. Solution : 同SGU 220,加个高精度就好了. code #include <iostre ...
- 【POJ1733】【带标记并查集】Parity game
Description Now and then you play the following game with your friend. Your friend writes down a seq ...
- php定时执行任务的几个方法
PHP的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, php只能被用户触发, 被调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的 ...
- WCF服务对象实例化基础
很多情况下,我们都需要控制wcf服务端对象的初始化方式,用来控制wcf实例在服务端的存活时间. Wcf框架提供了三种创建wcf实例的方式. WCF服务对象实例化基础 在普通的WCF请求和相应过程中,将 ...
- 解决m2eclipse之Unable to update index for central |
maven 不能更新,真烦人,转载他人的 maven是个好东西,eclipse上的maven插件m2eclipse也非常方便,但是最近这个东西经常无法连接到maven index的更新网站,然后ecl ...
- iOS题
对于语句NSString* testObject = [[NSData alloc] init];关于testObject是什么类型对象,以下说法正确的是: 答案:(A) A.编译时,NSString ...
- Struts2 Tomcat的配置
1. 下载Struts2包,网站http://struts.apache.org/download.cgi#struts2315 2. 将struts-2.3.15-all.zip 包解压到本地 3. ...
- Node.js事件发射器
在Node很多对象发出事件,例如net.Server每个同级连接到它,一个fs.readStream发出打开文件事件时,每次都发出一个事件. 它发出事件的所有对象都是events.EventEmitt ...