FZF_ALT_C_COMMAND= FZF_CTRL_T_COMMAND= source <(fzf --zsh) fzf_smart_file_widget() { local selected local current_word if [[ "${BUFFER: -1}" == " " ]]; then current_word="" else current_word=$(echo "$BUFFER" | awk '{print $NF}') BUFFER=${BUFFER%$current_word} fi selected=$(fd | fzf --multi --query="$current_word" --scheme=path\ --preview 'preview {} $FZF_PREVIEW_LINES' --preview-label='File Preview' |\ sed 's/^\(.*\)$/"\1"/' | tr '\n' ' ') if [[ -n $selected ]]; then BUFFER="$BUFFER$selected" CURSOR=$#BUFFER fi zle redisplay } zle -N fzf_smart_file_widget bindkey '^f' fzf_smart_file_widget