Junegunn Choi
4a0ab6c926
Improve query modification prevention in input-less mode
...
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
2025-03-26 10:34:52 +09:00
Junegunn Choi
f43e82f17f
Do not ignore current query when input is hidden
...
CodeQL / Analyze (go) (push) Has been cancelled
Test fzf on Linux / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
* The initial query given by --query should be respected
* The current query should still be respected after `hide-input`
(or `toggle-input)
Fix #4327
2025-03-25 21:08:06 +09:00
Junegunn Choi
62238620a5
Fix first entry not clickable when input section is hidden
...
CodeQL / Analyze (go) (push) Has been cancelled
Test fzf on Linux / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Fix #4325
2025-03-24 22:08:57 +09:00
Junegunn Choi
200745011a
Fix cursor position when prompt is truncated
...
e.g.
fzf --preview 'cat {}' --prompt "$(seq 100 | xargs)"
fzf --preview 'cat {}' --prompt "$(seq 100 | xargs)" --input-border
2025-03-24 17:09:44 +09:00
Junegunn Choi
82fd88339b
Fix offset-middle not updating the list
CodeQL / Analyze (go) (push) Has been cancelled
Test fzf on Linux / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
2025-03-23 11:13:21 +09:00
Junegunn Choi
29cf28d845
Suppress 'change' event during bracketed paste mode
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
Generate Sponsors README / deploy (push) Has been cancelled
Close #4316
2025-03-22 09:17:18 +09:00
Junegunn Choi
7e4dbb5f3b
Prevent start:track-current from being disabled
...
CodeQL / Analyze (go) (push) Has been cancelled
Test fzf on Linux / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
# track-current state can be immediately disabled
fzf --sync --bind 'start:track-current'
2025-03-20 11:51:20 +09:00
Junegunn Choi
f92f9f137a
Fix wrapping of the list section
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
Generate Sponsors README / deploy (push) Has been cancelled
# The first line of the second chunk would prematurely wrap
printf '%0500s\n\n%0500s' 0 0 | fzf --wrap --read0
2025-03-16 01:57:20 +09:00
Junegunn Choi
87f7f436e8
Fix ghost text with inline info
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
Fix #4312
2025-03-15 18:42:08 +09:00
Junegunn Choi
4298c0b1eb
Add --ghost=TEXT to display a ghost text when the input is empty
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
2025-03-14 16:46:23 +09:00
Gabriel Marin
6c104d771e
Change 'interface{}' to 'any' ( #4308 )
CodeQL / Analyze (go) (push) Has been cancelled
Test fzf on Linux / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
2025-03-11 14:24:54 +09:00
Junegunn Choi
aefb9a5bc4
Nullify unwanted FZF_DEFAULT_* variables in tmux popup
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
Fix #4298
2025-03-10 18:18:50 +09:00
Junegunn Choi
8916cbc6ab
[windows] Prevent fzf from consuming user input while paused
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
This partly fixes #4260 .
fzf still can consume the first key stroke.
2025-03-03 14:04:16 +09:00
Junegunn Choi
3ba82b6d87
Make truncateQuery faster
...
CodeQL / Analyze (go) (push) Has been cancelled
Test fzf on Linux / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Generate Sponsors README / deploy (push) Has been cancelled
https://github.com/junegunn/fzf/issues/4292#issuecomment-2687051731
2025-02-27 15:49:15 +09:00
Junegunn Choi
4e5e925e39
Increase the query length limit from 300 to 1000
...
Close #4292
2025-02-27 11:43:58 +09:00
Junegunn Choi
b7248d4115
Remove temp files before 'become' when using --tmux option
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
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}'
2025-02-26 20:47:09 +09:00
Junegunn Choi
639253840f
Trim trailing whitespaces after processing ANSI sequences
...
Close #4282
2025-02-26 16:17:12 +09:00
Junegunn Choi
710ebdf9c1
Make --accept-nth compatible with --select-1
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
Fix #4287
2025-02-26 00:25:23 +09:00
alex-huff
cd1da27ff2
Fix condition for using item numlines cache ( #4285 )
2025-02-25 20:25:26 +09:00
Junegunn Choi
c1accc2e5b
Use '/' as path separator on MSYS2
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
Fix #4281
2025-02-25 10:12:19 +09:00
Junegunn Choi
e4489dcbc1
Fix regression: Trim trailing whitespaces when using --with-nth
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
https://github.com/junegunn/fzf/issues/4272#issuecomment-2677279620
2025-02-24 18:40:13 +09:00
Junegunn Choi
461115afde
Add support for {n} in --with-nth and --accept-nth templates
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
Close #4275
2025-02-23 19:47:56 +09:00
Junegunn Choi
d79902ae59
Fix 'jump' when pointer is empty
...
Fix #4270
2025-02-22 19:05:30 +09:00
phanium
77568e114f
Don't trim last field when delimiter is regex ( #4266 )
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
2025-02-21 22:21:55 +09:00
Junegunn Choi
0ba066123e
Fix case where preview window is not scrollable ( #4258 )
...
When the last rendered line was wrapped, fzf would incorrectly determine
the scrollability of the window.
2025-02-20 08:22:43 +09:00
Junegunn Choi
6fa8295ac5
walker: Append path separator to directories
...
CodeQL / Analyze (go) (push) Has been cancelled
Test fzf on Linux / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Close #4255
2025-02-18 22:03:59 +09:00
Junegunn Choi
f975b40236
Fix {q} in preview window affected by 'search' action
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
2025-02-18 10:08:47 +09:00
Alexei Șerșun
01d9d9c8c8
Normalize char before pattern lookup ( #4252 )
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
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.
2025-02-17 20:50:15 +09:00
Junegunn Choi
1eafc4e5d9
Ignore NULL byte before CSI 6N response
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
Close #2455
2025-02-16 21:18:01 +09:00
Junegunn Choi
ac32fbb3b2
Avoid printing items in an extremely narrow screen
CodeQL / Analyze (go) (push) Has been cancelled
Test fzf on Linux / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Generate Sponsors README / deploy (push) Has been cancelled
2025-02-13 22:12:25 +09:00
Junegunn Choi
7d26eca5cc
Truncate wrap sign in the list section if necessary
2025-02-13 21:50:53 +09:00
Junegunn Choi
9abf2c8c9c
Allow suffix match on --nth with custom --delimiter
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
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
2025-02-12 20:53:32 +09:00
Junegunn Choi
84e2262ad6
Make --accept-nth and --with-nth support templates
2025-02-12 20:15:04 +09:00
Junegunn Choi
378137d34a
Simplify code
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
2025-02-11 23:43:43 +09:00
Junegunn Choi
66ca16f836
Truncate wrap signs in extremely narrow preview window
2025-02-11 23:41:54 +09:00
Junegunn Choi
19ef8891e3
Print --wrap-sign in preview window
...
Close #4233
2025-02-11 00:01:50 +09:00
Junegunn Choi
a2420026ab
Rename actions: exclude and exclude-multi
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
https://github.com/junegunn/fzf/pull/4231#issuecomment-2646067669
2025-02-09 13:52:20 +09:00
Junegunn Choi
1be1991299
Add exclude-current action
...
https://github.com/junegunn/fzf/pull/4231#issuecomment-2646063208
2025-02-09 13:37:22 +09:00
Junegunn Choi
67dd7e1923
Add 'exclude' action for excluding current/selected items from the result ( #4231 )
...
Close #4185
2025-02-09 13:22:33 +09:00
Junegunn Choi
2b584586ed
Add --accept-nth option to transform the output
...
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
2025-02-09 11:53:35 +09:00
Junegunn Choi
818d0be436
Fix change-header-label+change-header
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
Fix #4227
2025-02-07 20:57:09 +09:00
Junegunn Choi
fcd2baa945
Fix scrolling performance when --wrap is enabled
...
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
Fix #4221
2025-02-06 22:30:39 +09:00
Junegunn Choi
62e0a2824a
Fix nth highlighting
...
Fix #4222
2025-02-06 19:57:39 +09:00
Junegunn Choi
65d74387e7
Stop processing more actions after a terminal action (accept, abort, etc.)
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
2025-02-02 16:28:32 +09:00
Junegunn Choi
0c61223884
Fix tcell renderer's pause and resume
2025-02-02 02:23:48 +09:00
Junegunn Choi
32234be7a2
FZF_KEY enhancements
...
* 'enter' instead of 'ctrl-m'
* 'space' instead of ' '
2025-02-02 02:23:47 +09:00
Junegunn Choi
178b49832e
Fix {show,hide,toggle}-input and add test cases
CodeQL / Analyze (go) (push) Waiting to run
Test fzf on Linux / build (push) Waiting to run
Test fzf on macOS / build (push) Waiting to run
2025-02-01 17:23:22 +09:00
Junegunn Choi
18cbb4a84d
Display header lines at the top in 'reverse-list' layout
2025-02-01 17:03:59 +09:00
Junegunn Choi
e84afe196a
Add {show,hide,toggle}-input and expose $FZF_INPUT_STATE
2025-02-01 17:03:59 +09:00
Junegunn Choi
e1e171a3c4
Add toggle-bind
2025-02-01 17:03:59 +09:00