junegunn
d198c0c9de
Deploying to master from @ junegunn/fzf@55d5b153e6 🚀
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
2026-03-28 15:05:52 +00:00
harrywzl
55d5b153e6
docs: fix duplicate table rows and minor grammar/formatting in fzf.txt ( #4743 )
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Generate Sponsors README / deploy (push) Has been cancelled
2026-03-27 15:01:12 +09:00
Junegunn Choi
57695b0309
Remove deprecated FZF_TMUX vars from shell script headers
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
2026-03-26 21:35:14 +09:00
Junegunn Choi
6f17d49dbb
Support zellij floating pane via --popup (new name for --tmux) ( #4145 )
2026-03-26 21:32:56 +09:00
Junegunn Choi
87586ac5eb
Only use --no-same-owner with tar when supported
...
Fix #4740
Fix #4741
2026-03-26 21:06:58 +09:00
Junegunn Choi
12be5e7b83
Skip adaptive height validation when --tmux overrides --height
...
Fix #4742
2026-03-26 20:56:36 +09:00
Qingwei Li
1acf980e95
enhancement: move server declaration to go func to allocate it in stack ( #4739 )
...
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Fix #4735
Close #4736
2026-03-25 15:22:49 +09:00
cui
14e3995a06
Fix nthTransformer parts slice preallocation ( #4734 )
...
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Use make([]NthParts, 0, len(indexes)) so the slice starts empty with
reserved capacity. The previous length-len(indexes) allocation left
leading zero NthParts entries before appended elements.
2026-03-23 09:55:00 +09:00
Junegunn Choi
2202481705
Add devel branch to Linux CI workflow trigger
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
2026-03-22 10:18:17 +09:00
Junegunn Choi
6153004070
Always check hasPreviewWindow() before processing preview mouse events
2026-03-22 10:09:57 +09:00
Junegunn Choi
95f186f364
Fix preview scrollbar not rendered after toggle-preview
...
Fix #4732
2026-03-22 09:55:07 +09:00
Junegunn Choi
58b2855513
bash: Fix CTRL-R batch deletion
...
'echo {+1}' would paste multiple offsets in a line.
Fix #4730
2026-03-22 09:20:51 +09:00
Junegunn Choi
a00df93e13
bash: CTRL-R now supports multi-select and batch deletion
...
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Generate Sponsors README / deploy (push) Has been cancelled
- Changed +m to --multi to enable multi-select in CTRL-R
- Changed exclude to exclude-multi and {1} to {+1} so
shift-delete removes all selected entries at once
2026-03-21 21:41:22 +09:00
Junegunn Choi
76efddd718
bash: shift-delete to delete history entries during CTRL-R
...
Close #4715
2026-03-21 21:10:43 +09:00
Junegunn Choi
b638ff46fb
Include match positions in GET / HTTP response
...
Close #4726
2026-03-20 23:06:16 +09:00
Junegunn Choi
259e841a77
Add pull request template with contribution policy
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
2026-03-20 22:50:12 +09:00
Junegunn Choi
f0a2f5ef14
Skip symlinks targeting ancestors of walker root to prevent resource exhaustion
...
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
When --walker=follow is used, symlinks like Wine's z: -> / cause fzf to
traverse the entire root filesystem. fastwalk's built-in loop detection
only catches this on the second pass, but a single pass through / already
causes severe CPU and memory exhaustion.
This fix resolves each symlink-to-directory target to its absolute real
path and skips it if it is an ancestor of (or equal to) the walker root.
Close #4710
2026-03-18 20:43:00 +09:00
Junegunn Choi
2ae7367e8a
Revert "Use IgnoreDuplicateDirs to prevent duplicate directory traversal"
...
This reverts commit 6f33df755e .
2026-03-18 18:57:40 +09:00
Junegunn Choi
6f33df755e
Use IgnoreDuplicateDirs to prevent duplicate directory traversal
...
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
When --walker=follow is used, symlink following is now handled by
fastwalk's IgnoreDuplicateDirs adapter which tracks visited directories
by device+inode. This prevents the same directory from being entered
more than once, avoiding effectively infinite traversal when a symlink
points outside the walker root.
Close #4710
2026-03-18 10:17:49 +09:00
Eman Resu
2aec7d5201
Fix typo in 0.71 changelog entry ( #4721 )
...
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Thanks!
2026-03-17 11:45:00 +09:00
David Leadbeater
fc60406684
Add "unix" and "fattr" promises ( #4719 )
...
Without this fzf --listen=/tmp/foo.sock fails on OpenBSD.
2026-03-17 11:44:13 +09:00
Junegunn Choi
cf57950301
Add --id-nth to bash option completion
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
2026-03-15 11:31:36 +09:00
Junegunn Choi
48c4913392
'reload' should not preserve multi-selection
2026-03-15 11:30:55 +09:00
Junegunn Choi
17f2aa1a1f
Reorder info line: N/M (X) (S%) +S +T*
...
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Flags that appear/disappear are now at the end, so the multi-select
indicator stays in a fixed position and doesn't flicker.
2026-03-14 22:11:46 +09:00
Junegunn Choi
b5f7221580
Replace --track=NTH with --id-nth for cross-reload item identity
...
Separate item identity from cursor tracking:
- Add --id-nth=NTH to define item identity fields for cross-reload ops
- --track reverts to a simple boolean flag
- track-current action no longer accepts nth argument
- With --multi, selections are preserved across reload-sync by matching
identity keys in the reloaded list
Close #4718
Close #4701
Close #4483
Close #4409
Close #3460
Close #2441
2026-03-14 21:49:16 +09:00
Junegunn Choi
e6b9a08699
Defer list rendering until pending event actions are processed
2026-03-14 20:52:04 +09:00
Junegunn Choi
8dbb3b352d
Do not restart matcher during reload-sync with the intermediate list
2026-03-14 20:52:04 +09:00
Junegunn Choi
9f422851fe
Add field-based tracking across reloads (--track=NTH)
...
Allow --track to accept an optional nth expression for cross-reload
tracking. When a reload is triggered, fzf extracts a tracking key from
the current item using the nth expression, blocks the UI, and searches
for a matching item in the reloaded list.
- --track=.. tracks by entire line, --track=1 by first field, etc.
- --track without NTH retains existing index-based behavior
- UI is blocked during search (dimmed query, hidden cursor, +T*/+t*)
- reload unblocks eagerly on match; reload-sync waits for stream end
- Escape/Ctrl-C cancels blocked state without quitting
- track-current action accepts optional nth: track-current(1)
- Validate nth expression at parse time for both --track and track()
- Cache trackKeyFor results per item to avoid redundant computation
- Rename executeRegexp to argActionRegexp
Close #4701
Close #3460
2026-03-14 20:52:04 +09:00
Junegunn Choi
7a811f0cb8
Fix --no-sort jumpiness by merging results in index order
...
Fix #4717
2026-03-14 20:43:30 +09:00
Evan Hahn
b80059e21f
Fix zsh history widget when sh_glob option is on ( #4714 )
...
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Generate Sponsors README / deploy (push) Has been cancelled
Fixes #4712 .
The CTRL-R history widget failed in zsh when [zsh's `sh_glob` option][0]
was on. This fixes that by disabling the option locally, like we disable
other options.
[0]: https://zsh.sourceforge.io/Doc/Release/Options.html#:~:text=SH%5FGLOB,ksh%2E
2026-03-13 09:21:04 +09:00
Junegunn Choi
26de195bbb
Update typos.toml
2026-03-13 09:08:01 +09:00
Junegunn Choi
b59f27ef5a
Fix --with-shell not handling quoted arguments correctly
...
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Fix #4709
Use go-shellwords instead of strings.Fields to parse --with-shell,
so paths with spaces can be properly quoted.
ln -s /bin/bash "/tmp/ba sh"
fzf --with-shell='/tmp/ba\ sh -c' --preview 'echo hello world'
fzf --with-shell='"/tmp/ba sh" -c' --preview 'echo hello world'
2026-03-09 22:09:36 +09:00
Junegunn Choi
f3ca0b1365
Fix OSC8 hyperlinks mangled when URL contains unicode
...
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Fix #4707
2026-03-08 13:55:14 +09:00
Junegunn Choi
a8e1ef0989
Add CHANGELOG.md entry for 0.70.1
2026-03-08 11:54:56 +09:00
Junegunn Choi
2f27a3ede2
Replace []Result cache with bitmap cache for reduced memory usage
...
Replace the per-chunk query cache from []Result slices to fixed-size
bitmaps (ChunkBitmap: [16]uint64 = 128 bytes per entry). Each bit
indicates whether the corresponding item in the chunk matched.
This reduces cache memory by 86 times in testing:
- Old []Result cache: ~22KB per chunk per query (for 500 matches)
- New bitmap cache: ~262 bytes per chunk per query (fixed)
With the reduced per-entry cost, queryCacheMax is raised from
chunkSize/5 to chunkSize/2, allowing broader queries (up to 50% match
rate) to be cached while still using far less memory.
2026-03-08 11:49:28 +09:00
junegunn
9249ea1739
Deploying to master from @ junegunn/fzf@92bfe68c74 🚀
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
2026-03-07 15:02:15 +00:00
Junegunn Choi
92bfe68c74
Use a shared work queue instead of static partitioning in matcher
...
Replace static chunk partitioning (sliceChunks) with a shared atomic
counter that workers pull from. This gives natural load balancing;
workers that finish chunks quickly grab more work instead of idling.
With this change, NumCPU workers suffice (no need for 8x oversubscription),
reducing goroutine overhead while improving throughput by 5-22%.
Now the performance scales linearly to the number of threads:
=== query: 'linux' ===
[all] baseline: 17.12ms current: 14.28ms (1.20x) matches: 179966 (12.79%)
[1T] baseline: 136.49ms current: 137.25ms (0.99x) matches: 179966 (12.79%)
[2T] baseline: 75.74ms current: 68.75ms (1.10x) matches: 179966 (12.79%)
[4T] baseline: 41.16ms current: 34.97ms (1.18x) matches: 179966 (12.79%)
[8T] baseline: 32.82ms current: 17.79ms (1.84x) matches: 179966 (12.79%)
2026-03-07 18:26:42 +09:00
Junegunn Choi
92dc40ea82
Print ingestion time in --bench output
2026-03-07 18:13:38 +09:00
Junegunn Choi
12a280ba14
Fix lint errors
2026-03-07 18:13:38 +09:00
Junegunn Choi
0c6ead6e98
Replace procFun map with fixed-size array for faster algo dispatch
...
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Generate Sponsors README / deploy (push) Has been cancelled
termType is already a small integer enum (0-5), so a [6]algo.Algo
array avoids hash table overhead in the extendedMatch hot loop.
2026-03-07 14:19:05 +09:00
Junegunn Choi
280a011f02
With a non-default --delimiter, --{accept,with}-nth should not remove trailing whitespaces
2026-03-07 13:39:55 +09:00
Junegunn Choi
d324580840
Fix AWK tokenizer not treating a new line character as whitespace
2026-03-07 11:45:02 +09:00
Junegunn Choi
f9830c5a3d
Fix test cases not to fail on small screens (contd.)
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
2026-03-06 19:43:16 +09:00
Junegunn Choi
95bc5b8f0c
Fix test cases not to fail on small screens
2026-03-06 19:42:42 +09:00
Junegunn Choi
0b08f0dea0
Fix preview follow/scroll with long wrapped lines
...
Fixes bugs reported in https://github.com/junegunn/fzf/pull/4703 :
* Clamp followOffset return value to avoid going past the end of lines
* Account for t.previewed.filled when determining scrollability
2026-03-06 19:21:22 +09:00
Junegunn Choi
e7300fe300
Fix tab width when --frozen-left is used
...
https://github.com/junegunn/fzf/pull/4703#issuecomment-4004258816
2026-03-06 18:53:23 +09:00
dependabot[bot]
260d160973
Bump actions/labeler from 5 to 6 ( #4700 )
...
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
Bumps [actions/labeler](https://github.com/actions/labeler ) from 5 to 6.
- [Release notes](https://github.com/actions/labeler/releases )
- [Commits](https://github.com/actions/labeler/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: actions/labeler
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 23:58:37 +09:00
Laurent Cheylus
d57ed157ad
Remove tmppath pledge on OpenBSD ( #4699 )
...
"tmppath" pledge is no longer supported.
See commit c883e836f4
Signed-off-by: Laurent Cheylus <foxy@free.fr >
2026-03-02 22:55:13 +09:00
Junegunn Choi
9226bc605d
Fix typos CI failure by excluding .s files
2026-03-02 22:49:54 +09:00
Junegunn Choi
eacef5ea6e
0.70.0
CodeQL / Analyze (go) (push) Has been cancelled
build / build (push) Has been cancelled
Test fzf on macOS / build (push) Has been cancelled
v0.70.0
2026-03-02 16:56:13 +09:00