Fasder lets you access files and directories lightning quick.
It remembers which files and directories you use most frequently, so you can access
them in just a few keystrokes.
Installation • Usage • Why Fasder? • Features
Fasder is a modern reimagining of clvv/fasd that offers zoxide-style “frecent” (frequent + recent) access to files and directories.
Fasder tracks your most-used files and directories and lets you access them with minimal keystrokes. Need to reopen your .zshrc
? Just type v zsh
from any directory.
- Fast access: Open your frequently-used files and directories with just a few characters.
- Minimal setup: Works out of the box with default aliases or customize it as you like.
- Works anywhere: Paths are always expanded in full so you can access from any directory.
- Powerful shortcuts: Built-in commands let you launch, edit, and navigate effortlessly.
v def conf # => vim /some/awkward/path/to/type/default.conf
j abc # => cd /hell/of/a/awkward/path/to/get/to/abcdef
m movie # => mplayer /path/to/awesome_movie.mp4
vim `f rc lo` # => vim /etc/rc.local
brew install wyne/tap/fasder
echo 'eval "$(fasder --init auto)"' >> ~/.zshrc
brew install wyne/tap/fasder fzf
echo 'eval "$(fasder --init auto aliases)"' >> ~/.zshrc
cp ~/.fasd ~/.fasder
Pass aliases
to init, example: --init auto aliases
, to install these aliases:
a # list files and directories
d # directories only
f # files only
v, vv # open file in $EDITOR, vv for interactive
j, jj # cd, jj for interactive
v def conf # vim /awkward/path/default.conf
j abc # cd /awkward/path/abcdef
vv foo # Interactive file selection with fzf
jj foo # Interactive directory navigation with fzf
The provided v
and vv
commands execute with program set in $EDITOR
.
Configure with: export EDITOR=nvim
.
fasder {query} # files and directories
fasder -d {query} # directories only
fasder -f {query} # files only
{query} can be left empty to return all results
Example composition
alias a='fasder' # both files and directories
alias d='fasder -d' # directories only
alias f='fasder -f' # files only
alias v='f -e $EDITOR' # open file with $EDITOR
vim `f rc lo` # on-the-fly command
See shell.go for provided aliases.
fasder [options] [query ...]
options:
--init Initialize fasder. Args: auto aliases
-d, --directories Dirs only
-e, --exec {cmd} Execute provided command against best match
-f, --files Files only
-h, --help Show this message
-l, --list List only. Omit rankings
-R, --reverse Reverse sort. Useful to pipe into fzf
-s, --s Show rank scores
-v, --version View version
Matching works similarly to zoxide and obeys the following rules:
- The last word in the query must match the last segment of a path (split by "/" or ".").
conf
will matchworkspace/conf
but notconf/project
conf yml
will matchconfig.yml
orconfig/init.yml
- Query words are matched in order to paths
conf tmu
will matchconfig/tmux
but nottmux/config.yml
.
- Path segment matches do not have to be adjacent
work sub
will matchworkspace/project/sub
zoxide
is great for directories. Fasder goes further—giving you quick access to both directories and files.
fasd
inspired fasder
, but it’s now archived and written as a single, dense shell script. Fasder is built in a modern language, making it easier to read, maintain, and expand for more use cases.
- Brew Formulae (
brew install wyne/tap/fasder
) - Aliases
- man page
- Shell Support
- Detect subshells
- zsh
- autocomplete
- bash
- tcsh
- Ranking
- Shell hook to rank during normal operations
- Increment score on execution with -e flag
- Decay
- Matching
- Last segment matching
- Multiple path segment matching. Ex: {dir substr} {file substr} (ref)
- Full path matching. Ex: /some/dir/file
- Backends
-
fasd
format in~/.fasder
- neovim
- plugin fasder.nvim
- shada
- vim - viminfo
- spotlight
- recently used
-
- Flags
-
-R
reverse -
-l
list paths without ranks -
-f
files -
-e
execute -
-t
recent access only -
-[0-9]
nth entry -
-b
only use backend -
-B
additional backend -
-i
interactive
-