From 761b7700abd1cab7f8fc6a688bf7dfdbebe2469f Mon Sep 17 00:00:00 2001 From: Alexander Gehrke Date: Mon, 15 Nov 2021 12:38:58 +0100 Subject: [PATCH] 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. --- misc/frg | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 misc/frg diff --git a/misc/frg b/misc/frg new file mode 100755 index 0000000..ab27f96 --- /dev/null +++ b/misc/frg @@ -0,0 +1,32 @@ +#!/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