| Age | Commit message (Collapse) | Author |
|
By default, placeholder expressions are automatically quoted to ensure
they are safely passed as arguments to external programs.
The r flag ({r}, {r1}, etc.) disables this behavior, outputting the
evaluated value without quotes.
For example,
echo 'foo bar' | fzf --preview 'echo {} {r}'
The preview command becomes:
echo 'foo bar' foo bar
Since `{r}` expands to unquoted "foo bar", 'foo' and 'bar' are passed
as separate arguments.
**Use with caution** Unquoted output can lead to broken commands.
echo "let's go" | fzf --preview 'echo {r}'
Close #4330
|
|
|
|
|
|
Close #4178
|
|
|
|
When 'search' and any action that modifies the query are in an action
chain, anything that comes later takes precedence.
|
|
fzf would restore the original query in input-less mode after executing
a chain of actions.
This commit changes the behavior so that the restoration
happens after each action to allow something like
'show-input+change-query(...)+hide-input'.
Fix #4326
|
|
* The initial query given by --query should be respected
* The current query should still be respected after `hide-input`
(or `toggle-input)
Fix #4327
|
|
Fix #4325
|
|
e.g.
fzf --preview 'cat {}' --prompt "$(seq 100 | xargs)"
fzf --preview 'cat {}' --prompt "$(seq 100 | xargs)" --input-border
|
|
|
|
Close #4316
|
|
# track-current state can be immediately disabled
fzf --sync --bind 'start:track-current'
|
|
# The first line of the second chunk would prematurely wrap
printf '%0500s\n\n%0500s' 0 0 | fzf --wrap --read0
|
|
Fix #4312
|
|
|
|
|
|
Fix #4298
|
|
This partly fixes #4260.
fzf still can consume the first key stroke.
|
|
https://github.com/junegunn/fzf/issues/4292#issuecomment-2687051731
|
|
Close #4292
|
|
Close #4283
But the temp files for the `f` flags in the 'become' template will not
be removed, because we will need them after "becoming" another program.
e.g. fzf --bind 'enter:become:cat {f}'
|
|
Close #4282
|
|
Fix #4287
|
|
|
|
Fix #4281
|
|
https://github.com/junegunn/fzf/issues/4272#issuecomment-2677279620
|
|
Close #4275
|
|
Fix #4270
|
|
|
|
When the last rendered line was wrapped, fzf would incorrectly determine
the scrollability of the window.
|
|
Close #4255
|
|
|
|
There is an edge-case in FuzzyMatchV1 during backward scan, related to
normalization: if string is initially denormalized (e.g. Unicode symbol),
backward scan will proceed further to the next char; however, when the
score is computed, the string is normalized first, then scanned based on
the pattern. This leads to accessing pattern index increment, which
itself leads to out-of-bound index access, resulting in a panic.
To illustrate the process, here's the sequence of operations when search
is perfored:
1. during backward scan by "minim" pattern
```
xxxxx Minímal example
^^^^^^^^^^^^
||||||||||||
miniiiiiiiim <- compute score for this substring
```
2. during compute score by "minim" pattern
```
Minímal exam
minimal exam <- normalize chars before computing the score
^^^^^^
||||||
minim <- at this point the pattern is already fully scanned and index
is out-of-the-bound
```
In this commit the char is normalized during backward scan, to detect
properly the boundaries for the pattern.
|
|
Close #2455
|
|
|
|
|
|
When --nth is used with a custom --delimiter, the last delimiter was
included in the search scope, forcing you to write the delimiter in
a suffix-match query. This commit removes the last delimiter from the
search scope.
# No need to write 'bar,$'
echo foo,bar,baz | fzf --delimiter , --nth 2 --filter 'bar$'
This can be seen as a breaking change, but I'm gonna say it's a bug fix.
Fix #3983
|
|
|
|
|
|
|
|
Close #4233
|
|
https://github.com/junegunn/fzf/pull/4231#issuecomment-2646067669
|
|
https://github.com/junegunn/fzf/pull/4231#issuecomment-2646063208
|
|
(#4231)
Close #4185
|
|
This option can be used to replace a sed or awk in the post-processing step.
ps -ef | fzf --multi --header-lines 1 | awk '{print $2}'
ps -ef | fzf --multi --header-lines 1 --accept-nth 2
This may not be a very "Unix-y" thing to do, so I've always felt that fzf
shouldn't have such an option, but I've finally changed my mind because:
* fzf can be configured with a custom delimiter that is a fixed string
or a regular expression.
* In such cases, you'd need to repeat the delimiter again in the
post-processing step.
* Also, tools like awk or sed may interpret a regular expression
differently, causing mismatches.
You can still use sed, cut, or awk if you prefer.
Close #3987
Close #1323
|
|
Fix #4227
|
|
Fix #4221
|
|
Fix #4222
|
|
|