init
This commit is contained in:
53
.zprezto/modules/fasd/init.zsh
Normal file
53
.zprezto/modules/fasd/init.zsh
Normal file
@@ -0,0 +1,53 @@
|
||||
#
|
||||
# Maintains a frequently used file and directory list for fast access.
|
||||
#
|
||||
# Authors:
|
||||
# Wei Dai <x@wei23.net>
|
||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||
#
|
||||
|
||||
# Load dependencies.
|
||||
pmodload 'editor'
|
||||
|
||||
# Return if requirements are not found.
|
||||
if (( ! $+commands[fasd] )); then
|
||||
return 1
|
||||
fi
|
||||
|
||||
#
|
||||
# Initialization
|
||||
#
|
||||
|
||||
cache_file="${0:h}/cache.zsh"
|
||||
if [[ "${commands[fasd]}" -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
|
||||
|
||||
# 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'
|
Reference in New Issue
Block a user