Fzf: Difference between revisions
From wikinotes
No edit summary |
(→Usage) |
||
Line 14: | Line 14: | ||
= Usage = | = Usage = | ||
<blockquote> | <blockquote> | ||
== CLI Arguments == | |||
<blockquote> | |||
<syntaxhighlight lang="bash"> | |||
# Search Modes | |||
fzf \ | |||
-q $SEARCH `# search interactively for $SEARCH` \ | |||
-f $SEARCH `# print results for $SEARCH` | |||
`# if neither -q/-f, user types search interactively` | |||
# Match Customization | |||
fzf \ | |||
-m `# allow multiple-selections` \ | |||
+m `# disallow multiple-selections` \ | |||
-i `# case insensitive` \ | |||
-e `# exact-matches only (like 'foo)` \ | |||
--tiebreak=length,end `# choose between equally scoring matches` | |||
# Match Syntax | |||
foo # fuzzy-matches | |||
'foo # exact-matches (rather than fuzzy) | |||
^foo$ # anchored matches start/end | |||
!foo # results that don't match foo | |||
foo | bar # or | |||
'foo bar # compound matches | |||
</syntaxhighlight> | |||
Examples | |||
<syntaxhighlight lang="bash"> | |||
# Interactive | |||
result=$(find . | fzf +m) # choose single | |||
results=($(find . | fzf -m)) # choose single or multiple | |||
# Non-Interactive | |||
find . | fzf --filter 'todo' # print sorted matches for 'todo' on stdout | |||
</syntaxhighlight> | |||
</blockquote><!-- CLI Arguments --> | |||
== Keybindings == | == Keybindings == | ||
<blockquote> | <blockquote> | ||
Line 33: | Line 70: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Keybindings --> | </blockquote><!-- Keybindings --> | ||
</blockquote><!-- Usage --> | </blockquote><!-- Usage --> | ||
Revision as of 14:20, 27 February 2022
fzf is a tool that lets you fuzzy search lines piped to it on stdin.
Documentation
github https://github.com/junegunn/fzf man fzf
https://man.archlinux.org/man/community/fzf/fzf.1.en
Usage
CLI Arguments
# Search Modes fzf \ -q $SEARCH `# search interactively for $SEARCH` \ -f $SEARCH `# print results for $SEARCH` `# if neither -q/-f, user types search interactively` # Match Customization fzf \ -m `# allow multiple-selections` \ +m `# disallow multiple-selections` \ -i `# case insensitive` \ -e `# exact-matches only (like 'foo)` \ --tiebreak=length,end `# choose between equally scoring matches` # Match Syntax foo # fuzzy-matches 'foo # exact-matches (rather than fuzzy) ^foo$ # anchored matches start/end !foo # results that don't match foo foo | bar # or 'foo bar # compound matchesExamples
# Interactive result=$(find . | fzf +m) # choose single results=($(find . | fzf -m)) # choose single or multiple # Non-Interactive find . | fzf --filter 'todo' # print sorted matches for 'todo' on stdoutKeybindings
Default Keybindings
up/down # go up/down entry tab # mark entry as selected (when multi-select active) enter # single-select and exit # type # search resultsYou can set your own keybindings as well
See AVAILABLE ACTIONS in man fzfexport FZF_DEFAULT_OPTS='\ --bind \ ctrl-a:select-all,\ ctrl-d:deselect-all'
Extensions
fzf-tab (fzf-on-tabcomplete) https://github.com/Aloxaf/fzf-tab