add bash-it
This commit is contained in:
42
dot_bash_it/plugins/available/fzf.plugin.bash
Normal file
42
dot_bash_it/plugins/available/fzf.plugin.bash
Normal file
@@ -0,0 +1,42 @@
|
||||
# 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
|
||||
|
||||
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"
|
||||
}
|
||||
Reference in New Issue
Block a user