2010-09-25 69 views
8

我目前正在開始轉換過程中轉發Emacs。不過,我有兩個基本問題。Emacs搜索並打開多個文件並在所有緩衝區中搜索

  1. 如何從特定路徑遞歸搜索多個文件?我假設我必須使用find/grep/dired但我不確定。例如,我想找到所有*.scala文件,路徑爲C:/src/xxx。當找到這些文件時,我也想一次性在緩衝區中打開它們。我目前熟悉的唯一方法是C-xC-f

  2. 當所有這些文件都在緩衝區中時,我如何搜索所有緩衝區,並獲得某種結果列表和/或可以從結果導航到結果?說我想找到所有與文字case Int =>發生的地方。

+0

http://www.emacswiki.org/emacs/SearchBuffers,http://www.emacswiki.org/emacs/CategorySearchAndReplace – Anycorn 2010-09-25 20:50:17

+0

http://www.emacswiki.org/emacs/Icicles_ -_File-Name_Input – Anycorn 2010-09-25 20:54:42

回答

3

對於零件A,您可能會看到here

對於B部分,你可能看看multi-occur-in-matching-buffers,這讓你可以指定你想利用這些緩衝液(例如所有緩衝區.*.scala照照斯卡拉的所有文件)和尋找什麼(例如case Int =>)。這給你一個所有發生的列表。

0

我想你人爲地制約了答案。您無需將所有文件加載到Emacs中以查找這些事件。而且,一旦找到正則表達式的出現,就可以輕鬆地通過按鍵跳轉到文件中的行。

我最喜歡的方式做,這是使用M-X igrep找到的,因爲我喜歡igrep接口比的Emacs的grep-find更好。

你可以找到emacswiki的igrep庫:igrep.el

和使用將是

M-x igrep-find case Int => RET 

這將填充緩衝所有的比賽,然後(如在發生,grep的,找,彙編等),您可以使用Cx`Mx下一個錯誤循環瀏覽匹配。

1

您正試圖在*中查找「case Int =>」的所有匹配項。階文件在C:/ SRC

最簡單的方法(假設一個默認的Emacs設置)是使用M-x rgrep。它會要求您輸入搜索字符串,文件類型和目錄(按照該順序,並提示標籤,以免混淆)。只需輸入case Int =>,*.scalaC:/src/xxx

你應該看到的是與「案例詮釋=>」的出現在該目錄中的所有文件.scala列出一個新的緩衝區。如果您單擊某個事件,Emacs將打開該文件並導航到包含它的行。

作爲一個說明,如果你正在試圖做的搜索,並在多個文件替換,你能做到這一點使用dired選項。你可以找到有關該選項的信息here

1

*對於問題甲***

冰柱C-X C-F缺省爲多命令。這意味着,當你完成一組文件名:

  • 您可以在(例如訪問)多名候選人,選擇性地作用(例如C-RETC-鼠標2)。

  • 您可以對全部採取措施,其名稱與您當前的輸入相匹配 - 例如,全部訪問它們。

這同樣適用於其他冰柱文件的命令,包括那些讓你匹配一個絕對的文件名,這意味着你的小緩衝區模式不能只是文件名,但目錄的非目錄部分匹配真實部件也是如此。

例如,C-x C-f帶有前綴arg與絕對文件名相匹配。 M-x icicle-locate-file對給定目錄下的所有文件都做同樣的事情。

(你總是可以使用多命令作爲一個普通的命令:一般來說,如果你使用RET鼠標2如果不使用額外的鍵綁定作用於CX比照行爲多個文件,那麼你永遠不會知道其中的差別。)

http://www.emacswiki.org/emacs/Icicles_-_File-Name_Input


*有關問題B ***

你想要的是冰柱搜索。

  • 命令icicle-search-file搜索指定集的所有文件。
  • 命令icicle-search-buffer搜索您指定的集合的所有緩衝區。
  • 命令icicle-search執行以下操作:具有負前綴arg的文件,具有非負前綴arg的緩衝區。

這些命令讓您指定一個正則表達式來定義搜索上下文:要搜索的文件或緩衝區的部分。例如,.*表示搜索每一行。

定義搜索上下文後,在minibuffer中鍵入一些文本,並將候選搜索上下文縮小爲與您的文本匹配的文本。你可以點擊M-SPC來組合多個這樣的模式。

然後你就可以瀏覽到所選擇的搜索命中:使用C-下來C-RETC-鼠標2參觀,或者週期/訪問。您甚至可以通過各種方式對匹配的候選項進行排序,輕鬆進行比較或更改循環順序。

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

相關問題