While in bash you can externally register custom completion functions
using `complete` command, it was not possible to do so in zsh without
changing completion.zsh as the name of the supported commands are
hard-coded within the code (See #362). With this commit, fzf-completion
of zsh will first look if `_fzf_COMMAND_completion` exists and calls the
function, so one can externally define completion functions for specific
commands.
This commit also tries to make the interface of (yet undocumented)
_fzf_list_completion helper function consistent across bash and zsh.
So the following code works both on bash and zsh.
_fzf_pass_completion() {
local pwdir=${PASSWORD_STORE_DIR-~/.password-store/}
local stringsize="${#pwdir}"
let "stringsize+=1"
_fzf_list_completion '+m' "$@" << "EOF"
find "$pwdir" -name "*.gpg" -print | cut -c "$stringsize"- | sed -e 's/\(.*\)\.gpg/\1/'
EOF
}
# Only on bash
complete -F _fzf_pass_completion -o default -o bashdefault pass
Note that the suggested convention and the interface are not yet final
and subject to change.
/cc @d4ndo
- Add `--history` option (e.g. fzf --history ~/.fzf.history)
- Add `--history-max` option for limiting the size of the file (default 1000)
- Add `previous-history` and `next-history` actions for `--bind`
- CTRL-P and CTRL-N are automatically remapped to these actions when
`--history` is used
Closes#249, #251
- Use symlinks instead of generating the full content
- Update fish_user_paths and remove ~/.config/fish/functions/fzf.fish
- Create wrapper script for fzf when Ruby version and use it instead of
exported function not to break fzf-tmux