Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
function ga_code_search() {
# alias todo='ga_code_search "TODO\(`whoami`\)"'
SCREEN_WIDTH=`stty size | awk '{print $2}'`
SCREEN_WIDTH=$((SCREEN_WIDTH-4))
# Given a spooky name so you can alias to whatever you want.
# (cs for codesearch)
# AG is WAY faster but requires a binary
# (try brew install the_silver_searcher)
AG_SEARCH='ag "$1" | sort -k1 | cat -n | cut -c 1-$SCREEN_WIDTH'
# egrep is installed everywhere and is the default.
GREP_SEARCH='egrep -nR "$1" * | sort -k1 | cat -n'
SEARCH=$AG_SEARCH
if [ $# -eq 0 ]; then
echo "Usage: ga_code_search <search> <index_to_edit>"
echo ""
echo "Examples:"
echo " ga_code_search TODO"
echo " ga_code_search TODO 1"
echo " ga_code_search \"TODO\\(graham\\)\""
echo " ga_code_search \"TODO\\(graham\\)\" 4"
echo ""
return
fi
if [ $# -eq 1 ]; then
# There are no command line argumnets.
eval $SEARCH
else
# arg one should be a line from the output of above.
LINE="$SEARCH | sed '$2q;d' | awk -F':' '{print +\$2 \" \" \$1}' | awk -F' ' '{print \$3 \":\" \$1}'"
# Modify with your editor here.
emacs `eval $LINE`
fi
}
# Find todo items that are assigned to me.
alias todo='ga_code_search "TODO\(`whoami`\)"'
# Find merge conflicts that need to be resolved.
alias conf='ga_code_search "<<<<<<<<<"'
# Find anything below your CWD.
alias ccs='ga_code_search'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment