Chinaunix首页 | 论坛 | 博客
  • 博客访问: 519954
  • 博文数量: 60
  • 博客积分: 1445
  • 博客等级: 上尉
  • 技术积分: 507
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-14 19:15
文章分类

全部博文(60)

文章存档

2012年(1)

2011年(7)

2010年(52)

我的朋友

分类:

2010-09-12 20:39:07

最近在工作的时候经常要调试,查看日志,于是就想到了ultraedit的语法着色功能,在网上查了一些,都是一些最通常的模版,比如sql,c…….由于日志的特殊性,网上的模版都不适用,只能自己DIY了,在网上我又没有发现现成的教程,所以就有了自己写一个的冲动,由于本人是第一次写,不当之处还请见谅。
      工作中的调试时查看日志或是shell的编码都可以使用ultraedit,这个小东东真的是魅力无限、功能强大。相信ultraedit的语法着色syntax highlighting功能不少朋友都体验过来,估计大部分都是用做编码的,特别是那种没有固定IDE的语言如htm、shell……使用ultraedit,再加上正确的配置就可以和别的IDE一样的效果,也可以说DIY一个属于自己的编程环境,比如在unix下面编程,c也好、shell也罢,用vi真是痛苦啊,即使你是一个vi高手,能够熟记数十条指令,在编写的时候,效率也会大打折扣的。如果使用ultraedit中的语法着色syntax highlighting功能,那么ultraedit就相当与一个IDE,在上面可以象在vs stidio上一样编程,有高亮highlighting、也有缩进indent,就像下图所示:

UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图1

      上图就是UltraEdit / UEStudio '05的工作环境,在你编辑完的时候,还可以用ultraedit的ftp功能将编辑好的代码ftp上去。
      恰当的使用和设置语法着色syntax highlighting功能,可以使你的工作事半功倍,下面我就将分2个部分给大家共享一下我对UE语法着色功能的理解:大体介绍和DIY自己的模版及一起小技巧。由于我使用ultraedit的时间也不长,表达能力也有限,也是第一次写这种文章,所以文中一些不恰当的地方还请朋友指正,^_^

第一部分:语法着色的大体介绍

      Syntax highlighting语法着色可以辨别事先定义的符号,并可以将它们以不同的颜色展现出来,这种功能对于coder很有用,对具有同一要求的其他使用者来说也是非常有益的。
      UltraEdit最大可以支持20套语法着色模板,每一套模版根据用户自己的需求自己配置,使文档中分成许多的组,每一组都可以以不同的颜色显现出来,在UltraEdit中“组”的类别可以分为一下6种:
普通文本(没有被辨认出来的文本)
注释行
交换注释块
字符串
数字(0-9)
自定义的语法符号(想被着以不同颜色的文本)

      语法着色功能的在高级(Advanced)->配置(Configuration)->编辑器显示(Editor Display)->语法着色(Syntax Highligthing)中可以被用户设置,有的版本在高级(Advanced)->配置(Configuration)->语法着色(Syntax Highligthing)下面设置。

UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图2

      在设置的时候,首先要选择语言,也就是用户的模版,在开始的时候,UltraEdit已经给用户提供了一些常用的模版,选定好了模版以后,用户要在下面的颜色组中选择你想要设置哪一个组的颜色,选定了一个组以后,就可以点击“颜色”和“背景”的颜色框,为这个组设置颜色(当UltraEdit辨认某一个字符属于这个组,就会以这个颜色为其着色)。当选择除“常规文本”之外的组时,还可以为这个组设置字体样式(当UltraEdit辨认某一个字符属于这个组,就会以这种字体显示字符),这些粗体、斜体和下划线的设置可能使文本不可用,所以这里建议使用“普通”,及固定点阵字体(这个功能低版本可能没有)。

UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图3

      那么应该在哪里配置这些模版和它们的组呢?在UltraEdit的安装目录下面有一个配置文件"WORDFILE.TXT",在这个文件中用户可以根据需要配置自己想要的模版,这个文件会在UE启动的时候被自动加载,在高版本的UE中,若是修改了这个文件,保存一下就可以同步其他文件,不再需要关闭再重启UE。
      一般UE开始会为用户定制一些通用的模版,供用户使用,用户可以点击“视图”,查看着色配置,下图就显示了目前一共有13中可以使用的语法着色模版,现在的打开的文件并没有使用任一种模版。

UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图4

     在这一部分,我们先试着读懂系统自带的模版,知道每一部分的作用,在第二部分中,我们可以尝试着编写根据自己需求定制的模版。

UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图5

     上图就是配置文件"WORDFILE.TXT"里面的一段内容,这是系统自带的一个模版,我将每一个模版分成了2个部分,第一部分是模版的前半部分,在这里可以利用系统里面的关键字来设置一些配置,比如:L1表示了模版的序号,从L1到L20,可以定义20套模版,“C/C++”表示了这个模版的名字,这在“视图”中可以查看到,Line Comment = //表示了注视行是以”//”开头的…….在第一部分,每一行必须以”/”打头,你也可以将多行并成一行,就像上图所示那样。在第二部分中用户可以自行定义一些想被着色的关键字,比如/C1"Keywords" 就是用户定义的第一个组,名字为"Keywords",在这个组里,用户可以把想被着色的关键字列举出来,在图3所示的地方,你可以设置想为这些所列举出来的关键字的颜色。
     下面说一下模版的第一部分的设置:
1. 注释行
     用户可以用"Line Comment = 字符串"来设置想要制定的注释行,这个字符串最多支持5个字符,如果少于5个字符的话,则后面要加上空格和其他关键字分割。

UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图6

UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图7

     在图7中,虽然设置了注释字符为“/1234567”,但是UE最大只支持5个字符,所以就取前5位为注释字符,即“/1234”,所以在测试文本中可以看到第四行并没有被注释出来。
     并且在UE中这一部分对大小写和空格的要求都是很严的,如果你在wordfile.txt中写出”/line Comment = /1234567”这样的命令,UE是不认的(最起码我机器上这个版本的UE不认),还有” /line Comment=/1234567”UE也是不认的,因为等号两边没有空格。这种要求对别的关键字也是同样有约束限制的(下文就不做特殊说明了),比如,在定义模版名称的时候这样写”/L14 Test”,UE不认,因为在模版序号L14和模版名称Test之间有一个空格,而UE的要求是不可以留有空格的。

UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图8

     在上图中,定义注释行的字符串长度为5(大于5也可以),那么后面就不需要用空格来分割其他的关键字了,当然,为了代码的可读性,最好还是加上分隔符。
     还有一种定义注释行的方法:"Line Comment Alt = " ,使用方法和一些注意事项和"Line Comment = 字符串"一样,这里就不再赘述了。

     有些时候,空格也会作为注释行字符的一部分,用来标注哪些行是应该被注释掉的,用下面这种定义方式可以实现这种功能:
          "Line Comment Num = xCC "
     其中x表示注释行字符的长度(1到5),后面必须紧跟着注释行字符(可以是空格),比如"Line Comment Num = 3CC "(注意CC后面有一个空格)表示以”CC ”开头的字符都属于注释的范围。具体效果如下图:
UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图9

     另外注释行还有一个有效范围的设置方法,就是说在哪一些范围内,这些字符会被注释掉,反之,即使符合你前面的定义,也不会有效。实现方法有两种:
          "Line Comment Preceding Chars = […]”和
          "Line Comment Valid Columns = [1-3,5]”
     对于第一种Line Comment Preceding Chars的定义方法来说,每一个字符都是有效的,在括号中可以设置一个无效字符。
     如果没有Line Comment Valid Columns的话,注释字符在每一处都是有效的,但是如果定义了Line Comment Valid Columns,那么注释字符只在后面定义的中括号中制定的范围有效。"Line Comment Valid Columns = [1-3,5]”就表示了注释字符的首位置在1,2,3,5列时是有效的,其他的位置是无效的,图示如下:
UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图10

     注释字符为”CC”,在测试文本中,第一、三行的CC首位置在第2、5列,符合要求,所以被注释出来了,第三行的CC首位置在第4列,so……..
2. 注释块
     多行的字符也可以被块注释,就像C++中的”/*”和”*/”可以实现块注释的功能。在UE中,是以"Block Comment On = "定义块注释的开始,以"Block Comment Off = "定义块注释的结束。和注释行一样,注释块的开始和结束同样最大支持5个字符。
如果只用"Block Comment On = "定义块注释的开始,而没有定义注释块的结束,那么UE只会注释注释块开始的那一行,这样的话,就和注释行的作用一样了(不过在有的高版本中的UE中,好像做的跟C++类似,没有定义注释结束的话,就会一直注释下去)

UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图11

3. 文件类型
     在这里,模版的使用还可以跟文件类型关联起来,在UE中“文件类型”属性可以实现在打开某种文件的时候,使用特定的模版打开。定义方法如下:
          "File Extensions = "
     如果列举多种文件类型的话,每种文件类型之间要加空格分隔。
     如果你想实现某一个文件的时候,套用某一种模版,那么使用一下定义:
          "File Names = "
     如果列举多种文件名称的话,每种文件名称之间要加空格分隔。

UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图12

4. 大小写敏感
     如果你不想你的模版对大小写敏感,那么你可以用关键字“Nocase”,象下面这样写:
          /L1 Line Comment = // Nocase File Extensions = CPPC H HPP
                或者不写在同一行:
          /L1 Line Comment = //  File Extensions = CPPC H HPP
          / Nocase

5. 字符串
     在一些语言中,字符串都是放在一对单括号或者双括号中,在字符串中,注释和关键字是不可用的,这就是UE的默认设置。但是在一些语言中,例如HTML,是不需要这样的,为了方便这些语言,模版中可以使用关键字"Noquote":
          /L1 Noquote File Extensions = HTM
     UE中同样可以配置规定字符串的字符,默认设置是单引号和双引号。在UE中可以通过关键字"String Chars = "来设置,最多支持2个字符,例如C++的模版:
          /L1"C/C++" C_LANG String Chars = "'
     这样的话,在这个模版中,被单引号或者双引号括起来的字符,就成为字符串了,在UE中可以配置字符串的着色,这在图2中可以看出来,如果您想让两个规定字符串的字符分别以不同的颜色显示,那么有一种方法,先用”String Chars = “定义两个,再在用户自定义的组中,定义一个,这样的话,按照UE的内部的处理,后定义的会重写前面所定义的,这样就可以以两个颜色显示,图示如下:

UltraEdit的语法着色功能使用方法及心得(原创)Round <wbr>One^_^

图13

阅读(4378) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~