update HyDE
This commit is contained in:
77
.config/zsh/functions/fzf.zsh
Normal file
77
.config/zsh/functions/fzf.zsh
Normal file
@@ -0,0 +1,77 @@
|
||||
# best fzf aliases ever
|
||||
_fuzzy_change_directory() {
|
||||
local initial_query="$1"
|
||||
local selected_dir
|
||||
local fzf_options=('--preview=ls -p {}' '--preview-window=right:60%')
|
||||
fzf_options+=(--height "80%" --layout=reverse --preview-window right:60% --cycle)
|
||||
local max_depth=7
|
||||
|
||||
if [[ -n "$initial_query" ]]; then
|
||||
fzf_options+=("--query=$initial_query")
|
||||
fi
|
||||
|
||||
#type -d
|
||||
selected_dir=$(find . -maxdepth $max_depth \( -name .git -o -name node_modules -o -name .venv -o -name target -o -name .cache \) -prune -o -type d -print 2>/dev/null | fzf "${fzf_options[@]}")
|
||||
|
||||
if [[ -n "$selected_dir" && -d "$selected_dir" ]]; then
|
||||
cd "$selected_dir" || return 1
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
_fuzzy_edit_search_file_content() {
|
||||
# [f]uzzy [e]dit [s]earch [f]ile [c]ontent
|
||||
local selected_file
|
||||
local fzf_options=()
|
||||
local preview_cmd
|
||||
if command -v "bat" &>/dev/null; then
|
||||
preview_cmd=('bat --color always --style=plain --paging=never {}')
|
||||
else
|
||||
preview_cmd=('cat {}')
|
||||
fi
|
||||
fzf_options+=(--height "80%" --layout=reverse --cycle --preview-window right:60% --preview ${preview_cmd[@]})
|
||||
selected_file=$(grep -irl "${1:-}" ./ | fzf "${fzf_options[@]}")
|
||||
|
||||
if [[ -n "$selected_file" ]]; then
|
||||
if command -v "$EDITOR" &>/dev/null; then
|
||||
"$EDITOR" "$selected_file"
|
||||
else
|
||||
echo "EDITOR is not specified. using vim. (you can export EDITOR in ~/.zshrc)"
|
||||
vim "$selected_file"
|
||||
fi
|
||||
|
||||
else
|
||||
echo "No file selected or search returned no results."
|
||||
fi
|
||||
}
|
||||
|
||||
_fuzzy_edit_search_file() {
|
||||
local initial_query="$1"
|
||||
local selected_file
|
||||
local fzf_options=()
|
||||
fzf_options+=(--height "80%" --layout=reverse --preview-window right:60% --cycle)
|
||||
local max_depth=5
|
||||
|
||||
if [[ -n "$initial_query" ]]; then
|
||||
fzf_options+=("--query=$initial_query")
|
||||
fi
|
||||
|
||||
# -type f: only find files
|
||||
selected_file=$(find . -maxdepth $max_depth -type f 2>/dev/null | fzf "${fzf_options[@]}")
|
||||
|
||||
if [[ -n "$selected_file" && -f "$selected_file" ]]; then
|
||||
if command -v "$EDITOR" &>/dev/null; then
|
||||
"$EDITOR" "$selected_file"
|
||||
else
|
||||
echo "EDITOR is not specified. using vim. (you can export EDITOR in ~/.zshrc)"
|
||||
vim "$selected_file"
|
||||
fi
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
alias ffec='_fuzzy_edit_search_file_content' \
|
||||
ffcd='_fuzzy_change_directory' \
|
||||
ffe='_fuzzy_edit_search_file'
|
Reference in New Issue
Block a user