0

假设您正在处理一个包含多个文件、目录和子目录的大型项目。在其中一个目录/子目录/文件中,您已经定义了一个方法,但是现在您想确切地知道整个项目中的哪些文件一直在调用您的方法。你怎么做到这一点?

4

2 回答 2

0

最常见的方法是使用您的编辑器。例如,如果您使用 etags 创建标签索引,emacs 就可以做到这一点。

来源:http ://www.gnu.org/software/emacs/emacs-lisp-intro/html_node/etags.html

您只需键入 M-。并输入您要访问的函数的名称,emacs 会将您带到那里。

我不知道您使用的是什么系统或哪个编辑器,但大多数编辑器都有类似的功能。

如果您不使用 emacs,另一种跟踪功能并获得许多其他好功能的好方法是使用版本控制系统。与 git 一样,它提供了非常快速的搜索。

如果您不使用版本控制系统,您可能希望查看专为搜索而设计的程序。像OpenGrok一样。

于 2012-04-08T20:17:07.763 回答
0

你提到了 grep 所以我会把这个解决方案扔在那里。一个更强大的解决方案是按照 Fibbe 的建议实施版本控制系统。

find . -exec grep 'method_name' {} \; -print 2> /dev/null

这个想法是,对于在当前目录和子目录中找到的每个文件,在该文件上执行“method_name”的 grep。2> /dev/null如果您不想收到有关您无权访问的所有目录和文件的警告,那就太好了。

于 2012-04-08T20:32:33.223 回答