It's basically a file/dir cder with fzf I'm trying to make the last conditional part working that checks wether the fzf picked output is a file or a dir and use the command cd OR goto accordinglly
Here's the code:
command! FZFCd : set noquickview
\| let $FZF_PICK = term('fd --type directory | fzf-tmux --ansi
\ --bind "start:transform-header(echo ${Cwd})+execute-silent(echo "$Cwd" | tee /tmp/fpicker-dir)"
\ --bind "ctrl-r:transform([[ -n {q} ]] && echo \"execute-silent(echo {q} | tee /tmp/fpicker-dir)\" || echo \"execute-silent(echo ${Cwd} | tee /tmp/fpicker-dir)\")+transform-query(cat /tmp/fpicker-dir)+transform-header(cat /tmp/fpicker-dir)+transform:[[ {fzf:prompt} =~ Files ]] &&
\ echo \"reload(fd --hidden --type file . {q})+transform-header(cat /tmp/fpicker-dir)+change-query()\" ||
\ echo \"reload(fd --hidden --type directory . {q})+transform-header(cat /tmp/fpicker-dir)+change-query()\""
\ --bind "ctrl-e:execute-silent(echo \"/\" > /tmp/fpicker-dir)+transform-header(cat /tmp/fpicker-dir)+transform:[[ {fzf:prompt} =~ Files ]] &&
\ echo \"reload(fd --hidden --type file . \"/\")+transform-header(cat /tmp/fpicker-dir)\" ||
\ echo \"reload(fd --hidden --type directory . \"/\")+transform-header(cat /tmp/fpicker-dir)\""
\ --bind "ctrl-d:execute-silent(echo \"/home/pong/\" > /tmp/fpicker-dir)+transform-header(cat /tmp/fpicker-dir)+transform:[[ {fzf:prompt} =~ Files ]] &&
\ echo \"reload(fd --hidden --type file . \"/home/pong/.config\")+transform-header(cat /tmp/fpicker-dir)\" ||
\ echo \"reload(fd --hidden --type directory . \"/home/pong/.config\")+transform-header(cat /tmp/fpicker-dir)\""
\ --bind "ctrl-b:execute-silent(echo \"$Cwd\" > /tmp/fpicker-dir)+transform-header(cat /tmp/fpicker-dir)+transform:[[ {fzf:prompt} =~ Files ]] &&
\ echo \"reload(fd --hidden --type file . \"/home/pong/.config\")+transform-header(cat /tmp/fpicker-dir)\" ||
\ echo \"reload(fd --hidden --type directory . \"/home/pong/.config\")+transform-header(cat /tmp/fpicker-dir)\""
\ --bind "ctrl-t:transform(echo {fzf:query} > /tmp/fzf-q)+transform-query(cat /tmp/fpicker-dir)+transform:[[ ! {fzf:prompt} =~ Files ]] &&
\ echo \"change-prompt(Files >)+reload(fd --hidden --type file . {q})+transform-header(cat /tmp/fpicker-dir)+transform-query(cat /tmp/fzf-q)\" ||
\ echo \"change-prompt(Dirs >)+reload(fd --hidden --type directory . {q})+transform-header(cat /tmp/fpicker-dir)+transform-query(cat /tmp/fzf-q)\""
\ --preview "[[ \$FZF_PROMPT =~ Files ]] && bat --color=always {} || tree -C {}"
\ --header "My new header"
\ --prompt "Dirs >"
\ --border "rounded"
\ --border-label "CD Tool"')
\| if filetype('$FZF_PICK') == "dir"
\| echo "Its a dir!"
\| execute 'cd' fnameescape($FZF_PICK)
\| else
\| echo "Its a file!"
\| execute 'goto' fnameescape($FZF_PICK)
\| endif