30 lines
		
	
	
	
		
			785 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			785 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
# Easily search for strings within the files within the current directory.
 | 
						|
# Specify file extensions and directories to exclude to improve accuracy.
 | 
						|
# The file selected from fzf will be opened in vim.
 | 
						|
function vfzopen() {
 | 
						|
  echo -n "Search Term: "
 | 
						|
  read search_query
 | 
						|
  echo -n "Filename: "
 | 
						|
  read filetype
 | 
						|
  echo -n "Exclude Directory: "
 | 
						|
  read exclude_dir
 | 
						|
 | 
						|
  if [ ! -z "$exclude_dirs" ]; then
 | 
						|
    filename=$(find . -type f -name "$filetype" | \
 | 
						|
       xargs grep -l "$search_query" | fzf)
 | 
						|
  else
 | 
						|
    filename=$(find . -type f -name "$filetype" -not -path "./${exclude_dir}/*" \
 | 
						|
       | xargs grep -l "$search_query" | fzf)
 | 
						|
  fi
 | 
						|
 | 
						|
 | 
						|
  if [ ! -z "$filename" ]; then
 | 
						|
    echo "$filename"
 | 
						|
    vim +/"$search_query" "$filename"
 | 
						|
    return 0
 | 
						|
  else
 | 
						|
    return 1
 | 
						|
  fi
 | 
						|
}
 |