# # Maintains a frequently used file and directory list for fast access. # # Authors: # Wei Dai # Sorin Ionescu # # Load dependencies. pmodload 'editor' # If the command doesn't exist externally, we need to fall back to the bundled # submodule. if (( ! $+commands[fasd] )); then source "${0:h}/external/fasd" || return 1 fi # # Initialization # cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/fasd-cache.zsh" if [[ "${commands[fasd]}" -nt "$cache_file" \ || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ || ! -s "$cache_file" ]]; then # Set the base init arguments. init_args=(zsh-hook) # Set fasd completion init arguments, if applicable. if zstyle -t ':prezto:module:completion' loaded; then init_args+=(zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install) fi mkdir -p "$cache_file:h" # Cache init code. fasd --init "$init_args[@]" >! "$cache_file" 2> /dev/null fi source "$cache_file" unset cache_file init_args function fasd_cd { local fasd_ret="$(fasd -d "$@")" if [[ -d "$fasd_ret" ]]; then cd "$fasd_ret" else print "$fasd_ret" fi } # # Aliases # # Changes the current working directory interactively. alias j='fasd_cd -i'