samedi 1 mai 2010

Emacs 搜索

替换操作:全局替换命令与查询替换命令 (不能匹配单个单词)
  在Emacs编辑器中,可以使用全局替换命令或查询替换命令操作来实现文本的替换。查询替换操作允许执行单个的替换,当执行查询替换操作时,如果编辑器查找到与输入匹配的字符串,编辑器将询问是替换该字符串还是不执行替换操作而直接进行下一次与输入匹配的查找,或者退出当前的查询替换操作。因此,执行替换时,查询替换比全局替换具有更多的控制权。进行正则表达式搜索时,这两个操作都有与之对应的特殊命令。
  1. 全局替换:Replace-string命令
  可以直接在编辑器的小缓冲区中使用replace-string命令来执行全局替换操作,且在键入replace-string命令后,不必键入任何键。其操作过程如下:首先键入Esc x命令进入编辑器的小缓冲区,然后键入replace-string命令,编辑器提示用户输入要查找的字符串及要替换的字符串。Replace- string命令不能实现正则表达式的替换,如果要使用正则表达式,必须使用replace-regexp命令。
  2. 查询替换命令
  Esc %命令用来执行查询替换操作。它首先搜索到与模式匹配的字符串,然后在必要时替换该字符串。要执行查询替换命令,首先键人Esc %命令,然后键入要被替换的模式,并回车,再键入要替换的字符串并回车。完成上述操作之后,将搜索到与被替换的模式匹配的第一个字符串,同时出现几个选项,每个选项都有与之对应的按键。例如,如果键入y,搜索到的字符串将被替换字符串所替换,同时,光标将位于已被替换掉的字符串上;如果键入n,将取消替换操作,同时,光标将位于搜索到的字符串上。其格式如下:
Esc %
  Query replace:<被替换字符串>
  Query replace <被替换字符串> with:<替换字符串>
  Query replacing <被替换字符串> with <替换字符串>:(? for help)
  查询替换命令的选项见下表:
  y或者Spacebar键 替换搜索到的字符串
  n或者Del键 取消替换搜索到的字符串
  ^ 回到前一个搜索到的字符串
  ! 替换所有没有替换的与模式匹配的字符串
  ESC键 退出本次查询搜索
  下面的命令序列将用yogurt字符串替换文本中的模式milk,然后继续下一次查找。用户可以按Esc键退出查询搜索操作。
  Esc %
   Query replace: milk
  Query replace milk with: yogurt
  Query replacing milk with yogurt:(? For help) y
  与其他查找命令一样,查询搜索命令不允许在输入的查找字符串中使用特殊字符。但如果想使用特殊字符,可以使用query-replace-regexp 命令,要运行该命令,必须首先键入Esc x命令进入编辑器的小缓冲区中。

比较有用lisp:
http://blog.csdn.net/pankun/archive/2007/04/25/1584873.aspx


m-x find-grep-dired


http://www.zoomquiet.org/share/doc/docs.huihoo.com/homepage/shredderyin/emacs24/emacs059.htm#c1

Aucun commentaire:

Enregistrer un commentaire