ggt 531 B

123456789101112131415161718192021222324252627
  1. #!/bin/sh
  2. # ggt, stands for Git Grep Type
  3. # find a file and line number but type the query inside of pick(1)
  4. # CAVEAT: Loading grep each time is slow. If you use a faster grep
  5. # it may be faster!
  6. # requires pick(1) to be installed
  7. GREP="grep"
  8. query="$1"
  9. flag="-n"
  10. if test "$1" = "-n"; then
  11. flag=""
  12. query="$2"
  13. fi
  14. if test "$1" = "+"; then
  15. query="$2"
  16. fi
  17. full=`git ls-files | xargs ${GREP} $flag "" | pick`
  18. file=`echo "$full" | cut -d : -f 1-2`
  19. if test "$1" = "+"; then
  20. echo $file | sed -e "s/:/ +/g"
  21. else
  22. echo "$file"
  23. fi