近一段时间将精力转向了Web开发领域,主要学习了PHP的开发技术,进一步熟悉和研究了JavaScript的应用。而在这一过程中, 陆续试用了不少的开发工具,今天稍作整理做个这方面的总结,也希望能给在工具选择上犹豫的朋友有所参考。
在软件开发领域,"思想"和"工具"是核心的两个方面。"思想", 反映在如何去分析问题、解决问题,如软件的架构、框架等方面。而"工具",则是上面过程的实现方式。Web开发也同样如此,开发工具的选择也是很重要的,本人一直认为如此,不要吹嘘什么"真正的高手用记事本等",那至多也是工作之余的休闲,真正开发大中型项目还是得用高效的工具,除非他是"吃饱撑的"。选择正确的工具可以更高效、舒适的完成工作,有利于节约时间、节省成本。工具又可以分为重量级和轻量级两类。重量级工具主要就是功能更齐全完备的IDE,如Visual Studio,主要用在实际的工作中的大型项目中。轻量级的工具就是一些能够较好支持编程的编辑器,如EmEditor、Editplus等,主要是工作之余的个人的小项目或者对文件的修改中。
本篇文章主要是对轻量级工具编辑器的介绍。在网上Google、Baidu一下,就会得到不少这样的工具:Editplus、EmEditor、UltraEdit、PsPad、Notepad++、SciTE、sourceInsight、GVim、Emacs 等。
原来本人做网站喜欢用Dreamweaver+Editplus,Dreamweaver主要做布局,Editplus主要就是编辑代码。可能是后来写Java项目时eclipse用惯了,非常喜欢它的代码智能提示(虽然没法和这方面的大哥大IDEA相比,但也算比较强了),感觉顺手,有效率。突然觉得Editplus有一点点的不爽,即使它一直是我的最爱。因为Editplus不支持代码提示,而且自动完成功能比较弱智,个人觉得对于编程经验丰富的开发者而言其没什么大用。但对初学者而言,很适合使用。后看到网友推荐,目前试用EmEditor,感觉还不错,主要是看重它的代码提示比Editplus强。
下面是我这些年试用或使用过的编辑器,简单介绍一下,希望对大家有所帮助,特别是对初学者在编辑器的选择上希望有所启发,以期节省时间,把主要精力放到软件开发的学习上。
1. Editplus
特点:
功能强大,界面简洁美观,且启动速度快;中文支持比较好;支持语法高 亮;支持代码折叠;支持代码自动完成(但其功能比较弱),不支持代码提示功能;配置功能强大,且比较容易,扩展也比较强。像PHP、Java程序等的开发环境,只要看一下资料,几分钟就可以搞定配置,很适合初学者学习使用。有不错的项目工程管理功能。内置浏览器功能,这一点对于网页开发者来说很是方便。本人特别推荐。
2. EmEditor
特点:
功能和Editplus一样强大,且界面简洁美观,启动也比较快,但感觉没有EP快,不过大文件的打开速度却比EP要快,这方面有专门的大文件控制器;中文支持比较好;支持语法高亮;支持代码折叠;支持代码自动完成和代码提示功能,这一点比EP要强;配置功能强大,插件扩展也比较强,比较容易;脚本功能强大且比较容易实现(JavaScript实现);通过插件可实现二进制方面的Hex edit和列模式。编辑方面几乎可取代UltraEdit。
目前和Editplus配合使用中。
3. GVim
特点:
众所周之,Vim和emacs一样的强大的编辑器,都号称编程界的“始祖”级别的编辑器,被称为高手的终极武器。GVim是Vim在Windows下的图形界面版本,功能及其强大,启动快,高可配置性。经过一定的配置,可支持中文,支持语法高亮,支持代码折叠,支持代码自动完成;插件的扩展很强大。但对很多人来说,其配置会感觉比较难,操作上也不习惯,特别是初学者,很不易学习使用。如,配置不好,程序源文件中的中文有可能会出现乱码。
4. SciTE
特点:
和GVim一样,其配置功能是相当强悍的,但操作上比GVim容易,更符合大家一般的编程习惯。软件界面简洁,启动速度很快,个人感觉是这几个编辑器里最快的。同样,经过一定配置可实现语法高亮、代码折叠、代码智能提示和自动完成的功能。配置不当也会导致源文件中文的乱码。另外,不支持项目工程,这稍微有点遗憾。
5. Notepad++
特点:
Notepade++和SciTE一样,都是基于Scintilla开发的,因此有不少相同的特性。其界面简洁,启动快;插件功能强大;中文支持比较好,不存在配置难的问题,因为不少配置都图形化了,因此这方面比SciTE容易,但个人感觉没有Editplus方便;支持语法高亮、代码智能提示和自动完成功能;支持代码折叠,且其层次感比较强,这方面还是比较强悍的。
6. UltraEdit-32
特点:
UltraEdit-32和Editplus是两款Windows下最常用的编辑器。特别是UltraEdit-32,除了具有几乎和EP一样功能外,还有不少实用功能,是更接近于IDE的编辑器。有强大的项目工程管理功能;中文支持比较好;支持语法高亮、代码折叠、代码智能提示和自动完成的功能;强悍的列模式处理能力应该是这几个编辑器中最好的;强大的脚本和Hex edit;配置也比较方便。但没EP启动快,个人感觉不够轻快。因此比之UltraEdit-32,本人更倾向于使用EmEditor。
7. PsPad
特点:
PsPad是一款完全免费的编辑器。具有EP、UE、NPP的许多优点。网上评价说功能上几乎媲美UE,EP能做的它都可以做到,还有不少EP没有的功能。因此,支持语法高亮(个人感觉视觉效果不好,这是我不再使用它的另一个重要原因)、支持代码自动完成,支持列模式,但对Unicode支持不太好。另外没有代码折叠(不可思议,起码我没有发现其代码折叠功能),而且这也是我安装试用不到一天就不再使用的重要原因之一。总之,本人对其不怎么感冒,感觉不如同样免费的Notepad++( :> 当然得抛除其作者的个人政治观点不说的情况下)。
8. sourceInsight
特点:
sourceInsight是一款程序代码编辑器和分析工具,其不仅可编辑代码,还可方便实现源代码的浏览,是Windows下最常用的源码阅读工具。支持工程项目管理;内置C、C++、C#、Java、HTML等多种编程语言的语法高亮支持,但不支持PHP,这有点遗憾,但通过配置可实现对其的语法高亮支持。也算是本人的一个必备工具,看代码确实很方便,但其更新实在是太慢了,最新版本V3.5都不知道出来几年了!
综合比较上面几个编辑器,在易用性、操作性和功能方面考虑,个人比较喜欢EmEditor,再结合Editplus来开发,足也
EmEditor 是啥?它是一款和UltraEdit、EditPlus类似的文本编辑器。
“KAO!有没有搞错,一个文本编辑器有啥好说的?!”
“我已经用惯了UltraEditor和EditPlus,不想再换了,再见!”
我想你肯定会这么说。以前我也用了很久的EditPlus,不过最近却转向EmEditor了,因为它确有许多独到之处。让我慢慢道来。
令人惊艳的查找显亮功能
说起来,用文本编辑器偷懒最常用的就是查找和替换功能了。我常常在想,我比民工唯一高级的地方就是我能复制粘贴以及查找替换而民工不能。当然,如果房子也能复制粘贴不知道还是不是现在这个价?查找替换确实挺高级,可是当一个文件里有三、五十个地方需要替换,我们一边一下一下地按着“替换”按钮,一边瞪大眼睛盯着不断跳动的屏幕,生怕把哪个不该替换的给替换了,完了还要担心是不是有该替换的没被替换?唉,程序员的命好苦,眼睛好痛啊……即使这样,“全部替换”按钮我也是不敢按的,谁知道这一按下去会有哪些不该替换的被替换了,又有哪些该被替换的却被漏掉了?一失足成千古恨的说。
如果你尝试在EmEditor里按“Find Next”按钮……
看到没?(那些绿色可不是俺用记号笔故意涂上去的,虽然俺常喜欢这么干),所有匹配查找条件的部分都会被涂成绿色,这样我们就可以在替换之前先检查一遍,然后翘起二郎腿,喝一口咖啡,随手按一下“Replace All”,吼吼,瞬间搞定啦。
小贴士:选菜单“Search > Erase Find Highlight (Alt+F3)”可以暂时关掉显亮功能。
独门绝技:强制大写(小写)替换
深夜,鸭梨公司。
Clark正坐在电脑前发呆,一阵清脆的手机铃声打破了他的沉思,原来是他那正在读研的老婆打来的。
Clark:“老婆,论文通过了没有呀?”
老婆:“论文到是没啥太大问题,可是老师说我的程序完全不符合.net编码规范,让我全部改过来。可是明天就要正式答辩了,这可咋办呀?”
Clark:“怎么会这样?你把程序拿过来让我see 1 see。”
不一会,Clark就看到了他老婆的程序和肿得像水蜜桃似的眼睛。老婆指着程序里的属性声明代码说,喏,就是这里啦:
private long contract_id;
private string contract_number;
private string customer_name;
“老师说符合编码规范的代码要这个样子才行。”
private long contractId;
private string contractNumber;
private string customerName;
“嗯……这也不难,用正则表达式查找替换一下就行啦。”,Clark道。
“我也想过这招,可是用查找和替换最多只能把那个下划线去掉,并不能把小写的字母变成大写的啊?”老婆大人要急死了。
Clark微微笑道:“别急,面包会有的,小写也能变成大写的……”
在老婆大人扑过来之前,Clark以迅雷不及掩耳盗铃之势如破竹篮打水的速度打开了EmEditor,输入查找正则表达式【_(\w)】和替换表达式【\U\1\E】。“\1”表示查找表达式中的第一对“()”里的内容。
然后,按一下“Replace All”按钮,就搞定了。
小贴士:在“Replace”对话框中的“Find”和“Replace with”文本框的右侧各有一个“>”按钮,点击它们可以看到一个下拉菜单,列出了许多常用的正则表达式标记,点击菜单的最后一项“Help on Regular Expressions”可以打开EmEditor所支持的正则表达式帮助文档。
丰富的插件
不知道从啥时候起,很多正二八经的功能都不放到主程序里了——它们统统变成了插件,害得我安装了主程序之后还得一个一个地去下载插件。
由于插件实在太多,限于篇幅(其实就是俺比较懒啦),这里仅介绍几个比较有趣的。
行首/行尾字符串插入
我们有一段VB写的程序:
OpenIceBoxDoor()
PutElephantIn()
CloseIceBoxDoor()
现在想把它改成C#的(也就是想在每行结尾加上一个分号啦),可以这么做:
右对齐 & 列编辑模式
现在我们又想把上面的那段程序改为VB的了(也就是把行尾的分号去掉),可以这么做:
宏
说实话,我一直不太喜欢用宏,可能是被宏病毒给搞得有些心理障碍了吧。不过有些问题只有用宏来解决才方便。比如想从下面这段代码中把字段名取出来。
使用“emeditor_perfecta_en.jsee”这个宏,让它把与正则表达式【Path=\w+】匹配的字符串抽取出来放到一个新的文档中。我不喜欢宏的另一个原因是不能够像查找替换那样可以在执行前预览,所以像这个宏这样不更改原来的文件内容而是把匹配的内容放到一个新文档中比较让人放心。
然后用前面介绍的列编辑模式把前面的“Path=”删除就行了。
您可能会问为什么不用带有逆环视结构的正则表达式【(?<=Path=)\w+】呢?这样在匹配结果里面就不会包含“Path=”啦。这是因为EmEditor中的宏是使用的JavaScript代码,而JavaScript里的正则表达式是不支持逆环视结构的
JavaScript里的正则表达式可以参考http://www.ijavascript.cn/shouce/javascript-regexp-71.html
可以使用这个小工具测试你的正则表达式Test javascript regex
获取字符编码
我一直记不住“<”这个字符的编码是啥,有了EmEditor就不用愁了。把光标置于“<”的左侧(注意是左侧而不是选中它),然后使用菜单“View > Character Code Value... (Ctrl+I)”就可以知道它的ANSI和Unicode编码了。
“景”的Unicode编码为“666F”,就是“顺顺顺发”,知道我的运气为啥一直这么好了吧?
连字符计数功能都做得这么细致……
没想到这篇破文章写了 n 多小时都没写完,真想知道自己已经写了多少字了。
原来才写了2000多字。
类似IE7的Tab页
在空白处双击鼠标左键,就可以新建一个空白文档。
丰富的定制功能
使用菜单“Tools > Properties for All Configurations”可以设置所有类型的文档属性;使用菜单“Tools > Select Configuartion > C#”可以单独设置C#文档的属性。
例如如果把上图中的“Vertical Line”复选框打上勾,就可以在文档中显示一条银灰色的竖线,相当酷(这个有趣的功能是扇子发现的,特此感谢)。
EmEditor 下载地址: www.bitsCN.com/softs/39900.html