64 lines
1.8 KiB
Bash
64 lines
1.8 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'
|
|
|
|
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
|
|
|
|
# No need to continue if the command is not present
|
|
_command_exists fzf || return
|
|
|
|
if [ -z ${FZF_DEFAULT_COMMAND+x} ] && _command_exists fd
|
|
then
|
|
export FZF_DEFAULT_COMMAND='fd --type f'
|
|
fi
|
|
|
|
function fe()
|
|
{
|
|
############ STACK_TRACE_BUILDER #####################
|
|
Function_Name="${FUNCNAME[0]}"
|
|
Function_PATH="${Function_PATH}/${Function_Name}"
|
|
######################################################
|
|
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[@]}"
|
|
############### Stack_TRACE_BUILDER ################
|
|
Function_PATH="$( dirname ${Function_PATH} )"
|
|
####################################################
|
|
}
|
|
|
|
|
|
function fcd()
|
|
{
|
|
############ STACK_TRACE_BUILDER #####################
|
|
Function_Name="${FUNCNAME[0]}"
|
|
Function_PATH="${Function_PATH}/${Function_Name}"
|
|
######################################################
|
|
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"
|
|
############### Stack_TRACE_BUILDER ################
|
|
Function_PATH="$( dirname ${Function_PATH} )"
|
|
####################################################
|
|
}
|
|
|