2013-07-18 2 views
4

내가magit-grep, 파일 확장명을 포함 또는 제외하는 방법은 무엇입니까?

git --no-pager grep -n foo 

에 magit-그렙 옵션을 foo 결과를 실행

몇 가지 옵션을 제공하고 싶습니다 나는 그것은 아무튼 그

git --no-pager grep -n foo (options to include *.html and exclude *.py, etc) 

에 옵션을 제공하고 싶습니다 magit-grep이어야하며, emacs에서 가장 좋은 git grep 솔루션은 무엇입니까?


는 magit-그렙

(magit-define-command grep (&optional pattern) 
    (interactive) 
    (let ((pattern (or pattern 
        (read-string "git grep: " 
            (shell-quote-argument (grep-tag-default)))))) 
    (with-current-buffer (generate-new-buffer "*Magit Grep*") 
     (let ((default-directory (magit-get-top-dir))) 
     (insert magit-git-executable " " 
       (mapconcat 'identity magit-git-standard-options " ") 
       " grep -n " 
       (shell-quote-argument pattern) "\n\n") 
     (magit-git-insert (list "grep" "--line-number" pattern)) 
     (grep-mode) 
     (pop-to-buffer (current-buffer)))))) 
+0

I "우리의 코드를 다른 곳에서 이미 존재하는 것을보고 기능을 추가하고 제거"의 고전적인 사례 'git grep'expression '-'* .html ''이해야한다고 생각합니다. 어쩌면이 함수를 확장하여 주어진 범용 인수가있는 경우 파일 마스크를 요청할 수 있습니다. –

답변

2

하나의 가능성은 git-grepgit-ls-files og의 조합이다 :

git grep ... `git ls-files | grep -- '\.html$'` 

그러나 git-ls-files의 출력이 최대 명령 줄을 초과하지 않는 경우에만이 작동 시스템의 크기 (현대 시스템의 경우 약 100K입니다).

4

나는 rgrep의 심각하게 불구가 된 버전이므로 magit-grep을 삭제했습니다. vc-git-grep은 실제로 개선되었으므로이를 사용해야합니다. (현재 magit-grep 이전에 magit 변형을 사용하여 타인에게 피해를주지 않도록하기 위해, 벤처 명령에 대한 별칭으로 정의된다. :-)