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

FreeBSD Manual Pages

  
 
  

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
       directories 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  ad-
       vanced 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 be-
       low:

	      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
       between 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 support command substitution in $PS1 in order for fasd to auto-
       matically track your commands and files.	 This feature is not specified
       by  the POSIX standard, but it's	nonetheless present in many POSIX com-
       pliant shells.  In shells without prompt	command	or prompt command sub-
       stitution (tcsh for instance), you can add entries manually with	 "fasd
       -A".  You are very welcomed 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
       completion 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.  Un-
       der 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/.fas-
       drc" 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
       describing 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.0>

home | help