如果设置了变量,我正在寻找一种始终从特定位置启动我的grep-find的方法。我想的是:
我知道如果我先打开/ home / user / mycode /目录,然后运行grep-find,它就可以了,但我希望将它存储为变量。 (如果没有设置变量,只需从当前位置进行搜索就可以了)
我的grep-find看起来像这样:
(setq grep-find-command "find . '(' -type f ')' -print0 | xargs -0 -e grep -n -e ")
答案 0 :(得分:1)
在我看来,你会从弹丸中受益。
它完全符合您的需求。它有一个递归的grep命令,它从父目录启动(它也可以使用git-grep或ag,比grep快很多),它提供了更多。您可以同时处理多个项目(射弹很聪明)。
你可以在这里查看射弹:https://github.com/bbatsov/projectile
可通过MELPA
获取如果您不想使用它(或类似的替代方案),我建议在这样的自定义函数中包装递归grep命令:
(defun rgrep-at-repo-base (...)
(interactive)
(with-temp-buffer
(while (and (not (file-exists-p ".git/"))
(not (equal "/" default-directory)))
(cd ".."))
(rgrep ...)))
您应该在哪里更改从当前目录中查找代码库的逻辑(示例适用于git repos)并设置您需要的参数(如果有)