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.
Feature | fasd |
fasder |
---|---|---|
Brew formulae | ❌ | ✅ wyne/tap/fasder |
Aliases | ✅ f, a, s, d, z | ✅ f, a, d, j, jj, v, vv |
Man page | ✅ | ❌ |
Shell support | zsh, bash, tcsh | zsh |
Detect sub-shells | ✅ | ✅ |
Ranking | ||
Shell Hooks | ✅ | ✅ |
Incr. on exec (-e ) |
✅ | ✅ |
Decay | ✅ | ✅ |
Matching | details | see Matching |
Backends | neovim, vim, spotlight | neovim |
Flags | ||
-h help |
✅ | ✅ |
-f files |
✅ | ✅ |
-d directories |
✅ | ✅ |
-a all |
✅ | ✅ |
-e execute |
✅ | ✅ |
-l list without ranks |
✅ | ✅ |
-t recent access only |
✅ | ❌ |
-b specify backend |
✅ | ❌ |
-i interactive |
✅ | ❌ |
-s list ranks |
✅ | ✅ |
-r sort by rank |
✅ | ❌ |
-[0-9] nth entry |
✅ | ❌ |
-B additional backend |
✅ | ❌ |
-R reverse |
✅ | ✅ |
Utility Flags | ||
-A , --add |
✅ | ✅ |
-D , --delete |
✅ | ❌ |
Internal Flags | ||
--sanitize |
✅ | ✅ |
--proc |
✅ | ✅ |
Download and install go
: https://go.dev/doc/install
go build
will output a fasder
binary in the current directory.