42 lines
1.0 KiB
Bash
42 lines
1.0 KiB
Bash
|
# Load after the system completion to make sure that the fzf completions are working
|
||
|
# BASH_IT_LOAD_PRIORITY: 375
|
||
|
|
||
|
cite about-plugin
|
||
|
about-plugin 'load fzf, if you are using it'
|
||
|
|
||
|
_command_exists fzf || return
|
||
|
|
||
|
if [ -r ~/.fzf.bash ] ; then
|
||
|
source ~/.fzf.bash
|
||
|
elif [ -r "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.bash ] ; then
|
||
|
source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.bash
|
||
|
fi
|
||
|
|
||
|
if [ -z ${FZF_DEFAULT_COMMAND+x} ] && _command_exists fd ; then
|
||
|
export FZF_DEFAULT_COMMAND='fd --type f'
|
||
|
fi
|
||
|
|
||
|
fe() {
|
||
|
about "Open the selected file in the default editor"
|
||
|
group "fzf"
|
||
|
param "1: Search term"
|
||
|
example "fe foo"
|
||
|
|
||
|
local IFS=$'\n'
|
||
|
local files
|
||
|
files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0))
|
||
|
[[ -n "$files" ]] && ${EDITOR:-vim} "${files[@]}"
|
||
|
}
|
||
|
|
||
|
fcd() {
|
||
|
about "cd to the selected directory"
|
||
|
group "fzf"
|
||
|
param "1: Directory to browse, or . if omitted"
|
||
|
example "fcd aliases"
|
||
|
|
||
|
local dir
|
||
|
dir=$(find ${1:-.} -path '*/\.*' -prune \
|
||
|
-o -type d -print 2> /dev/null | fzf +m) &&
|
||
|
cd "$dir"
|
||
|
}
|