 761b7700ab
			
		
	
	
		761b7700ab
		
	
	
	
	
		
			
			"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.
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			773 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			32 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
 |