0.49.0
junegunn/fzf0.49.0Apr 4, 2024by junegunn
Upgrading?
Release notes summary
Improved ingestion performance by 40% and introduced new environment variables for preview and border labels, along with refined tracking actions.
Key Highlights
- Ingestion performance improved by around 40%.
- `--info=hidden` and `--info=inline-right` no longer hide the horizontal separator by default.
- Added `$FZF_PREVIEW_LABEL` and `$FZF_BORDER_LABEL` environment variables.
- Renamed `track` action to `track-current` and added `untrack-current` and `toggle-track-current` actions.
New Features
- $FZF_PREVIEW_LABEL
- $FZF_BORDER_LABEL
- track-current action
- untrack-current action
- toggle-track-current action
Full Release Notes
- Ingestion performance improved by around 40% (more or less depending on options)
```
$ time wc data
5513620 37997130 547840920 data
real 0m0.822s
user 0m0.764s
sys 0m0.052s
$ hyperfine -L bin fzf-0.48.1,fzf '{bin} --sync --bind load:accept < data'
Benchmark 1: fzf-0.48.1 --sync --bind load:accept < data
Time (mean ± σ): 440.3 ms ± 4.9 ms [User: 501.8 ms, System: 117.0 ms]
Range (min … max): 432.8 ms … 446.1 ms 10 runs
Benchmark 2: fzf --sync --bind load:accept < data
Time (mean ± σ): 303.3 ms ± 4.5 ms [User: 320.1 ms, System: 108.6 ms]
Range (min … max): 296.6 ms … 311.4 ms 10 runs
Summary
fzf --sync --bind load:accept < data ran
1.45 ± 0.03 times faster than fzf-0.48.1 --sync --bind load:accept < data
```
- `--info=hidden` and `--info=inline-right` will no longer hide the horizontal separator by default. This gives you more flexibility in customizing the layout.
```sh
fzf --border --info=inline-right
fzf --border --info=inline-right --separator ═
fzf --border --info=inline-right --no-separator
fzf --border --info=hidden
fzf --border --info=hidden --separator ━
fzf --border --info=hidden --no-separator
```
<img width="696" alt="DoomOne" src="https://github.com/junegunn/fzf/assets/700826/997ca04b-f185-4fb6-aef3-01e3f466f1f7">
- Added two environment variables exported to the child processes
- `FZF_PREVIEW_LABEL`
- `FZF_BORDER_LABEL`
```sh
# Use the current value of $FZF_PREVIEW_LABEL to determine which actions to perform
git ls-files |
fzf --header 'Press CTRL-P to change preview mode' \
--bind='ctrl-p:transform:[[ $FZF_PREVIEW_LABEL =~ cat ]] \
&& echo "change-preview(git log --color=always \{})+change-preview-label([[ log ]])" \
|| echo "change-preview(bat --color=always \{})+change-preview-label([[ cat ]])"'
```
- Renamed `track` action to `track-current` to highlight the difference between the global tracking state set by `--track` and a one-off tracking action
- `track` is still available as an alias
- Added `untrack-current` and `toggle-track-current` actions
- `*-current` actions are no-op when the global tracking state is set
- Bug fixes and minor improvements
Related Repositories
ollama/ollama★ 184,711
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
fatedier/frp★ 110,124
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
infiniflow/ragflow★ 92,830
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
gohugoio/hugo★ 90,227
The world’s fastest framework for building websites.
caddyserver/caddy★ 78,391
Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS