我通常做find-grep-dired
在項目目錄中查找表達式。這給了我一個很好的包含該表達式的所有文件的dired
視圖。但是我的下一步總是打開其中一個文件,並使用相同的搜索表達式執行isearch-forward
。我怎樣才能讓自己不用每次輸入兩次搜索詞(或者如果有多個文件需要編輯,可以輸入兩次以上)?Emacs find-grep-dired然後在給定的正則表達式自動isearch-forward
3
A
回答
5
這應該爲你工作:
- 運行
find-grep-dired
像往常一樣 - 按* T(dired-切換的標誌),以紀念所有文件。
- 按A開始
dired-do-search
。當出現提示時,而不是打字,請按M-p,這將調出您的find-grep正則表達式,因爲這兩個函數使用相同的提示歷史列表 - 您將被帶到第一個文件中的第一個匹配。這裏有趣的部分,只需按下M-,即可轉到下一個匹配項,跨越所有匹配的文件。
- 贏利? (抱歉,無法抗拒)
如果你想這一切在一杆,在這裏你去:
(defun find-grep-dired-do-search (dir regexp)
"First perform `find-grep-dired', and wait for it to finish.
Then, using the same REGEXP as provided to `find-grep-dired',
perform `dired-do-search' on all files in the *Find* buffer."
(interactive "DFind-grep (directory): \nsFind-grep (grep regexp): ")
(find-grep-dired dir regexp)
(while (get-buffer-process (get-buffer "*Find*"))
(sit-for 1))
(with-current-buffer "*Find*"
(dired-toggle-marks)
(dired-do-search regexp)))
3
您可以將您在find-grep-dired中使用的搜索字符串存儲在殺戒(C-SPACE C-a M-w)中。然後,您使用殺戒中的字符串(C-s M-y)在文件中進行搜索。 M-y會抽出最後一串殺死的文本。
您可以使用C-h k C-s顯示isearch-forward的其他(有用)綁定。
+0
謝謝,這是一種方式,當然。我希望能少一些牽涉其中的東西,比如單個綁定到最後一個搜索字符串的isearch。 – 2011-02-11 15:35:25
2
怎麼樣不同的方法?嘗試使用igrep.el
包中的M-x igrep-find
。
默認情況下,它會搜索所有出現的格局,但你可以改變行爲,只要找到第一個事故發生有:
(setq igrep-options "-i -m 1") ;; I like -i for case-insensitivity
這將導致編譯風格緩衝(命名爲*igrep*
),每個文件都有一行,當你點擊該行(或者執行Cx`)時,你將自動被放在匹配的行上。另外,您可以在*igrep*
緩衝區中看到匹配的行。
顯然,如果您想要查看每個文件的多個匹配項,請更改-m
之後的數字,或者完全忽略該部分。
相關問題
- 1. Emacs的正則表達式組正則表達式替換
- 2. 正則表達式的問號(在Emacs)
- 3. 給定模式的正則表達式?
- 4. 正則表達式去除?然後
- 5. 正則表達式在Emacs中搜索
- 6. 正則表達式查找文件的段,然後用正則表達式子
- 7. 正則表達式在給定字符後忽略模式
- 8. 的Emacs Lisp逃脫正則表達式
- 9. Emacs的正則表達式替換
- 10. 正則表達式過濾,然後確定最後日期
- 11. 正則表達式:在正則表達式區域內匹配多次(emacs)
- 12. 正則表達式 - 如何給定詞
- 13. emacs空間正則表達式搜索
- 14. 使用Emacs替換正則表達式
- 15. Emacs複製正則表達式
- 16. Emacs正則表達式替換組
- 17. 正則表達式到URL後剝離字符在Emacs
- 18. 自定義的正則表達式
- 19. PHP自定義的正則表達式
- 20. grok的自定義正則表達式
- 21. 給在正則表達式的Java
- 22. 給定字符串後的正則表達式匹配
- 23. JAVA正則表達式:讓自定義的正則表達式String.split()
- 24. 查找給定正則表達式的正則語法?
- 25. 如何定義一個Emacs命令「查詢替換,正則表達式」使用特定的正則表達式
- 26. Perl的正則表達式 - 動態正則表達式
- 27. 特定的正則表達式/正則表達式條件
- 28. 正則表達式和自動機
- 29. 自動正則表達式生成器
- 30. 自動機 - 正則表達式
`dired-do-search`在dired緩衝區中綁定到`A`。 – ataylor 2011-02-11 19:05:07
謝謝,我做了編輯。 – 2011-02-13 02:09:47