当前位置:  开发笔记 > 开发工具 > 正文

Emacs命令用于搜索文件

如何解决《Emacs命令用于搜索文件》经验,为你挑选了4个好方法。

我想在当前文件夹中搜索宏CODE_INIT_PARAMETERS的所有文件.我可以做Mx出现CODE_INIT_PARAMETERS但这只显示来自开放缓冲区的条目.

有没有办法从Emacs搜索当前文件夹中的所有文件,而无需切换到Mx shell然后grep?我想避免使用grep,因为对于某些命令(Mx发生),Emacs会跳转到违规代码,我也想要这样做.谢谢.



1> Jazz..:

你可以试试M-x rgrep.

它会要求:

要递归搜索的目录

要包含在搜索中的文件的文件模式

您要搜索的模式

作为额外的,它将从搜索中排除源控制私有目录(如CVS,.svn或.git).


在开箱即用的Windows上不起作用:(
你需要grep并找到(来自GnuWin32),并且GNU find必须在PATH中的Windows find.exe之前.grep和find随EmacsW32一起安装.
再见命令行,rgrep真棒!的xD

2> Trey Jackson..:

Emacs提供了一个内置命令:

M-x grep RET CODE_INIT_PARAMETERS *.c

(并'grep-find搜索子目录)

虽然我更喜欢外部包提供的接口igrep(提供命令igrepigrep-find).



3> Brian Postow..:

如果您在dired中打开一个文件夹,并标记所有文件(使用'm'),您可以运行'dired-do-search(我的绑定中的'A').这将搜索所有标记的文件.要进入下一个,运行tags-loop-continue(M-,)

我已经设置了几个elisp函数来标记文件的各种子集(.h文件,.cpp文件等)并创建一个递归的dired来搜索整个树...



4> Steven Huwig..:

这是Trey Jackson建议的改进.

Mx grep

您将看到grep命令,例如 grep -nH -e

将R添加到第一组标志(用于递归),并将搜索项放在-e之后

grep -nHR -e CODE_INIT_PARAMETERS

点击RET.Emacs可以理解结果 - 您可以点击或以其他方式导航到它们,就像Mx一样.您可能需要将搜索目录放在命令的末尾:

grep -nHR -e CODE_INIT_PARAMETERS /path/to/root/of/search

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有