【问题标题】:Emacs occur mode search for multiple stringsEmacs发生模式搜索多个字符串
【发布时间】:2014-11-03 20:57:47
【问题描述】:

我有一个包含多种模式的纯文本文件。示例:

调试:我是调试行
调试:另一个 1
错误:这是一个错误
调试:另一个 2
正常:EMACS
调试:另外 3 个
错误:另一个错误

这个想法是使用发生模式来过滤具有我想要的模式的文本文件。
示例:调试和错误。

据我了解,仅适用于单个字符串条目或正则表达式。
如何使用发生模式过滤多个字符串模式?如果有另一种 emacs 模式来过滤文本中的字符串,我也接受。

【问题讨论】:

    标签: regex search text emacs


    【解决方案1】:

    您可以将匹配任一字符串的正则表达式传递给occur。例如,键入 M-x occur RET DEBUG\|ERROR.

    【讨论】:

    • 正是我需要的我以前尝试过但没有“\”。谢谢你:)
    • lmedinas:最好阅读 Emacs 正则表达式语法手册;您可能会发现与您习惯的内容有很多其他不同,因此如果您现在阅读它们,以后会省去一些挫败感。
    【解决方案2】:

    如果是你经常使用的模式,这里有点省略(基于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 不是标准的。
    • 是的。看它的实现,它是一个包装器` (replace-regexp-in-string (regexp-quote to-replace) new-string base-string t t))`
    猜你喜欢
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 2021-11-24
    相关资源
    最近更新 更多