#!/usr/bin/env bash # Credit: https://github.com/junegunn/fzf/blob/master/ADVANCED.md # Requires bash. # 1. Search for text in files using Ripgrep # 2. Interactively narrow down the list using fzf # 3. Open the file in Vim IFS=: read -ra selected < <( rg \ --color=always \ --line-number \ --no-heading \ --smart-case \ --iglob !/Library/** \ --iglob !/System/** \ --iglob "!Users/$HOME/Library/*" \ "${*:-}" | fzf --ansi \ --color "hl:-1:underline,hl+:-1:underline:reverse" \ --delimiter : \ --preview 'bat --color=always {1} --highlight-line {2}' \ --preview-window 'up,60%,border-bottom,+{2}+3/3,~3' ) [ -n "${selected[0]}" ] && nvim "${selected[0]}" "+${selected[1]}"