在EMACS中查找多个文件中的字符串的最佳软件包是什么。我知道grep等等,但我想要一些更顺畅的操作。
答案 0 :(得分:7)
在Emacs中有三个用于grepping的内置函数:grep,find-grep(或grep-find)和rgrep。
前两个工作是让用户直接编辑grep命令行。 我通常使用“递归grep”中的第三个rgrep。它更友好一点,因为它一个接一个地提示用户搜索参数(搜索字符串,文件类型和目录),提供可自定义的默认值,它会自动忽略一些你通常不想搜索的常见文件和目录,比如例如.svn或.o文件。
答案 1 :(得分:2)
万一你还没有阅读过 - 在EmacsWiki GrepMode页面上有很多相关提示。
答案 2 :(得分:0)
Dired模式还允许您使用dired-do-search
功能搜索标记的文件。
ibuffer
允许你使用笨拙的密钥序列M-s a C-s
通过一堆缓冲区来执行emacs'通用isearch。
答案 3 :(得分:0)
作为替代方案,我发现dired-mode
很有帮助,尤其是与dired-mark-files-regexp
(%m )或dired-mark-files-containing-regexp
一起使用时,可以选择要搜索的内容和然后dired-do-search
( A )。
答案 4 :(得分:0)
通过查找字符串来取决于您的意思。正如其他人所提到的,grep
非常擅长它的作用。我每天都在使用它。
但是,如果你的“字符串”是句子中的一系列单词(可以是多行),那么grep
可能就不是你想要的。
搜索多个文件或缓冲区(或书签)的另一个工具是 Icicles 搜索。一般的想法是,它首先根据某些定义(例如正则表达式)将文件解析为搜索上下文,然后搜索与当前迷你缓冲区输入的匹配(在编辑时动态更改搜索命中)你的意见。
尽管grep
始终使用行作为搜索上下文,但使用 Icicles 搜索,您不必限定如何定义要搜索的上下文。上下文不需要分区(耗尽)文件;它们可以根据需要覆盖文件文本的大小。
在其他可能性中,您可以将各种THING的Emacs thing-at-point 定义用作搜索上下文。例如,您可以使用icicles-search-thing
命令sentence
作为THING类型,将句子用作搜索上下文。
或者您可以将字符属性区域用作搜索上下文:例如,搜索所有使用给定面集进行字体锁定的区域。有很多种可能性。
http://www.emacswiki.org/emacs/Icicles_-_Search_Commands%2c_Overview