emacs的查找替换命令的一些不解

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

emacs的查找替换命令的一些不解

#1

帖子 jsjcjsjc » 2007-12-03 20:10

C-r RET string RET
C-s RET string RET


C-r RET C-w words RET
C-s RET C-w words RET

C-M-s
C-M-r
不知道这三个命令之间的区别,还望各位大虾帮忙啊
zhangsong023
帖子: 768
注册时间: 2006-09-20 19:56

#2

帖子 zhangsong023 » 2007-12-04 14:49

第一组是查找字符串"string"。

第二组是查找单词"string",也就是正则表达式"\bstring\b"

第三组是查找正则表达式的匹配项。
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

#3

帖子 jsjcjsjc » 2007-12-05 19:07

zhangsong023 写了:第一组是查找字符串"string"。

第二组是查找单词"string",也就是正则表达式"\bstring\b"

第三组是查找正则表达式的匹配项。
能举一个实例吗 官方说明和你差不多 谢谢了
zhangsong023
帖子: 768
注册时间: 2006-09-20 19:56

#4

帖子 zhangsong023 » 2007-12-05 20:54

看来你看过文档,赞一下。

前两种是基于原始字符串(这样说或许不科学,但容易理解)的查找,即不会对字符串中的特殊符号进行扩展。
假设有文本如下:

代码: 全选

a string named longstring
C-s RET string 将会匹配两处"string";
C-s RET C-w string 只会匹配第一处string,因为"longstring"中的"string"部分并不独立构成单词;

下面单独说说C-M-s
基于正则表达式的查找,事实上,平时基本上只用它,因为它可以完全取代其余两种方式。比如,
要查找单词string,那么相应的正则式为"\bstring\b";
要查找每行行尾处的"string",则为"string$";
要查找所有包含"string"的行,则为"^.*string.*$";
要查找以s开头,中间有3个小写字母,最后以g结尾的单词,则用"\bs[a-z]\{3\}g\b"
……

正则表达式的更多用法,可以参考Emacs官方文档,也可以参考相关书籍(书店、网上都很多)。
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

#5

帖子 jsjcjsjc » 2007-12-06 19:40

老大好帅 酷毙了 谢谢啊
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

#6

帖子 jsjcjsjc » 2007-12-07 18:35

对了 在M-X中输入命令C-s RET string后,再按什么进行搜索啊 按回车没有反映啊 谢谢了 :D
zhangsong023
帖子: 768
注册时间: 2006-09-20 19:56

#7

帖子 zhangsong023 » 2007-12-07 21:31

C-s string C-s C-s C-s .......................
你不是看文档了么???
先C-h i,把该看的看了。
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

#8

帖子 jsjcjsjc » 2007-12-08 14:34

不好意思 我们好像理解理解上有一些误会
按C-s后 下面显示的是I-search(进行搜索确实是C-s,这个我知道)
而C-s RET string RET ,按C-s后面再加一个回车后下面是只显示search(这个进行搜索我不知道,按回车不行)
我以为两者有不同点所以才来提问的
还有C-s RET C-w string 这个搜索我页不知道,按回车不行
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

#9

帖子 jsjcjsjc » 2007-12-11 21:44

哪位大哥来帮一下忙啊
回复