推荐:偷懒利器 EmEditor

我喜欢的不是冒险。我知道自己喜欢什么。那是生活。
――圣埃克絮佩里
摘自《人的大地》

EmEditor 是啥?它是一款和UltraEdit、EditPlus类似的文本编辑器。
“KAO!有没有搞错,一个文本编辑器有啥好说的?!”
“我已经用惯了UltraEditor和EditPlus,不想再换了,再见!”
我想你肯定会这么说。以前我也用了很久的EditPlus,不过最近却转向EmEditor了,因为它确有许多独到之处。让我慢慢道来。

令人惊艳的查找显亮功能

说起来,用文本编辑器偷懒最常用的就是查找和替换功能了。我常常在想,我比民工唯一高级的地方就是我能复制粘贴以及查找替换而民工不能。当然,如果房子也能复制粘贴不知道还是不是现在这个价?查找替换确实挺高级,可是当一个文件里有三、五十个地方需要替换,我们一边一下一下地按着“替换”按钮,一边瞪大眼睛盯着不断跳动的屏幕,生怕把哪个不该替换的给替换了,完了还要担心是不是有该替换的没被替换?唉,程序员的命好苦,眼睛好痛啊……即使这样,“全部替换”按钮我也是不敢按的,谁知道这一按下去会有哪些不该替换的被替换了,又有哪些该被替换的却被漏掉了?一失足成千古恨的说。

如果你尝试在EmEditor里按“Find Next”按钮……

1.png

看到没?(那些绿色可不是俺用记号笔故意涂上去的,虽然俺常喜欢这么干),所有匹配查找条件的部分都会被涂成绿色,这样我们就可以在替换之前先检查一遍,然后翘起二郎腿,喝一口咖啡,随手按一下“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”表示查找表达式中的第一对“()”里的内容。
4.png

然后,按一下“Replace All”按钮,就搞定了。
5.png

小贴士:在“Replace”对话框中的“Find”和“Replace with”文本框的右侧各有一个“>”按钮,点击它们可以看到一个下拉菜单,列出了许多常用的正则表达式标记,点击菜单的最后一项“Help on Regular Expressions”可以打开EmEditor所支持的正则表达式帮助文档。

丰富的插件

不知道从啥时候起,很多正二八经的功能都不放到主程序里了――它们统统变成了插件,害得我安装了主程序之后还得一个一个地去下载插件。
6.png
由于插件实在太多,限于篇幅(其实就是俺比较懒啦),这里仅介绍几个比较有趣的。

行首/行尾字符串插入

我们有一段VB写的程序:

OpenIceBoxDoor()
PutElephantIn()
CloseIceBoxDoor()

现在想把它改成C#的(也就是想在每行结尾加上一个分号啦),可以这么做:
7.png

右对齐 & 列编辑模式

现在我们又想把上面的那段程序改为VB的了(也就是把行尾的分号去掉),可以这么做:
8.png



说实话,我一直不太喜欢用宏,可能是被宏病毒给搞得有些心理障碍了吧。不过有些问题只有用宏来解决才方便。比如想从下面这段代码中把字段名取出来。
9.png

使用“emeditor_perfecta_en.jsee”这个宏,让它把与正则表达式【Path=\w+】匹配的字符串抽取出来放到一个新的文档中。我不喜欢宏的另一个原因是不能够像查找替换那样可以在执行前预览,所以像这个宏这样不更改原来的文件内容而是把匹配的内容放到一个新文档中比较让人放心。
10.png

11.png

然后用前面介绍的列编辑模式把前面的“Path=”删除就行了。
您可能会问为什么不用带有逆环视结构的正则表达式【(?<=Path=)\w+】呢?这样在匹配结果里面就不会包含“Path=”啦。这是因为EmEditor中的宏是使用的JavaScript代码,而JavaScript里的正则表达式是不支持逆环视结构的sad_smile.gif
JavaScript里的正则表达式可以参考http://www.ijavascript.cn/shouce/javascript-regexp-71.html
可以使用这个小工具测试你的正则表达式Test javascript regex

获取字符编码

我一直记不住“<”这个字符的编码是啥,有了EmEditor就不用愁了。把光标置于“<”的左侧(注意是左侧而不是选中它),然后使用菜单“View > Character Code Value...  (Ctrl+I)”就可以知道它的ANSI和Unicode编码了。
12.png

13.png

“景”的Unicode编码为“666F”,就是“顺顺顺发”,知道我的运气为啥一直这么好了吧?

连字符计数功能都做得这么细致……

没想到这篇破文章写了 n 多小时都没写完,真想知道自己已经写了多少字了。
20.png

原来才写了2000多字。

类似IE7的Tab页

在空白处双击鼠标左键,就可以新建一个空白文档。
14.png

15.png

丰富的定制功能

使用菜单“Tools > Properties for All Configurations”可以设置所有类型的文档属性;使用菜单“Tools > Select Configuartion > C#”可以单独设置C#文档的属性。
17.png

例如如果把上图中的“Vertical Line”复选框打上勾,就可以在文档中显示一条银灰色的竖线,相当酷(这个有趣的功能是扇子发现的,特此感谢)。
18.png

制作U盘版EmEditor

我们费尽千辛万苦安装了全套的插件和自己喜欢的宏,还做了许多适合自己的个性化设置,但是一旦重装系统或换了台机器就功力尽失,可就大大不妙啦。还好,EmEditor非常体贴的提供了导出到U盘的功能。只要使用菜单“Tools > Import and Export...”就可以把你的EmEditor程序、插件、宏和个性化设置统统导出到U盘里,以后不管你走到哪里,只要插上U盘,双击里面的“EmEditor.exe”就可以即插即用了^_^ 当然,如果重装了系统,只要把U盘里的EmEditor文件夹Copy到硬盘上的随便什么地方就可以免去重新安装之苦了。

下载 & 安装

可以去EmEditor的官方主页下载它的最新版本主程序以及数十个插件、宏、语法文件和语言包。
注册码:1817 5990 1004 4106
如果你喜欢我的EmEditor设置,可以直接下载我的U盘版:
EmEditor.part01.rar(1.7 MB)
EmEditor.part02.rar(1.7 MB)
EmEditor.part03.rar(1.5 MB)
下载这三个压缩文件,然后在“EmEditor.part01.rar”文件上右击解压缩之后就可以使用了。

小贴士:如果你是使用我的U盘版,因为没有经过安装过程,会发现不会显示EmEditor的托盘图标,也没有文件关联和右键菜单。可以使用EmEditor的菜单“Tools > Customize...”,然后选“Shortcut”Tab页,可以选择添加EmEditor到“发送到”系统菜单、开机自动运行托盘图标;点击此Tab页上的“More Shortcuts...”按钮,可以选择添加到资源管理器的右键菜单、是否作为IE查看源代码的编辑器。 选“File”Tab页,再点击“Associate with EmEditor...”按钮,可以添加文件关联。

EmEditor9.06版(2009-12-1 更新)

  距离写这篇文章已经1年半了,EmEditor也已经推出了9.06版。这次之所以下决心升级是因为非常喜欢9.06版的新功能――CSV模式。只要按一下工具栏上的“CSV 模式”按钮进入CSV模式,以逗号分隔的CSV风格的文本就会自动按列对齐,这样就不容易看串啦。因为我需要经常编辑Balsamiq Mockups的控件的CSV风格的字符串,所以这个功能真是帮了我的大忙。
  可以下载我重新调整了插件布局的EmEditor9.06中文绿色版.

9.06-CSV.png


你可能感兴趣的:(程序员,编辑器,眼睛)