Files
.dotfiles/zsh/config.d/fzf.zsh
2025-04-01 01:00:13 -04:00

30 lines
621 B
Bash

cdf_preview() {
if [ -d $1 ]; then
tree -L 1 $1
else
cat $1
fi
}
# cdf - cd with fuzzy finder
# Usage: cdf [path]
cdf() {
local fd_options fzf_options target
fd_options=(
--hidden
)
fzf_options=(
# --preview='echo {}'
--preview='([[ -d {} ]] && tree -L 1 {}) || ([[ -L {} ]] && ls -al {}) || cat {}'
--bind=ctrl-space:toggle-preview
--exit-0
)
target="$(fdfind . "${1:-.}" "${fd_options[@]}" | fzf "${fzf_options[@]}")"
([[ -f "$target" ]] || [[ -L "$target" ]]) && target="${target%/*}"
cd "$target" || return 1
}