In addition to the accepted answer, I want to add that spaces in your search pattern matter too, in order to separate fuzzy search pattern arguments.
Let's say you have this file tree. Notice that each dir has a test.txt
and test
file in it:
temp/dir1/test.txt
temp/dir1/test
temp/dir2/test.txt
temp/dir2/test
temp/dir3/test.txt
temp/dir3/test
Let's try to find all 3 files above which have the search pattern temp
somewhere in their path, and are named test
and have no file extension:
In default search mode in fzf
:
- This search will find no files:
temp/test$
- This search will find all 6 files:
temp/test
- So, if you're trying to find just the
test
files which have no extension, you must add a space into your search pattern, like this! This search will find just the 3 test
files which have no file extension (and have the pattern temp
somewhere higher up in the path):
temp /test$
Adding that one space between the two fuzzy search patterns (temp
and /test$
) makes all the difference!
Note that this search too will find all 6 files:
temp /test
In summary, to find just the 3 test
files with no extension, you must use the space to separate fuzzy search parameters, AND use the $
at the end to indicate "end of line":
temp /test$
Of course, the same requirement for the space between fuzzy search parameters applies to the ^
"beginning of line" search character too. (This example doesn't make this point well, but the principle is the same.):
^temp /test
{}
icon.!
,$
,^
? @mattb