Chinaunix

标题: vim匹配中文的问题!请教一下斑竹 [打印本页]

作者: szluojianqi    时间: 2007-08-24 00:10
标题: vim匹配中文的问题!请教一下斑竹
请教一下,请问在我在使用VIM的时候,想匹配全部汉字,使用什么命令啊,网上看了一些,在VIM中使用都不对,请指点!我的系统 win2000+vim。字符集应该是WIN2000默认的,cp936
作者: converse    时间: 2007-08-24 00:14
匹配全部汉字是什么意思?如果你懒得输入一堆汉字去进行查找的话,你可以把光标移动到这一堆汉字中的一个,ctrl+*就会帮你查找这堆汉字了,对英文单词以上技巧同样适用.
作者: szluojianqi    时间: 2007-08-24 00:20
标题: 回复 #2 converse 的帖子
比如:在一个文本文件中,通过使用正则表达式,把所有的中文汉字替换为aaa。
网上有很多介绍,比如用:/([\x80-\xFF][\x80-\xFF]*)/ 来查找中文字符,但是在VIM下都不对。
作者: ivhb    时间: 2007-08-24 00:55
基本上,你可以用[^[:print:]] 来做,但是这个不一定对。如果你就是文本,问题不会很大
作者: zwylinux    时间: 2007-08-24 00:58
原帖由 converse 于 2007-8-24 00:14 发表
匹配全部汉字是什么意思?如果你懒得输入一堆汉字去进行查找的话,你可以把光标移动到这一堆汉字中的一个,ctrl+*就会帮你查找这堆汉字了,对英文单词以上技巧同样适用.

应该是shift+*吧,至少我在linux平台是这样的,难道win的vim不一样?
作者: szluojianqi    时间: 2007-08-24 09:27
原帖由 ivhb 于 2007-8-24 00:55 发表
基本上,你可以用[^[:print:]] 来做,但是这个不一定对。如果你就是文本,问题不会很大



难道没有一种普遍的办法么?比如通过字符集编码来实现。网上大多介绍使用 [\u4e00-\u9fa5] 来匹配中文,但是VIM不可用。但是这种思路我想应该是可以的
作者: ivhb    时间: 2007-08-24 10:05
没有这个可能,汉字编码字,等你罗列全,你还不如手工挨个儿编辑。
作者: szluojianqi    时间: 2007-08-24 11:51
原帖由 ivhb 于 2007-8-24 10:05 发表
没有这个可能,汉字编码字,等你罗列全,你还不如手工挨个儿编辑。



不大应该啊,我想,在VIM中,应该可以通过正则表达式匹配上中文汉字的。找了N久,就是没有合适的办法。
作者: ivhb    时间: 2007-08-24 12:43
找到了,麻烦也在这里说一声。让大家学习学习。
作者: szluojianqi    时间: 2007-08-27 18:06
原帖由 ivhb 于 2007-8-24 12:43 发表
找到了,麻烦也在这里说一声。让大家学习学习。



花了N多时间,在VIM下还是没有好的解决办法,很遗憾;不过继续关注中。
其他的,看了网上的,比如PERL、PHP倒是有不少办法滴。
作者: 盲炳    时间: 2007-12-08 01:57
:%s/[^\x00-\xff]/aaaa/g

把ASCII 0-255之外的字符都替换成aaaa了.
在俺的GVIM7.1下没有任何问题,但据说有的人试过不行,搞不懂……
作者: flw    时间: 2007-12-08 08:02
原帖由 szluojianqi 于 2007-8-27 18:06 发表

花了N多时间,在VIM下还是没有好的解决办法,很遗憾;不过继续关注中。
其他的,看了网上的,比如PERL、PHP倒是有不少办法滴。

别人举了一难道你就不会反个三麽?

作者: ruoyisiyu    时间: 2007-12-08 08:43
原帖由 flw 于 2007-12-8 08:02 发表

别人举了一难道你就不会反个三麽?

呵呵,符合flw
作者: angeljyt    时间: 2008-12-02 21:06
原帖由 盲炳 于 2007-12-8 01:57 发表
:%s/[^\x00-\xff]/aaaa/g

把ASCII 0-255之外的字符都替换成aaaa了.
在俺的GVIM7.1下没有任何问题,但据说有的人试过不行,搞不懂……


刚想到这个没想到被你抢先了。我在gvim下试了可以




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2