1. 查找操作
1357370576_4329.png

2. 查找和替换操作

1357370612_4903.png

通常情况下,一次查询-替换操作开始后,可以按空格键告诉Emacs进行替换并进行到下一个位置,或者按"n"键跳过这个位置进到下一个地方。
如果对替换后的情况没有把握,按一次逗号键",",Emacs完成此处的替换但不再继续前进,再按一次空格键SPACE它才会往下进行。
在做了几次后,可能发现没有必要逐个查看每一处修改,可以按下"!"键让Emacs把以后的替换都做完。


3. 递归编辑
在进行查询-替换操作的时候,不可避免地会看到有些地方需要修改。Emacs已经考虑了这一点,它允许在一次查询-替换操作过程中再开始一次递归编辑——也就是暂时放下手里的查询-替换操作去任意做一些其他修改。当退出递归编辑的时候,查询-替换操作将从刚才暂停的位置继续进行。


4. 字母的大小写问题
默认情况下Emacs的查找操作不区分大小写,替换过程中,Emacs会根据被替换的单词字母大小写情况作相应的替换。
查找是否区分大小写字母是由变量"case-fold-search"决定的。默认值为"t"(true),意思是“如果用户输入的字符串全部是小写字母,就不区分字母大小写”。如果需要在查找操作中区分大小写字母,就要把变量值设为"nil"。
替换是否区分大小写是由变量"case-replace"来控制的,它的默认值也是"t",意思是“根据原始文本调整替换字符串中的字母大小写情况”——如果原单词的首字母是大写,替换字符串中的首字母也要大写等等。如果需要在替换中严格按照提供的替换字符串大小写情况输入,则需要把这个变量设为"nil"。
如何修改Emacs变量:

  1. 输入"ESC x set-variable RETURN",Emacs会提示输入一个变量名。

  2. 输入变量名,如"case-replace RETURN",Emacs会提示输入一个新值

  3. 输入"nil RETURN"

注意,set-variable命令只会临时性的改变一下Emacs的行为。只要启动了一次新的Emacs会话,甚至只要在同一次Emacs会话里开始编辑另一个文件,就将回到默认行为。
为了永久性的改变这些变量设置,需要把这些语句添加到.emacs文件中:

(setq-default case-fold-search nil) ;要求精确匹配 
(setq-default case-replace nil) ;替换时不改变大小写情况


5. 正则表达式查找替换

1357373239_5523.png