30 lines
746 B
Bash
30 lines
746 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
|
||
|
vim "$filename"
|
||
|
return 0
|
||
|
else
|
||
|
return 1
|
||
|
fi
|
||
|
}
|