我正在使用igrep.el包并喜欢它。
但有一件事让我很困扰。
在igrep results页面中,第一行和最后一行作为编译的一部分突出显示,因此使用next error循环遍历结果最终将命中这两行,当然没有相应的文件。
以下是这些第一个和最后一个文件的格式:

Igrep started at Thu Aug  1 15:15:23

finished (matches found) at Thu Aug  1 15:15:27

我相信这是负责这些行一起显示的代码。
如何禁用这些行在grep结果中显示,或至少不将它们作为结果的一部分突出显示:
(if igrep-find
(setq command
      (igrep-format-find-command command files)))
(cond ((eq igrep-save-buffers t) (save-some-buffers t))
  (igrep-save-buffers (save-some-buffers)))
(if (fboundp 'compilation-start)    ; Emacs 22
    (let ((compilation-process-setup-function 'grep-process-setup))
      (or (fboundp 'igrep-mode)
          (define-derived-mode igrep-mode grep-mode "Igrep"))
      (compilation-start command
                         'igrep-mode
                         nil
                         (cond ((eq compilation-highlight-regexp t))
                               (compilation-highlight-regexp
                                (if (eq program "fgrep")
                                    (regexp-quote regex)
                                  regex)))))
  (compile-internal command (format "No more %s matches" program)
                    "Igrep" nil grep-regexp-alist))))

最佳答案

问题是这些行的正则表达式需要一个“Grep”,而不是“Igrep”作为一个快速的技巧,您可以用“Grep”替换这段代码的两个“Igrep”字符串。
一个不那么复杂的解决方案是将这些regexp的表达式添加到grep-mode-font-lock-keywords中很简单:只需查看该变量的当前值,并将以“^grep”开头的regexp与以“^igrep”开头的类似regexp重复即可。

关于search - igrep模式结果汇编不方便,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18005596/

10-13 02:57