zsh别名 - >功能?

时间:2010-02-01 02:15:06

标签: zsh arguments

假设我有:

alias gg="git grep"

然后像:

gg "int x"

有效,但

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

谢谢!

2 个答案:

答案 0 :(得分:58)

gg() { git grep "$*"; }

答案 1 :(得分:4)

对于您的特定用例,这是一个坏主意。 git-grep期待单个arg 模式。您正试图让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是值得的击键保护程序,那么您应该保持与git-grep期望的一致的arg。你原来的别名对此没问题。并继续单引号或双引引您的模式,就像您使用任何其他正则表达式接受命令一样。