Changing the layout
See https://github.com/junegunn/fzf/wiki/Configuring-shell-key-bindings#changing-the-layout
zsh
Dedicated completion key
Instead of using TAB key with a trigger sequence (**<TAB>), you can assign a dedicated key for fuzzy completion while retaining the default behavior of TAB key.
Add the following lines after eval "$(fzf --zsh)" (or source <(fzf --zsh) or source ~/.fzf.zsh)
export FZF_COMPLETION_TRIGGER=''
bindkey '^T' fzf-completion
bindkey '^I' $fzf_default_completion
Then CTRL-T will trigger context-aware fuzzy completion.
For bash, see https://github.com/junegunn/fzf/issues/1804.
Caveats
setopt vi
setopt vi resets TAB key binding, so unless you've assigned a dedicated key, fuzzy completion will become unavailable.
> bindkey '^I'
"^I" fzf-completion
> setopt vi
> bindkey '^I'
"^I" expand-or-complete
So make sure that .fzf.zsh (or completion.zsh) is sourced after setopt vi.