【发布时间】:2014-11-03 20:57:47
【问题描述】:
我有一个包含多种模式的纯文本文件。示例:
调试:我是调试行
调试:另一个 1
错误:这是一个错误
调试:另一个 2
正常:EMACS
调试:另外 3 个
错误:另一个错误
这个想法是使用发生模式来过滤具有我想要的模式的文本文件。
示例:调试和错误。
据我了解,仅适用于单个字符串条目或正则表达式。
如何使用发生模式过滤多个字符串模式?如果有另一种 emacs 模式来过滤文本中的字符串,我也接受。
【问题讨论】:
我有一个包含多种模式的纯文本文件。示例:
调试:我是调试行
调试:另一个 1
错误:这是一个错误
调试:另一个 2
正常:EMACS
调试:另外 3 个
错误:另一个错误
这个想法是使用发生模式来过滤具有我想要的模式的文本文件。
示例:调试和错误。
据我了解,仅适用于单个字符串条目或正则表达式。
如何使用发生模式过滤多个字符串模式?如果有另一种 emacs 模式来过滤文本中的字符串,我也接受。
【问题讨论】:
您可以将匹配任一字符串的正则表达式传递给occur。例如,键入 M-x occur RET DEBUG\|ERROR.
【讨论】:
如果是你经常使用的模式,这里有点省略(基于legoscia的回答):
(defun myoccur (arg)
(interactive "sList of space-separated args: ")
(occur (s-replace " " "\\|" arg))
)
它用OR regexp 构造替换空格并进行调用。
ps:s-replace 不是标准的。你需要(require 's),s.el 库。 https://github.com/magnars/s.el
【讨论】:
s-replace 不是标准的。