我想给magit-grep
提供一些选择使用选项foo
运行
git --no-pager grep -n foo
我想给它选择
git --no-pager grep -n foo (options to include *.html and exclude *.py, etc)
它不一定是magit-grep,emacs中最好的git grep解决方案是什么?
magit-grep的
(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 :(得分:6)
我删除了magit-grep
,因为它只是rgrep
的严重残缺版本。 vc-git-grep
实际上是一种改进,所以你应该使用它。 (现在magit-grep
被定义为vc命令的别名,以避免打扰以前使用magit变体的任何人。经典案例“通过查看其他地方已存在的内容然后删除我们的代码来添加功能”:-)
答案 1 :(得分:2)
一种可能性是组合og git-grep
和git-ls-files
:
git grep ... `git ls-files | grep -- '\.html$'`
但只有当git-ls-files
的输出不超过系统上的最大命令行大小(在现代系统上为100K)时,这才有效。