emacs搜索并列出多个部分

时间:2016-05-07 12:26:41

标签: emacs

使用emacs

在xml文件中搜索多行
 m-x list-matching-lines

      <step>D</step>
      <alter>0</alter>
      <octave>5</octave>

它列出了发生窗口中的所有事件。

但是,如果我搜索多部分行,则会失败。

 m-x list-matching-lines

     <step*
     <alter*
     <octave*

 Searched 1 buffer; no matches for `<step*^J     <alter*^J     <octave*'

仅使用

进行搜索
m-x list-matching-lines

     <step* 

也很有效。

上述命令的结果如下:

177:        <stem default-y="-57">down</stem>
182:          <step>A</step>
190:        <stem default-y="-60">down</stem>
200:          <step>D</step>
208:        <stem>down</stem>
216:          <step>D</step>
224:        <stem>down</stem>

感谢您的帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

<step*将匹配<ste<step以及<steppppppppp等等。它是一个正则表达式,而不是shell glob模式。所以肯定不会匹配<step>D</step>

使用.*匹配零个或多个非换行符;不只是*

阅读手册中的正则表达式:
C-h i g (emacs) Regexps RET

答案 1 :(得分:0)

找到绿色的东西。

 m-x list-matching-lines    

 <step...*  

+ C-q C-j RET 会将搜索到的行加上* Occur *窗口中的下一行。

m-x list-matching-lines    

 <step...* 
 ...*

+ C-q C-j RET 带来所需的两行等。