Emacs rgrep自定义设置

5

我在~/.emacs中有以下自定义函数:

(defun xi-rgrep (term)
  (grep-compute-defaults)
    (interactive "sSearch Term: ")
    (rgrep term "*.[ch]*" "../"))

这个函数只是在我感兴趣的文件/目录中为输入的术语运行rgrep。然而,我想匹配原始的rgrep功能,即默认搜索术语是点上的单词(我认为那是术语?)。我该如何实现这一点?我尝试了几种方法,包括运行(grep-read-regexp),但没有成功。

2个回答

6
您可以这样使用'thingatpt包:

(require 'thingatpt)
(defun xi-rgrep (term)
   (interactive (list (completing-read "Search Term: " nil nil nil (thing-at-point 'word))))
  (grep-compute-defaults)
  (rgrep term "*.[ch]*" "../"))

2

这里有另一种方法,不需要使用'thingatpt包,而是使用(grep-read-regexp)函数:

(defun xi-rgrep ()
  (interactive)
  (grep-compute-defaults)
  (rgrep (grep-read-regexp) "*.[ch]*" "../"))

我更喜欢使用thingatpt,因为如果你想使用rgrep搜索带有符号(比如下划线)的单词,通常是变量名,就需要设置边界。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接