diff --git a/modules/fasd/functions/_fasd_preexec b/modules/fasd/functions/_fasd_preexec deleted file mode 100644 index 1157fac..0000000 --- a/modules/fasd/functions/_fasd_preexec +++ /dev/null @@ -1 +0,0 @@ -{ eval "fasd --proc $(fasd --sanitize $2)"; } >> "/dev/null" 2>&1 diff --git a/modules/fasd/functions/_fasd_zsh_cmd_complete b/modules/fasd/functions/_fasd_zsh_cmd_complete deleted file mode 100644 index 28d0680..0000000 --- a/modules/fasd/functions/_fasd_zsh_cmd_complete +++ /dev/null @@ -1,5 +0,0 @@ -# zsh command mode completion -local compl -read -c compl -(( $+compstate )) && compstate[insert]=menu # no expand if compsys loaded -reply=(${(f)"$(fasd --complete "$compl")"}) diff --git a/modules/fasd/functions/fasd_cd b/modules/fasd/functions/fasd_cd deleted file mode 100644 index 426d1c0..0000000 --- a/modules/fasd/functions/fasd_cd +++ /dev/null @@ -1,8 +0,0 @@ -# function to execute built-in cd -if [ $# -le 1 ]; then - fasd "$@" -else - local _fasd_ret="$(fasd -e 'printf %s' "$@")" - [ -z "$_fasd_ret" ] && return 1 - [ -d "$_fasd_ret" ] && cd "$_fasd_ret" || printf %s\n "$_fasd_ret" -fi diff --git a/modules/fasd/init.zsh b/modules/fasd/init.zsh index 7f86ea9..cc05f62 100644 --- a/modules/fasd/init.zsh +++ b/modules/fasd/init.zsh @@ -1,18 +1,41 @@ fasd --init env +# function to execute built-in cd +fasd_cd() { + if [ $# -le 1 ]; then + fasd "$@" + else + local _fasd_ret="$(fasd -e 'printf %s' "$@")" + [ -z "$_fasd_ret" ] && return + [ -d "$_fasd_ret" ] && cd "$_fasd_ret" || printf %s\n "$_fasd_ret" + fi +} + 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 v='f -e vim -b viminfo' alias z='fasd_cd -d' alias zz='fasd_cd -d -i' # add zsh hook +_fasd_preexec() { + { eval "fasd --proc $(fasd --sanitize $2)"; } >> "/dev/null" 2>&1 +} autoload -Uz add-zsh-hook add-zsh-hook preexec _fasd_preexec +# zsh command mode completion +_fasd_zsh_cmd_complete() { + local compl + read -c compl + (( $+compstate )) && compstate[insert]=menu # no expand if compsys loaded + reply=(${(f)"$(fasd --complete "$compl")"}) +} + # 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 @@ -20,6 +43,15 @@ compctl -U -K _fasd_zsh_cmd_complete -V fasd -x 'C[-1,-*e],s[-]n[1,e]' -c - \ (( $+functions[compdef] )) && { # zsh word mode completion _fasd_zsh_word_complete() { + [ "$2" ] && local _fasd_cur="$2" + [ -z "$_fasd_cur" ] && local _fasd_cur="${words[CURRENT]}" + local fnd="${_fasd_cur//,/ }" + local typ=${1:-e} + fasd --query $typ "$fnd" 2>> "/dev/null" | \ + sort -nr | sed 's/^[^ ]*[ ]*//' | while read -r line; do + compadd -U -V fasd "$line" + done + compstate[insert]=menu # no expand } _fasd_zsh_word_complete_f() { _fasd_zsh_word_complete f ; } _fasd_zsh_word_complete_d() { _fasd_zsh_word_complete d ; }