scripts/misc/frg
Alexander Gehrke 761b7700ab new script: misc/frg
"frg TERM" searches for TERM using `rg`, `ag`, `ack` or `grep -r`, then
shows matched files in fzf with context preview. Selected files will be
opened in an editor.
2021-12-02 22:41:21 +01:00

33 lines
773 B
Bash
Executable file

#!/bin/zsh
if [[ ! $1 ]]; then
echo "Usage: frg SEARCH_TERM"
exit 1
fi
search_string="$1"
if command -v nvimpager &>/dev/null; then
preview="grep '$search_string' -C 3 {} | nvimpager -c -- +doautocmd\ BufRead\ {}"
elif command -v vimcat &>/dev/null; then
preview="grep '$search_string' -C 3 {} | vimcat -c doautocmd\ BufRead\ {}"
elif command -v bat &>/dev/null; then
preview="grep '$search_string' -C 3 {} | bat --file-name {}"
else
preview="grep '$search_string' -C 3 {}"
fi
if command -v rg &>/dev/null; then
search=rg
elif command -v ag &>/dev/null; then
search=ag
elif command -v ack &>/dev/null; then
search=ack
else
search="grep -r"
fi
target=$("${search[@]}" -l $search_string | fzf --preview="$preview")
if [[ -n $target ]]; then
$EDITOR $target
fi