zsh别名 - >函数?

zsh别名 - >函数?

问题描述:

假设我有:zsh别名 - >函数?

alias gg="git grep" 

然后东西,如:

gg "int x" 

作品,但

gg int x 

得到投诉。有没有办法在zsh中将gg重写为一个函数,以便它将gg后面的所有参数重新写入一个字符串?

谢谢!

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

嗯,让他们进入一个字符串,你需要'“$ *”',而不是'“$ @”' - 你写将通过将它们作为单独的参数,可以就像别名的形式。 – 2010-03-16 20:08:14

+1

感谢您的更正。 – 2010-03-16 22:04:19

+0

这也有与bash兼容的好处 – Jian 2013-05-31 16:31:57

对于您的特定用例,这是一个坏主意。 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预期一致。你的原始别名对此很好。并继续单引号或双引号,就像使用任何其他正则表达式接受命令一样。

+0

不是一个答案,而是一个很好的观点。 – shadowtalker 2015-06-13 16:22:06