当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : vim中文手册的疑问
帖子发表于 : 2007-09-02 15:56 

注册: 2007-08-26 7:23
帖子: 32
送出感谢: 0 次
接收感谢: 0 次
http://vcd.gro.clinux.org/doc/pattern.html#%2F\@%20
引用:
\@! 零宽度否匹配,亦即,要求前面的匹配原在当前位置_不_匹配。
|/zero-width| {Vi 无此功能}
类似于 Perl 中的 '(?!pattern)"。
示例 匹配
foo\(bar\)\@! 任意后面不带 "bar" 的 "foo"
a.\{-}p\@! "a","ap","app" 等。后面不带 "p"
if \(\(then\)\@!.\)*$ "if " 后面无跟随 "then"

使用 "\@!" 要小心,因为很多地方一个模式可以不匹配。"a.*p\@!" 会匹配一
个 "a" 直到行尾,因为 ".*" 匹配所有行内的字符,而 "p" 不在行尾匹配。
"a.\{-}p\@!" 则可以匹配 "a","ap","aap" 等中的一项,只要它们不再紧跟
另外一个 "p",这是因为 "." 可以匹配 "p" 而 "p\@!" 不匹配这个 "p" 的后
面。

你不能用 "\@!" 去寻找匹配所在位置之前的否匹配。"\(foo\)\@!bar" 会匹配
"foobar" 中的 "bar",因为在 "bar" 匹配的位置上,"foo" 并不匹配。如果
不想匹配 "foobar",你可以尝试 "\(foo\)\@!...bar",但它不能匹配在行首出
现的 "bar"。最好的方法是用 "\(foo\)\@<!bar"。

也许是说明文档的错(从上下两处例子一个是app,一个是aap,它有可能有点笔误),也有可能是我的错,
大家来看看

a.\{-}p\@! 不能匹配amp,而能匹配appppp
注:“我/a.\{-}p\@!/e和//s试过aaaapppp,可以发现这个之所以全部高亮是因为它由"a a a apppp"4个匹配项构成,所以文档中的例子中应是app。
但是看它的解释却不是这样理解的。我们用am和ap两个来解释
“a.\{-}p\@!”在找到a后,会想尽快结束(最好能0个“.”就结束),
若a后面是非p字符,“非p”字符数目为0个,并且这0个字符后(即a后)满足p\@!,结束(注意,是满足了才结束的)
若a后面是p,假若“p”字符数目为0个,但此时,这0个字符后(即a后)app有p不满足p\@!”了!,所以无法结束,所以“.”只好继续增加,“p”字符数目为1个,此时ap后面还有个p,同上,直到p的字符数达2个,后面不再有p,终于结束,匹配了app[/quote]


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-09-02 21:37 
头像

注册: 2006-10-21 12:03
帖子: 1746
地址: Shanghai
送出感谢: 0 次
接收感谢: 0 次
抱歉楼主。。。

也许是我还学得不够....────没看懂... :oops: :oops:


_________________
.

私人空间
附有 Magic Linux 2.1 最新开发日志~
引用:


미안하다, 사랑한다




欢迎来 #xfce-cn 中文频道~~


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-11-01 9:09 

注册: 2007-04-17 11:19
帖子: 8
送出感谢: 0 次
接收感谢: 0 次
路过。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-11-05 9:56 

注册: 2007-10-30 9:16
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
aap 放在这里是不对的,因为实际上是 a 和 ap 两个东西被匹配了,而不是aap完整的被匹配。

应该是manual本身的问题, 与中文翻译无关,看了一下英文的手册,这里用的也是aap.

lz可以考虑去提交个bug

:)


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-11-05 10:12 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
a.\{-}p\@! 不能匹配amp,而能匹配appppp

没什么问题吧。就看了这句。


_________________
● 鸣学


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译