https://github.com/emacs-helm/helm-ls-git
在谷歌上找不到它的教程 这意味着它在我们的宇宙中不存在?
我正在寻找一种在emacs中查找文件和grep文件的方法
希望与project directory opened
一样简单
(您的搜索自动限制在您在sublime中指定的目录)
答案 0 :(得分:2)
您所追求的功能是dired
多年来一直成功的功能。您在帖子中链接的文件是在内置功能之上添加的便利功能的一个小改进,它并不真正处理在Git版本控制系统上下文之外搜索文件。
以下是一些如何使用dired
:
M-x find-name-dired
,回答提示,选择要搜索的目录,并通过提供匹配文件名的正则表达式进行优化。然后,您将看到缓冲区,列出您目前所选的所有文件。您可以通过%m 进一步优化,并为其提供一个regexp来过滤文件名,或者只需点击 t 选择缓冲区中的所有文件。
然后点击 A 并编写正则表达式以搜索所选文件内部。此命令的作用是打开找到匹配项的文件。关闭文件或返回原始缓冲区后,可以按 M - ,移动到下一个匹配项。
如果这听起来过于复杂,那么您可以执行 Mx find-dired
来调用您选择的目录中的find
,并使用通常可以提供给{{1}的参数}}
要只是grep并将匹配显示在专用缓冲区中,您可以执行 Mx find
- 这将调用find-grep
,并将其输出通过管道传递给{{1 }}。然后,您需要根据自己的喜好修改用于调用此命令的命令。
Mx find
会做类似的事情,但它会显示文件,其中匹配是在grep
缓冲区中找到的,而不是那些匹配的行发生。
最后,可能有更多方法可以做到这一点,具体取决于您的特定任务以及最终您要完成的任务。也许,有时,调用shell命令将结果直接放在缓冲区中是最好的方法。其他时候,您可能希望编写自己的eLisp函数来执行更详细的结果。天空是他的限制:)
答案 1 :(得分:0)
这可能无法解答您的整个问题,但我使用以下的elisp作为快捷方式,在特定文件夹下使用一组扩展名来搜集所有文件:
(defun pgrep (regexp)
"rgrep files inside a project folder"
(interactive
(list (grep-read-regexp)))
(grep-compute-defaults)
(rgrep regexp "*rb *erb *js *css *scss" "~/path/to/folder/"))
然后我就跑M-x pgrep foo
对于任何更复杂的东西,我只是直接运行rgrep
- 它允许您指定根文件夹,搜索字符串和扩展名。
答案 2 :(得分:0)