Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
FASD(1) 		     General Commands Manual			 FASD(1)

NAME
     fasd - quick access to files and directories

SYNOPSIS
     fasd [options] [query ...]

     [f|a|s|d|z] [options] [query ...]

     fasd [-A|-D] [paths ...]

OPTIONS
	    -s	       list paths with ranks
	    -l	       list paths without ranks
	    -i	       interactive mode
	    -e <cmd>   set command to execute on the result file
	    -b <name>  only use <name> backend
	    -B <name>  add additional backend <name>
	    -a	       match files and directories
	    -d	       match directories only
	    -f	       match files only
	    -r	       match by rank only
	    -t	       match by recent access only
	    -R	       reverse listing order
	    -h	       show a brief help message
	    -[0-9]     select the nth entry

DESCRIPTION
     Fasd  keeps  track  of  files  and directories you access in your shell and
     gives you quick access to them.  You can use fasd to reference files or di-
     rectories by just a few key identifying characters.  You can  use	fasd  to
     boost your command line productivity by defining your own aliases to launch
     programs  on  files  or directories.  Fasd, by default, provides some basic
     aliases, including a shell function "z" that resembles the functionality of
     "z" and "autojump."

     The  name	"fasd"	comes  from  the  default  suggested  aliases  f(files),
     a(files/directories), s(show/search/select), d(directories).

     Fasd  ranks  files  and  directories  by "frecency," that is, by both "fre-
     quency" and "recency." The term "frecency" was first coined by Mozilla  and
     used in Firefox.

EXAMPLES
	    z bundle
	    f -e vim nginx conf
	    f -i rc$
	    vi `f nginx conf`
	    cp update.html `d www`
	    open `sf pdf`

SHELL INITIALIZATION
     To  get fasd working in a shell, some initialization code must be run.  Put
     lines below in your POSIX compatible shell rc.

	    eval "$(fasd --init auto)"

     This will setup a command hook that executes on every command and	advanced
     tab completion for zsh and bash.

     If  you  want  more control over what gets into your shell environment, you
     can pass customized set of arguments to fasd --init.

	    zsh-hook		 # define _fasd_preexec and add it to zsh preexec array
	    zsh-ccomp		 # zsh command mode completion definitions
	    zsh-ccomp-install	 # setup command mode completion for zsh
	    zsh-wcomp		 # zsh word mode completion definitions
	    zsh-wcomp-install	 # setup word mode completion for zsh
	    bash-hook		 # add hook code to bash $PROMPT_COMMAND
	    bash-ccomp		 # bash command mode completion definitions
	    bash-ccomp-install	 # setup command mode completion for bash
	    posix-alias 	 # define aliases that applies to all posix shells
	    posix-hook		 # setup $PS1 hook for shells that's posix compatible
	    tcsh-alias		 # define aliases for tcsh
	    tcsh-hook		 # setup tcsh precmd alias

     Example for a minimal zsh setup (no tab completion):

	    eval "$(fasd --init posix-alias zsh-hook)"

     Note that this method will slightly  increase  your  shell  start-up  time,
     since  calling  binaries has overhead.  You can cache fasd init code if you
     want minimal overhead.  Example code for bash (to be put into .bashrc):

	    fasd_cache="$HOME/.fasd-init-bash"
	    if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then
	      fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install >| "$fasd_cache"
	    fi
	    source "$fasd_cache"
	    unset fasd_cache

     Optionally, if you can also source fasd if you want  fasd	to  be	a  shell
     function instead of an executable.

     You  can  tweak  initialization code.  For instance, if you want to use "c"
     instead of "z" to do directory jumping, you can use the alias below:

	    alias c='fasd_cd -d'
	    # `-d' option present for bash completion
	    # function fasd_cd is defined in posix-alias

MATCHING
     Fasd has three matching modes: default, case-insensitive, and fuzzy.

     For a given set of queries (the set of  command-line  arguments  passed  to
     fasd), a path is a match if and only if:

     1. Queries match the path in order.

     2. The last query matches the last segment of the path.

     If  no  match  is	found, fasd will try the same process ignoring case.  If
     still no match is found, fasd will allow extra characters to be placed  be-
     tween query characters for fuzzy matching.

     Tips:

     * If  you	want  your last query not to match the last segment of the path,
       append `/' as the last query.

     * If you want your last query to match the end of the filename, append  `$'
       to the last query.

COMPATIBILITY
     Fasd's  basic  functionalities are POSIX compliant, meaning that you should
     be able to use fasd in all POSIX compliant shells.  Your shell need to sup-
     port command substitution in $PS1 in order for fasd to automatically  track
     your  commands and files.	This feature is not specified by the POSIX stan-
     dard, but it's nonetheless present in  many  POSIX  compliant  shells.   In
     shells  without prompt command or prompt command substitution (tcsh for in-
     stance), you can add entries manually with "fasd -A".  You  are  very  wel-
     comed to contribute shell initialization code for not yet supported shells.

TAB COMPLETION
     Fasd  offers  two	completion  modes, command mode completion and word mode
     completion.  Command mode completion works in bash and zsh.  Word mode com-
     pletion only works in zsh.

     Command mode completion is just like completion for any other commands.  It
     is triggered when you hit tab on a fasd command or its aliases.  Under this
     mode your queries can be separated by a space.  Tip: if you find  that  the
     completion  result  overwrites your queries, type an extra space before you
     hit tab.

     Word mode completion can be triggered on any command.  Word  completion  is
     triggered	by  any  command  line argument that starts with "," (all), "f,"
     (files), or "d,"  (directories),  or  that  ends  with  ",,"  (all),  ",,f"
     (files), or ",,d" (directories).  Examples:

	    $ vim ,rc,lo<Tab>
	    $ vim /etc/rc.local

	    $ mv index.html d,www<Tab>
	    $ mv index.html /var/www/

     There  are  also  three  zle  widgets:  "fasd-complete", "fasd-complete-f",
     "fasd-complete-d".  You can bind them to keybindings you like:

	    bindkey '^X^A' fasd-complete    # C-x C-a to do fasd-complete (fils and directories)
	    bindkey '^X^F' fasd-complete-f  # C-x C-f to do fasd-complete-f (only files)
	    bindkey '^X^D' fasd-complete-d  # C-x C-d to do fasd-complete-d (only directories)

BACKENDS
     Fasd can take advantage of different sources of recent  /	frequent  files.
     Most  desktop  environments  (like  Gtk) and some editors (like Vim) keep a
     list of accessed files.  Fasd can use them as additional  backends  if  the
     data  can be converted into fasd's native format.	As of now, fasd supports
     Gtk's recently-used.xbel and Vim's viminfo backends.  You can  define  your
     own  backend by declaring a function by that name in your .fasdrc.  You set
     default backend with _FASD_BACKENDS variable in our .fasdrc.

TWEAKS
     Upon every execution, fasd will source "/etc/fasdrc" and "$HOME/.fasdrc" if
     they are present.	Below are some variables you can set:

	    $_FASD_DATA
	    Path to the fasd data file, default "$HOME/.fasd".

	    $_FASD_BLACKLIST
	    List of blacklisted strings. Commands matching them will not be processed.
	    Default is "--help".

	    $_FASD_SHIFT
	    List of all commands that needs to be shifted, defaults to "sudo busybox".

	    $_FASD_IGNORE
	    List of all commands that will be ignored, defaults to "fasd ls echo".

	    $_FASD_TRACK_PWD
	    Fasd defaults to track your "$PWD". Set this to 0 to disable this behavior.

	    $_FASD_AWK
	    Which awk to use. fasd can detect and use a compatible awk.

	    $_FASD_SINK
	    File to log all STDERR to, defaults to "/dev/null".

	    $_FASD_MAX
	    Max total score / weight, defaults to 2000.

	    $_FASD_SHELL
	    Which shell to execute. Some shells will run faster than others. fasd
	    runs faster with dash and ksh variants.

	    $_FASD_BACKENDS
	    Default backends.

	    $_FASD_RO
	    If set to any non-empty string, fasd will not add or delete entries from
	    database. You can set and export this variable from command line.

	    $_FASD_FUZZY
	    Level of "fuzziness" when doing fuzzy matching. More precisely, the number of
	    characters that can be skipped to generate a match. Set to empty or 0 to
	    disable fuzzy matching. Default value is 2.

	    $_FASD_VIMINFO
	    Path to .viminfo file for viminfo backend, defaults to "$HOME/.viminfo"

	    $_FASD_RECENTLY_USED_XBEL
	    Path to XDG recently-used.xbel file for recently-used backend, defaults to
	    "$HOME/.local/share/recently-used.xbel"

DEBUGGING
     Fasd is hosted on GitHub: https://github.com/clvv/fasd

     If fasd does not work as expected, please file a bug report on  GitHub  de-
     scribing the unexpected behavior along with your OS version, shell version,
     awk version, sed version, and a log file.

     You can set _FASD_SINK in your .fasdrc to obtain a log.

	    _FASD_SINK="$HOME/.fasd.log"

COPYING
     Fasd is originally written based on code from z (https://github.com/rupa/z)
     by rupa deadwyler under the WTFPL license.  Most if not all of the code has
     been rewritten.  Fasd is licensed under the "MIT/X11" license.

AUTHORS
     Wei Dai <x@wei23.net>.

fasd user manual		  Jul 16, 2012				 FASD(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=fasd&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help