我希望 grep 具有以下行为:
grep --java <rest of the command>
其中 --java 要么动态转换为 --include=*.java 要么在内部等效于它。有没有办法在我的 .cshrc 文件中执行此操作?我尝试使用完整的命令,但似乎无法对当前单词进行替换。
答案1
如果您愿意使用不同的语法(在这种情况下也更短且更容易键入),只需为其创建一个别名。将其添加到您的~/.cshrc
:
alias jgrep grep --include="*.java"
然后,您可以运行如下命令:
jgrep foo *
它会运行
grep --include="*java" foo *
答案2
这不是你可以在 中做的事情tcsh
。
您的选择是:
使用别名,正如 terdon 已经提到的:
alias jgrep grep --include="*.java"
设置完成模式。例如:
complete grep 'c/--/(complete)/' 'n/--complete/(*.java *.rb *.py)/'
这将允许您输入
grep --<Tab><Tab>j<Tab>
。使用变量:
set java = '--include=*.java' grep -r "$java" foo
就我个人而言,我不一定认为这更容易。
最后,我发现the_silver_searcher对于“grepping”代码树来说更有用且更快。您可能想查看一下。