如何在rgrep中指定多个文件扩展名?

时间:2014-12-10 01:08:48

标签: emacs

我试过*。{cc,hh}但是它不起作用(虽然这适用于lgrep)。我也试过这个方法建议她e http://compgroups.net/comp.emacs/searching-multiple-file-types-with-rgrep/95027,但似乎交互模式不允许我输入空格。有什么想法吗?

2 个答案:

答案 0 :(得分:7)

*.cc *.hh是正确的。然后,find命令将使用如下内容:
\( -iname \*.cc -o -iname \*.hh \)

(如果提供前缀参数,则可以在执行命令之前查看/编辑该命令。)

您可以使用quoted-insert输入空格: Cq SPC just-one-space M-SPC < / p>

答案 1 :(得分:0)

我(绝望地)推出了一个elisp解决方案:

(defun mrgrep (pattern extensions dir)
     (interactive "ssearch for: \nsextensions (space separated, no *): \nD")
     (setq includes (mapconcat (lambda (ext)
                                 (concat (format "--include=\"\\*%s\"" ext)))
                               (s-split " " extensions)
                               " "))
     (setq cmd (format "grep -ir %s %s %s"
                       includes
                       pattern
                       (concat dir "*")))
     (setq cmd (read-from-minibuffer "run grep like this: " cmd))
     (compilation-start cmd 'grep-mode)
     )

但菲尔斯解释了如何进入这个空间!