Skip to content

Commit

Permalink
[Fix sorin-ionescu#129, Fix sorin-ionescu#211] Add fasd
Browse files Browse the repository at this point in the history
  • Loading branch information
RIT80 authored and RIT80 committed Sep 30, 2012
1 parent e822355 commit ed0cff0
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 0 deletions.
39 changes: 39 additions & 0 deletions modules/fasd/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
Fasd
====

[Fasd][1] is a command-line productivity booster, inspired by tools like
[autojump][2], [z][3] and [v][4], it offers quick access to files and
directories by keeping track of files and directories that were previously
accessed.

For completion to work, this module must be loaded **after** the *completion*
module.

The Prezto Fasd configuration differs from the default. The default aliases have
been disabled.

Aliases
-------

- `j` changes the current working directory interactively.

Completion
----------

Type `,`, `f,`, `d,` in front of a comma-separated query or type `,,`, `,,f`,
`,,d` at the end of a comma-separated query then hit <kbd>tab</kbd>.

Authors
-------

*The authors of this module should be contacted via the [issue tracker][5].*

- [Wei Dai](https://github.com/clvv)
- [Sorin Ionescu](https://github.com/sorin-ionescu)

[1]: https://github.com/clvv/fasd
[2]: https://github.com/joelthelion/autojump
[3]: https://github.com/rupa/z
[4]: https://github.com/rupa/v
[5]: https://github.com/sorin-ionescu/prezto/issues

54 changes: 54 additions & 0 deletions modules/fasd/init.zsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#
# Maintains a frequently used file and directory list for fast access.
#
# Authors:
# Wei Dai <[email protected]>
# Sorin Ionescu <[email protected]>
#

# 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'

0 comments on commit ed0cff0

Please sign in to comment.