2010-01-03 35 views
4

我在〜/的.emacs以下的自定義函數:的Emacs rgrep定製

(defun xi-rgrep (term) 
    (grep-compute-defaults) 
    (interactive "sSearch Term: ") 
    (rgrep term "*.[ch]*" "../")) 

此功能只是運行在文件輸入的字詞rgrep /目錄我很感興趣。然而,我想匹配原始的rgrep功能,使默認搜索詞成爲該詞的詞(我認爲這是一個詞?)。我如何實現這一目標?我已經嘗試了幾種方法,包括運行(grep-read-regexp),但沒有成功。

回答

5

可以使用'thingatpt包像這樣:

(require 'thingatpt) 
(defun xi-rgrep (term) 
    (interactive (list (completing-read "Search Term: " nil nil nil (thing-at-point 'word)))) 
    (grep-compute-defaults) 
    (rgrep term "*.[ch]*" "../")) 
+0

這很好,謝謝。 – 2010-01-03 17:01:16

2

這裏是另一種方式,它不需要在'thingatpt包和用途(grep的讀取 - 正則表達式):

(defun xi-rgrep() 
    (interactive) 
    (grep-compute-defaults) 
    (rgrep (grep-read-regexp) "*.[ch]*" "../")) 

我喜歡如果你想使用符號(例如下劃線)來表示這些變量,那麼這個'thingatpt需要設置邊界。