diff --git a/.config/shell/rc.d/enable-fasd-hook.sh b/.config/shell/rc.d/enable-fasd-hook.sh index 4fb3666..7d915a2 100644 --- a/.config/shell/rc.d/enable-fasd-hook.sh +++ b/.config/shell/rc.d/enable-fasd-hook.sh @@ -1,6 +1,7 @@ #!/bin/sh # more usage instructions at https://github.com/clvv/fasd -eval "$(fasd --init zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install)" +eval "$(fasd --init posix-hook posix_alias bash-hook zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install)" +# eval "$(fasd --init auto)" alias a='fasd -a' # any alias s='fasd -si' # show / search / select @@ -10,3 +11,17 @@ alias s='fasd -si' # show / search / select # alias sf='fasd -sif' # interactive file selection alias z='fasd_cd -d' # cd, same functionality as j in autojump alias zz='fasd_cd -d -i' # cd with interactive selection + +# from: https://github.com/clvv/fasd/issues/10 +# since I can only load auto configuration and have default fasd_cd AND useless aliases +# or manually load the modules and NOT have fasd_cd +# it's easier to use this function +fasd_cd() { + fasd_ret="$(fasd -d "$@")" + if [ -d "$fasd_ret" ]; then + cd "$fasd_ret" || exit + else + print "$fasd_ret" + fi + unset fasd_ret +}