日期:2014-02-07  浏览次数:20502 次


最近因为机器问题,开始使用Ultraedit,以前用过几次,如今仔细玩味了一把,才发现这款编辑器真实太好用了,功能比较强大,确实是编码的利器,目前UE已经发布到V11,已经缺省支持C#语言的着色(这也是我选择UE的一个重要原因拉)。晚上在调试一个C#小程序的时候,发现UE有一个对于代码Debug来说不方面的地方,就是缺少对代码块或代码行注释的功能,尤其UE不是完备的开发IDE,缺少这样的功能真是让调试起来不怎么方便,让我不得不一行一行地手动在行首加"//",或对一些特定的代码块添加首尾的"/*"和"*/",不像在VB或VS.NET中直接选中想要变成注释的行,点一下工具栏上的按钮就OK,可惜啊。

好在UE支持宏,于是K了一下UE宏的语法,小搞了一下,效果还不错,呵呵

下面是对代码块设成注释的宏语句,使用前需要先选中希望注释的代码块,选中的首尾位置可以在首位行的任意位置,这里用的是"/*"和"*/",本来希望做成对每一行加"//",这样就像VS.NET了,可惜UE宏不支持变量,所以没想到实现的好办法。

InsertMode
ColumnModeOff
HexOff
UnixReOff
IfSel
StartSelect
Key END
Cut
Key HOME
IfColNum 1
Key END
EndIf
"/* "
TimeDate
"
"
Key END
Paste
Key END
"
"
TimeDate
" */"
EndIf

下面是对代码解除注释的宏代码,同样需要选中希望解除注释的代码块,选中的首尾位置可以在首位行的任意位置。

InsertMode
ColumnModeOff
HexOff
UnixReOn
IfSel
Cut
"~@#"
Paste
DeleteLine
"~@@#"
Top
Find "~@#"
DeleteLine
Find "~@@#"
Delete
EndIf

下面是对单行代码加"//"注释的宏代码,这个就简单多了 :-)

InsertMode
ColumnModeOff
HexOff
UnixReOff
"~@#"
Key HOME
IfColNum 1
Else
Key HOME
EndIf
"//"
Find "~@#"
Delete

最后是解除行注释的宏代码:

InsertMode
ColumnModeOff
HexOff
UnixReOff
"~@#"
Key HOME
IfCharIs "/"
Delete
IfCharIs "/"
Delete
Else
"/"
EndIf
EndIf
Find "~@#"
Delete

对行的注释和解除注释不需要选中行,只需要光标落在此行中即可。这里要提一下的是,本来对于行解除注释的宏想写成如下形式的:

InsertMode
ColumnModeOff
HexOff
UnixReOff
"~@#"
Key HOME
IfCharIs "/"
Key Right Arrow
IfCharIs "/"
Key Right Arrow
DeleteToStartofLine
EndIf
EndIf
Find "~@#"
Delete

这样可读性好些,实现逻辑也合理,让人Faint的是,我用的是UEV11的中文版,不支持Key Right Arrow,如果使用宏录制功能,得到的是Key  右箭头 →,但如果手动写Key  右箭头 →,系统就报错,说没有这个命令,真让人不得其解~~~这里由于存在一些逻辑,所以不能录制,只能手写。



Reference:
Ultraedit Offical Forum: http://www.ultraedit.com/index.php?name=Forums&file=index&c=1Ultraedit Help Document. http://manni-heumann.de/macro_ref_chm.zip


P.S. 很久没搞到这么晚了,好在今晚宿舍没人,外面小雨还在下,天气也凉快了一些。