我想從當前文件夾的所有文件中搜索宏CODE_INIT_PARAMETERS。 我可以做 M-x發生CODE_INIT_PARAMETERS 但這隻顯示來自開放緩衝區的條目。用於搜索文件的Emacs命令
有什麼方法可以從Emacs當前文件夾中搜索所有文件,而無需切換到M-x shell然後grep?我想避免grep,因爲對於某些命令(M-x發生),Emacs會跳轉到有問題的代碼,我也想這樣做。 謝謝。
我想從當前文件夾的所有文件中搜索宏CODE_INIT_PARAMETERS。 我可以做 M-x發生CODE_INIT_PARAMETERS 但這隻顯示來自開放緩衝區的條目。用於搜索文件的Emacs命令
有什麼方法可以從Emacs當前文件夾中搜索所有文件,而無需切換到M-x shell然後grep?我想避免grep,因爲對於某些命令(M-x發生),Emacs會跳轉到有問題的代碼,我也想這樣做。 謝謝。
你可以試試M-x rgrep
。
它會詢問:
作爲一個額外的,它將排除您的搜索源代碼管理私人目錄(如CVS,.svn或.git)。
的Emacs提供了一個內置的命令:
M-x grep RET CODE_INIT_PARAMETERS *.c
(和'grep-find
搜索子目錄)
雖然我更喜歡由外部包igrep
(其提供命令提供的接口igrep
和igrep-find
)。
如果你在dired中打開一個文件夾,並標記所有文件(用'm'),你可以在我的綁定中運行'dired-do-search('A')。這將搜索所有標記的文件。要進入下一個,運行tags-loop-continue(M-,)
我已經設置了幾個elisp函數來標記文件的各種子集(.h文件,.cpp文件等)和創建一個遞歸直接搜索整棵樹...
我必須爲我的綁定做些事情。它可以工作,但暫時不方便。謝謝。 – grayasm 2009-08-27 19:40:56
這是對Trey Jackson的建議的改進。
M-x grep
您將看到grep命令,例如,grep -nH -e
加上R的第一套標誌(遞歸),並把你的搜索詞後-e
grep -nHR -e CODE_INIT_PARAMETERS
命中RET。 Emacs可以理解結果 - 您將能夠點擊或以其他方式導航到它們,例如M-x發生。你可能需要把搜索目錄在命令的末尾:
grep -nHR -e CODE_INIT_PARAMETERS /path/to/root/of/search
Yah,這就是爲什麼我喜歡''igrep',界面更直觀。 – 2009-08-26 03:20:16
嗯,我不介意加-R。謝謝。 – grayasm 2009-08-27 19:24:26
有以及ack-grep mode對於使用該ack-grep工具,它是專門針對「設計Emacs的grepping「」編程語言和恕我直言看起來更好比Mx grep的輸出要低。
但正如前面提到的,etags應該是正確的方法!
M-X找到 - grep的-dired也適用同樣的rgrep
M-x rgrep的作品也很好。謝謝你的回答。 – grayasm 2009-08-27 19:16:50
不能在Windows工作開箱:( – avp 2011-05-06 07:08:46
你需要grep和發現(來自的GnuWin32),以及GNU發現必須在PATH的Windows FIND.EXE之前,grep和發現都安裝了EmacsW32。 – Jazz 2011-05-06 14:47:48