dotfiles/.config/shell/rc.d/fuzzy-finding.sh
Marty Oehme 9df014fa62 Replace rifle with xdg-open for fuzzy file opening
rifle is going away soon with ranger being replaced by vifm in these
dotfiles. To be prepared, and make them more universal, the fuzzy file
finder uses xdg-open to open any files.
2019-07-03 22:27:57 +02:00

38 lines
1.3 KiB
Bash

#!/bin/sh
# check for existence of fuzzy finders. If found, substitute fzf with it.
# order is skim > fzy > fzf > nothing
if type sk >/dev/null 2>&1; then
alias fzf=sk
elif type fzy >/dev/null 2>&1; then
echo "[WARNING]: fzy found as fuzzy finder - install skim to use full script functionality"
alias fzf=fzy
elif type fzf >/dev/null 2>&1; then
echo "[WARNING]: fzf found as fuzzy finder - install skim to use full script functionality"
alias fzf=fzf
else
echo "[WARNING]: No fuzzy finder found - install skim to enable functionality"
fi
# check for existence of greplikes. If found, substitute fzf with it.
# order is skim > fzy > fzf > nothing
if type rg >/dev/null 2>&1; then
alias rg=rg
elif type ag >/dev/null 2>&1; then
alias rg=ag
elif type ack >/dev/null 2>&1; then
alias rg=ack
else
echo "[WARNING]: No grep-like found - install ripgrep/the silver surfer (ag)/ack to enable functionality"
fi
# set up fuzzy file and directory search
alias f="fzf -c 'find . -type f' --preview='head -$LINES {}' | xargs xdg-open"
alias F="fzf -c 'find ~ -type f' --preview='head -$LINES {}' | xargs xdg-open"
alias d="fzf -c 'find . -type d' --preview='ls --color='always' {}' | cd"
alias D="fzf -c 'find ~ -type d' --preview='ls --color='always' {}' --color=dark --ansi | cd"
# Display fuzzy-searchable history
alias zhfind="history | fzf --tac --height 20"