fasd --init env alias a='fasd -a' alias s='fasd -si' alias sd='fasd -sid' alias sf='fasd -sif' alias d='fasd -d' alias f='fasd -f' alias z='fasd_cd -d' alias zz='fasd_cd -d -i' # add zsh hook autoload -Uz add-zsh-hook add-zsh-hook preexec _fasd_preexec # enable command mode completion compctl -U -K _fasd_zsh_cmd_complete -V fasd -x 'C[-1,-*e],s[-]n[1,e]' -c - \ 'c[-1,-A][-1,-D]' -f -- fasd fasd_cd (( $+functions[compdef] )) && { # zsh word mode completion _fasd_zsh_word_complete() { } _fasd_zsh_word_complete_f() { _fasd_zsh_word_complete f ; } _fasd_zsh_word_complete_d() { _fasd_zsh_word_complete d ; } _fasd_zsh_word_complete_trigger() { local _fasd_cur="${words[CURRENT]}" eval $(fasd --word-complete-trigger _fasd_zsh_word_complete $_fasd_cur) } # define zle widgets zle -C fasd-complete complete-word _generic zstyle ':completion:fasd-complete:*' completer _fasd_zsh_word_complete zstyle ':completion:fasd-complete:*' menu-select zle -C fasd-complete-f complete-word _generic zstyle ':completion:fasd-complete-f:*' completer _fasd_zsh_word_complete_f zstyle ':completion:fasd-complete-f:*' menu-select zle -C fasd-complete-d complete-word _generic zstyle ':completion:fasd-complete-d:*' completer _fasd_zsh_word_complete_d zstyle ':completion:fasd-complete-d:*' menu-select } (( $+functions[compdef] )) && { # enable word mode completion orig_comp="$(zstyle -L ':completion:\*' completer 2>> "/dev/null")" if [ "$orig_comp" ]; then case $orig_comp in *_fasd_zsh_word_complete_trigger*);; *) eval "$orig_comp _fasd_zsh_word_complete_trigger";; esac else zstyle ':completion:*' completer _complete _fasd_zsh_word_complete_trigger fi unset orig_comp }