Chinaunix首页 | 论坛 | 博客
  • 博客访问: 438639
  • 博文数量: 161
  • 博客积分: 5005
  • 博客等级: 上校
  • 技术积分: 1090
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-20 16:38
文章分类

全部博文(161)

文章存档

2011年(21)

2010年(33)

2009年(89)

2008年(18)

我的朋友

分类: LINUX

2008-11-15 14:13:37

[翻译]

" finding empty lines 查找空行

/^\n\{3}                    : find 3 empty lines

                              查找 3 行空行

[注解]

                                                                                                    :help /\n

这个正则表达式匹配三个连续的空行,也就是在行首位置有3个连续的换行符。

其中“\n”匹配换行符。

 

 [翻译]

" using rexexp memory in a search

" 在查找中使用正则表达式存储

/\(fred\).*\(joe\).*\2.*\1

[注解]

                                                                                                    :help /\1

                                                                                                    :help /\2

在这个正则式中,“\1”代表与第一个“\( \)”间的子式的相同的字符串,“\2”为第2个,“\3”为第3个,以此类推,一直到“\9”。

所以对这个例子来说,它等同于“fred.*joe.*joe.*fred”。

但是,正则表达式“\([abc]\{3}\).*\1”却并不等同于“[abc]\{3}.*[abc]\{3}”。

因为“\1”代表第一个“\( \)”所匹配的内容,如果第一个“\( \)”匹配了“abc”,那么“\1”就代表“abc”;如果第一个“\( \)”匹配了“abb”,那么“\1”就代表“abb”。

显然正则式“[abc]\{3}.*[abc]\{3}”并不是这个含义。

 

[翻译]

" Repeating the Regexp (rather than what the Regexp finds)

" 重复正则表达式(不管这个正则表达式查找什么)

/^\([^,]*,\)\{8}

[注解]

这个正则式是把“\( \)”间的元素重复8次,即相当于查找“^([^,]*,([^,]*,([^,]*,([^,]*,([^,]*,([^,]*,([^,]*,([^,]*,”。

其中“([^,]*,”表示任意个非“,”的字符,后面紧跟着一个“,”。

 

[翻译]

"visual searching

" 可视模式下的查找

:vmap // y/"       : search for visually highlighted text

                                     查找被高亮显示的文本

:vmap //    y/=escape(@", '\\/.*$^~[]') : with spec chars

                                                               高亮文本包含特殊字符

[注解]

                                                                                                    :help v

这两个键映射用于在可视模式下查找被高亮显示的文本,如果高亮文本中包含特殊字符,需要使用第两种格式的键映射。

(使用二者任一)映射后,当你使用vV选中一段文本后,再按“//”就可以查找这段文本。

以第二个映射为例进行讲解:

                                                                                                    :help vmap

vmap                            定义一个virsual的键映射

                                                                                                    :help map-

                        执行此映射时不回显

                                                                                                    :help y

y                               拷贝选中的内容到无名寄存器

/                               开始搜索

                                                                                                    :help c_CTRL-R_=

=                          搜索的内容来源于一个表达式的结果

                                                                                                    :help escape()

escape()                        把参数1中所包含的特殊字符(由参数2指定)前加转义符\

                                                                                                    :help registers

                                                                                                    :help expr-register

@"                              代表无名寄存器中的内容

'\\/.*$^~[]'                    些特殊字符进行转义

                                                                                                    :help key-notation

                            回车

[参考文档]

1.

2. ?

3. VIM帮助文件

4.

 

[尾记]

本文可以自由应用于非商业用途。转载请注明出处。

原文链接:http://blog.csdn.net/easwy

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