2010-05-21 66 views

回答

2

以防萬一您還沒有閱讀它 - 在EmacsWiki GrepMode頁面上有很多相關的提示。

+0

看起來像grep模式是最好的事情,我只需要鞭出elisp來得到它我想要的地方;) – math0ne 2010-05-22 13:58:30

7

在Emacs中有三個內置函數用於grep:grep,find-grep(或grep-find)和rgrep。

讓用戶直接編輯grep命令行的前兩項工作。 我通常使用「遞歸grep」中的第三個rgrep。它有點友好,因爲它會逐個提示用戶輸入搜索參數(搜索字符串,文件類型和目錄),提供可自定義的默認值,並自動忽略一些通常不想搜索的常見文件和目錄,例如例如.svn或.o文件。

然後,有ack,它的Emacs接口:ack.el,其默認行爲類似於rgrep,但可以定製爲使用ack提供的選項。

+1

我rgrep的忠實粉絲 - 這是非常容易使用。 – offby1 2010-05-22 03:51:18

0

Dired模式還允許您通過使用dired-do-search函數標記的文件進行搜索。

ibuffer讓你通過一堆緩衝區使用難處理的按鍵序列M-s a C-s來執行emacs的通用isearch。

0

作爲替代方案,我發現dired-mode有幫助的,尤其是與任一dired-mark-files-regexp%米)或dired-mark-files-containing-regexp用於選擇什麼應該被搜索時,然後dired-do-search)。

0

取決於找到一個字符串的含義。正如其他人所說,grep非常擅長它。我每天都在使用它。

但是,如果你的「字符串」是一個句子(可以是多行)內的一個單詞序列,那麼grep可能不是你想要的。

搜索跨多個文件或緩衝區(或書籤)的另一個工具是冰柱搜索。總的想法是,它首先根據一些定義(例如正則表達式)將文件解析爲搜索上下文,然後它搜索與當前小型緩衝器輸入的匹配(在編輯輸入時動態更改搜索命中)。

鑑於grep始終使用線條作爲搜索上下文,冰柱搜索您不限於如何定義要搜索的上下文。上下文不需要對文件進行分區(排空);他們可以根據需要覆蓋文件中的文字或文字。

在其他可能性中,您可以使用Emacs 事物點定義各種THING作爲搜索上下文。例如,您可以使用命令icicles-search-thingsentence作爲THING類型,以將句子用作搜索上下文。

或者,您也可以將字符屬性區域用作搜索上下文:例如,搜索與給定的一組面對字體鎖定的所有區域。有很多可能性。

http://www.emacswiki.org/emacs/Icicles_-_Search_Commands%2c_Overview

相關問題