mirror of
git://projects.qi-hardware.com/wernermisc.git
synced 2024-11-23 18:12:49 +02:00
30 lines
634 B
Bash
Executable File
30 lines
634 B
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# git grep through a tree, list the hits, then set up vi to go through the
|
|
# files we found, searching for the expression.
|
|
#
|
|
# usage: gg [grep_options] search_expression
|
|
#
|
|
|
|
nondash()
|
|
{
|
|
while [ ! -z "$*" ]; do
|
|
if [ "${1#-}" = "$1" ]; then
|
|
echo "$1"
|
|
return
|
|
fi
|
|
shift
|
|
done
|
|
}
|
|
|
|
#
|
|
# the "cat" here serves two purposes:
|
|
# 1) keep "git grep" from truncating long lines
|
|
# 2) keep "git grep" from using a pager, which would result in waiting twice
|
|
# for user input at the end, which is confusing
|
|
#
|
|
git grep "$@" | cat
|
|
echo -n '[Enter to vi] '
|
|
read x
|
|
${GG_EDITOR:-vi} -c /"`nondash \"$@\"`" `git grep -l "$@"`
|