意圖是使用git grep
作爲M-x grep
的命令,以及隨之而來的所有緩衝區優勢。所需的功能:我該如何改進Emacs lisp功能?
- 它讀取點作爲默認值的字/件事(做,那種)
- 它讀取當前區域作爲缺省參數,如果區域設置。
以下是我到目前爲止的代碼:
(defun bw-read-string-at-point()
(interactive)
(let ((word (word-at-point)))
(set-text-properties 0 (length word) nil word)
word))
(defun bw-git-grep (search-str)
"Uses `git-grep` to find `search-str`"
(interactive
(list
(read-string (format "Search for (%s): " (bw-read-string-at-point)))))
(let ((search-str (if (= (length search-str) 0)
(bw-read-string-at-point) search-str)))
(grep (concat "git --no-pager grep -i -I -nH --no-color --extended-regexp " search-str))))
我覺得像interactive
位有相當笨拙,可以作出更好的。
'grep-tag-default'從哪裏來?我在Emacs 24.2中找不到它。編輯:其實沒關係,明白了。由於某些原因'C-h f'找不到它。 –
啊,是的,你可能需要'(require'grep)'來確保定義了'grep-tag-default'。 – Stefan