32

假设我有:

alias gg="git grep"

然后像:

gg "int x"

有效,但是

gg int x

得到投诉。有没有办法将 gg 重写为 zsh 中的函数,以便它获取 gg 之后的所有参数,并将它们填充到字符串中?

谢谢!

4

2 回答 2

59
gg() { git grep "$*"; }
于 2010-02-01T03:17:25.947 回答
5

对于您的特定用例,这是一个坏主意。git-grep期待一个单参数模式。您正试图让 shell 将您的空间(在 int 和 x 之间)视为模式的一部分。当您尝试以下内容时,这将很快中断:gg foo.*bar或 shell 可能解释的各种其他内容。所以gg真正应该引用之后的任何内容。这就是为什么git grep int x也不起作用:fatal: ambiguous argument 'x': unknown revision or path not in the working tree...

如果您认为这gg是一个值得的击键保护程序,您应该保持您的 arg 与git-grep预期一致。您的原始别名对此很好。并继续单引号或双引号,就像您使用任何其他正则表达式接受命令一样。

于 2015-06-11T21:41:33.783 回答