- Do
git grep
include string "echo" - Select file line number 12 matched
- Open file with vim line number 12
- choose editor with $EDITOR env
- Open file with git greped line number ( using Vim case )
- Split git grep result and extract filepath
- Use "peco" for incremental search
#!/usr/bin/env bash -eu
# Usage
#
# $ command [grep-keyword] --some-grep-option
readonly editor=${EDITOR:-vim}
if [ ! $(which peco) ]; then
echo You need peco please install
exit
fi
readonly git_grep_result=$(git grep --line-number $@)
if [ -z "$git_grep_result" ]; then
echo No match with git grep
exit
fi
readonly git_grep_select=$(echo "$git_grep_result" | peco --query="$1")
if [ -z "$git_grep_select" ]; then
exit
fi
readonly filepath=$(echo "$git_grep_select" | awk -F':' '{ print $1 }')
readonly line_number=$(echo "$git_grep_select" | awk -F':' '{ print $2 }')
if [ ! -z "$filepath" ]; then
if [[ "$editor" =~ vim ]] && [ ! -z "$line_number" ]; then
eval "$editor" +"$line_number" "$filepath"
else
eval "$editor" "$filepath"
fi
fi
gitim/git-grep-edit at acdbbf9bcbfd92e10d62be3f92bff5e6e5b0366e · YumaInaura/gitim
- git version 2.8.1
- peco version v0.5.3 (built with go1.10)