36 lines
1.3 KiB
Bash
36 lines
1.3 KiB
Bash
# show file preview on CTRL+T
|
|
export FZF_DEFAULT_OPTS="--height 90%"
|
|
export FZF_CTRL_T_OPTS="--preview '([[ -d {} ]] && lsd --color always --icon always --tree --depth 3 {} || highlight -O ansi -l {} || (file {} | grep -q text && cat {} || od -A x -t xz -v {})) 2>/dev/null | head -200'"
|
|
export FZF_ALT_C_OPTS="$FZF_CTRL_T_OPTS"
|
|
|
|
# Use tmux pane if available
|
|
export FZF_TMUX=1
|
|
export FZF_TMUX_HEIGHT=90%
|
|
|
|
# attach some extra options to path and dir completion
|
|
eval "_$(declare -f _fzf_path_completion)"
|
|
_fzf_path_completion() {
|
|
FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS $FZF_CTRL_T_OPTS" __fzf_path_completion "$1" "$2"
|
|
}
|
|
|
|
eval "_$(declare -f _fzf_dir_completion)"
|
|
_fzf_dir_completion() {
|
|
FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS $FZF_CTRL_T_OPTS" __fzf_dir_completion "$1" "$2"
|
|
}
|
|
|
|
# Remove duplicate when using Ctrl+R
|
|
# https://github.com/junegunn/fzf/issues/626
|
|
__fzf_history__() (
|
|
local line
|
|
shopt -u nocaseglob nocasematch
|
|
line=$(
|
|
HISTTIMEFORMAT= history | tac | sort --key=2.1 -bus | sort -n |
|
|
FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} $FZF_DEFAULT_OPTS --tac -n2..,.. --tiebreak=index --bind=ctrl-r:toggle-sort $FZF_CTRL_R_OPTS +m" $(__fzfcmd) |
|
|
command grep '^ *[0-9]') &&
|
|
if [[ $- =~ H ]]; then
|
|
sed 's/^ *\([0-9]*\)\** .*/!\1/' <<< "$line"
|
|
else
|
|
sed 's/^ *\([0-9]*\)\** *//' <<< "$line"
|
|
fi
|
|
)
|