From 254f0289b17a6eec08fb0527324b5b44ae269441 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Sat, 5 Nov 2022 14:00:38 -0500 Subject: feat(sh): add interactive ripgrep script --- sh/.local/bin/ff | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 sh/.local/bin/ff (limited to 'sh/.local/bin/ff') diff --git a/sh/.local/bin/ff b/sh/.local/bin/ff new file mode 100755 index 0000000..419f031 --- /dev/null +++ b/sh/.local/bin/ff @@ -0,0 +1,29 @@ +#!/bin/sh + +## +# Interactive search. +# Usage: `ff` or `ff `. +# + +SEARCH_PATH=$(printf %s "$1" | sed 's|/$||') +lines=$(tmux display -p "#{pane_height}") +columns=$(tmux display -p "#{pane_width}") +WIDTH=$([ "$columns" -gt "150" ] && printf %s "150" || printf %s "90%") +HEIGHT=$([ "$lines" -gt "50" ] && printf %s "50" || printf %s "90%") +RG_DEFAULT_COMMAND="rga -i -l --hidden --no-ignore-vcs -e {q} $SEARCH_PATH | sed 's|^$SEARCH_PATH/||'" + +selected=$( + FZF_DEFAULT_COMMAND="rga --files $SEARCH_PATH | sed 's|^$SEARCH_PATH/||'" \ + fzf-tmux -p "$WIDTH,$HEIGHT" \ + -m \ + -e \ + --ansi \ + --disabled \ + --header "$(printf %s "$SEARCH_PATH" | sed "s|^$HOME|~|")/" \ + --header-first \ + --bind "change:reload:$RG_DEFAULT_COMMAND || true" \ + --preview-window='right,66%,<80(up,50%,border-bottom)' \ + --preview "rga -i --pretty --context 3 -e {q} $SEARCH_PATH/{}" | cut -d":" -f1,2 +) + +[ -n "$selected" ] && $EDITOR "$selected" -- cgit v1.2.3-70-g09d2