我可以在emacs中编写一个预制的find-grep脚本吗?

Joh*_*den 3 emacs elisp find-grep

几乎总是,我想像这样运行find-grep:

ack --no-heading --no-color"SOMETHING"〜/ myco/firmwaresrc

其中SOMETHING是唯一的变量.实际上有很多令人惊讶的按键和思维需要才能实现这一点.

我将如何进行"罐装",以便Mx fgf使用该命令运行find-grep并使用当前区域代替SOMETHING?

其实我已经弄清楚如何做到这一点(见下面的答案).如果没有选定的地区,有人可以告诉我如何让emacs要求SOMETHING吗?

hua*_*uan 7

(defun fgf (term)
  (interactive
   (list (if (use-region-p)
             (buffer-substring (region-beginning) (region-end))
           (read-string "grep-find: "))))
  (grep-find (concat "ack --no-heading --no-color \""
                     term  "\" ~/myco/firmwaresrc")))
Run Code Online (Sandbox Code Playgroud)

  • +1.用`(shell-quote-argument term)`代替`term`会很好,以防万一你在其中搜索带有shell特殊字符的模式. (2认同)