#!/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 "$@"`