doing 2.0.18 → 2.0.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/Gemfile.lock +15 -5
  4. data/README.md +1 -1
  5. data/bin/doing +2 -18
  6. data/doing.gemspec +5 -4
  7. data/doing.rdoc +2 -2
  8. data/generate_completions.sh +3 -3
  9. data/lib/doing/cli_status.rb +6 -2
  10. data/lib/doing/completion/bash_completion.rb +185 -0
  11. data/lib/doing/completion/fish_completion.rb +175 -0
  12. data/lib/doing/completion/string.rb +17 -0
  13. data/lib/doing/completion/zsh_completion.rb +140 -0
  14. data/lib/doing/completion.rb +39 -0
  15. data/lib/doing/version.rb +1 -1
  16. data/lib/doing/wwid.rb +18 -6
  17. data/lib/doing.rb +1 -1
  18. data/lib/helpers/fzf/.goreleaser.yml +119 -0
  19. data/lib/helpers/fzf/.rubocop.yml +28 -0
  20. data/lib/helpers/fzf/ADVANCED.md +565 -0
  21. data/lib/helpers/fzf/BUILD.md +49 -0
  22. data/lib/helpers/fzf/CHANGELOG.md +1193 -0
  23. data/lib/helpers/fzf/Dockerfile +11 -0
  24. data/lib/helpers/fzf/LICENSE +21 -0
  25. data/lib/helpers/fzf/Makefile +166 -0
  26. data/lib/helpers/fzf/README-VIM.md +486 -0
  27. data/lib/helpers/fzf/README.md +712 -0
  28. data/lib/helpers/fzf/bin/fzf-tmux +233 -0
  29. data/lib/helpers/fzf/doc/fzf.txt +512 -0
  30. data/lib/helpers/fzf/go.mod +17 -0
  31. data/lib/helpers/fzf/go.sum +31 -0
  32. data/lib/helpers/fzf/install +382 -0
  33. data/lib/helpers/fzf/install.ps1 +65 -0
  34. data/lib/helpers/fzf/main.go +14 -0
  35. data/lib/helpers/fzf/man/man1/fzf-tmux.1 +68 -0
  36. data/lib/helpers/fzf/man/man1/fzf.1 +1001 -0
  37. data/lib/helpers/fzf/plugin/fzf.vim +1048 -0
  38. data/lib/helpers/fzf/shell/completion.bash +381 -0
  39. data/lib/helpers/fzf/shell/completion.zsh +329 -0
  40. data/lib/helpers/fzf/shell/key-bindings.bash +96 -0
  41. data/lib/helpers/fzf/shell/key-bindings.fish +172 -0
  42. data/lib/helpers/fzf/shell/key-bindings.zsh +114 -0
  43. data/lib/helpers/fzf/src/LICENSE +21 -0
  44. data/lib/helpers/fzf/src/algo/algo.go +884 -0
  45. data/lib/helpers/fzf/src/algo/algo_test.go +197 -0
  46. data/lib/helpers/fzf/src/algo/normalize.go +492 -0
  47. data/lib/helpers/fzf/src/ansi.go +409 -0
  48. data/lib/helpers/fzf/src/ansi_test.go +427 -0
  49. data/lib/helpers/fzf/src/cache.go +81 -0
  50. data/lib/helpers/fzf/src/cache_test.go +39 -0
  51. data/lib/helpers/fzf/src/chunklist.go +89 -0
  52. data/lib/helpers/fzf/src/chunklist_test.go +80 -0
  53. data/lib/helpers/fzf/src/constants.go +85 -0
  54. data/lib/helpers/fzf/src/core.go +351 -0
  55. data/lib/helpers/fzf/src/history.go +96 -0
  56. data/lib/helpers/fzf/src/history_test.go +68 -0
  57. data/lib/helpers/fzf/src/item.go +44 -0
  58. data/lib/helpers/fzf/src/item_test.go +23 -0
  59. data/lib/helpers/fzf/src/matcher.go +235 -0
  60. data/lib/helpers/fzf/src/merger.go +120 -0
  61. data/lib/helpers/fzf/src/merger_test.go +88 -0
  62. data/lib/helpers/fzf/src/options.go +1691 -0
  63. data/lib/helpers/fzf/src/options_test.go +457 -0
  64. data/lib/helpers/fzf/src/pattern.go +425 -0
  65. data/lib/helpers/fzf/src/pattern_test.go +209 -0
  66. data/lib/helpers/fzf/src/protector/protector.go +8 -0
  67. data/lib/helpers/fzf/src/protector/protector_openbsd.go +10 -0
  68. data/lib/helpers/fzf/src/reader.go +201 -0
  69. data/lib/helpers/fzf/src/reader_test.go +63 -0
  70. data/lib/helpers/fzf/src/result.go +243 -0
  71. data/lib/helpers/fzf/src/result_others.go +16 -0
  72. data/lib/helpers/fzf/src/result_test.go +159 -0
  73. data/lib/helpers/fzf/src/result_x86.go +16 -0
  74. data/lib/helpers/fzf/src/terminal.go +2832 -0
  75. data/lib/helpers/fzf/src/terminal_test.go +638 -0
  76. data/lib/helpers/fzf/src/terminal_unix.go +26 -0
  77. data/lib/helpers/fzf/src/terminal_windows.go +45 -0
  78. data/lib/helpers/fzf/src/tokenizer.go +253 -0
  79. data/lib/helpers/fzf/src/tokenizer_test.go +112 -0
  80. data/lib/helpers/fzf/src/tui/dummy.go +46 -0
  81. data/lib/helpers/fzf/src/tui/light.go +987 -0
  82. data/lib/helpers/fzf/src/tui/light_unix.go +110 -0
  83. data/lib/helpers/fzf/src/tui/light_windows.go +145 -0
  84. data/lib/helpers/fzf/src/tui/tcell.go +721 -0
  85. data/lib/helpers/fzf/src/tui/tcell_test.go +392 -0
  86. data/lib/helpers/fzf/src/tui/ttyname_unix.go +47 -0
  87. data/lib/helpers/fzf/src/tui/ttyname_windows.go +14 -0
  88. data/lib/helpers/fzf/src/tui/tui.go +625 -0
  89. data/lib/helpers/fzf/src/tui/tui_test.go +20 -0
  90. data/lib/helpers/fzf/src/util/atomicbool.go +34 -0
  91. data/lib/helpers/fzf/src/util/atomicbool_test.go +17 -0
  92. data/lib/helpers/fzf/src/util/chars.go +198 -0
  93. data/lib/helpers/fzf/src/util/chars_test.go +46 -0
  94. data/lib/helpers/fzf/src/util/eventbox.go +96 -0
  95. data/lib/helpers/fzf/src/util/eventbox_test.go +61 -0
  96. data/lib/helpers/fzf/src/util/slab.go +12 -0
  97. data/lib/helpers/fzf/src/util/util.go +138 -0
  98. data/lib/helpers/fzf/src/util/util_test.go +40 -0
  99. data/lib/helpers/fzf/src/util/util_unix.go +47 -0
  100. data/lib/helpers/fzf/src/util/util_windows.go +83 -0
  101. data/lib/helpers/fzf/test/fzf.vader +175 -0
  102. data/lib/helpers/fzf/test/test_go.rb +2626 -0
  103. data/lib/helpers/fzf/uninstall +117 -0
  104. data/scripts/generate_bash_completions.rb +6 -12
  105. data/scripts/generate_fish_completions.rb +7 -16
  106. data/scripts/generate_zsh_completions.rb +6 -15
  107. metadata +144 -9
@@ -0,0 +1,1193 @@
1
+ CHANGELOG
2
+ =========
3
+
4
+ 0.28.0
5
+ ------
6
+ - Added `--header-first` option to print header before the prompt line
7
+ ```sh
8
+ fzf --header $'Welcome to fzf\n▔▔▔▔▔▔▔▔▔▔▔▔▔▔' --reverse --height 30% --border --header-first
9
+ ```
10
+ - Added `--scroll-off=LINES` option (similar to `scrolloff` option of Vim)
11
+ - You can set it to a very large number so that the cursor stays in the
12
+ middle of the screen while scrolling
13
+ ```sh
14
+ fzf --scroll-off=5
15
+ fzf --scroll-off=999
16
+ ```
17
+ - Fixed bug where preview window is not updated on `reload` (#2644)
18
+ - fzf on Windows will also use `$SHELL` to execute external programs
19
+ - See #2638 and #2647
20
+ - Thanks to @rashil2000, @vovcacik, and @janlazo
21
+
22
+ 0.27.3
23
+ ------
24
+ - Preview window is `hidden` by default when there are `preview` bindings but
25
+ `--preview` command is not given
26
+ - Fixed bug where `{n}` is not properly reset on `reload`
27
+ - Fixed bug where spinner is not displayed on `reload`
28
+ - Enhancements in tcell renderer for Windows (#2616)
29
+ - Vim plugin
30
+ - `sinklist` is added as a synonym to `sink*` so that it's easier to add
31
+ a function to a spec dictionary
32
+ ```vim
33
+ let spec = { 'source': 'ls', 'options': ['--multi', '--preview', 'cat {}'] }
34
+ function spec.sinklist(matches)
35
+ echom string(a:matches)
36
+ endfunction
37
+
38
+ call fzf#run(fzf#wrap(spec))
39
+ ```
40
+ - Vim 7 compatibility
41
+
42
+ 0.27.2
43
+ ------
44
+ - 16 base ANSI colors can be specified by their names
45
+ ```sh
46
+ fzf --color fg:3,fg+:11
47
+ fzf --color fg:yellow,fg+:bright-yellow
48
+ ```
49
+ - Fix bug where `--read0` not properly displaying long lines
50
+
51
+ 0.27.1
52
+ ------
53
+ - Added `unbind` action. In the following Ripgrep launcher example, you can
54
+ use `unbind(reload)` to switch to fzf-only filtering mode.
55
+ - See https://github.com/junegunn/fzf/blob/master/ADVANCED.md#switching-to-fzf-only-search-mode
56
+ - Vim plugin
57
+ - Vim plugin will stop immediately even when the source command hasn't finished
58
+ ```vim
59
+ " fzf will read the stream file while allowing other processes to append to it
60
+ call fzf#run({'source': 'cat /dev/null > /tmp/stream; tail -f /tmp/stream'})
61
+ ```
62
+ - It is now possible to open popup window relative to the current window
63
+ ```vim
64
+ let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6, 'relative': v:true, 'yoffset': 1.0 } }
65
+ ```
66
+
67
+ 0.27.0
68
+ ------
69
+ - More border options for `--preview-window`
70
+ ```sh
71
+ fzf --preview 'cat {}' --preview-window border-left
72
+ fzf --preview 'cat {}' --preview-window border-left --border horizontal
73
+ fzf --preview 'cat {}' --preview-window top:border-bottom
74
+ fzf --preview 'cat {}' --preview-window top:border-horizontal
75
+ ```
76
+ - Automatically set `/dev/tty` as STDIN on execute action
77
+ ```sh
78
+ # Redirect /dev/tty to suppress "Vim: Warning: Input is not from a terminal"
79
+ # ls | fzf --bind "enter:execute(vim {} < /dev/tty)"
80
+
81
+ # "< /dev/tty" part is no longer needed
82
+ ls | fzf --bind "enter:execute(vim {})"
83
+ ```
84
+ - Bug fixes and improvements
85
+ - Signed and notarized macOS binaries
86
+ (Huge thanks to [BACKERS.md](https://github.com/junegunn/junegunn/blob/main/BACKERS.md)!)
87
+
88
+ 0.26.0
89
+ ------
90
+ - Added support for fixed header in preview window
91
+ ```sh
92
+ # Display top 3 lines as the fixed header
93
+ fzf --preview 'bat --style=header,grid --color=always {}' --preview-window '~3'
94
+ ```
95
+ - More advanced preview offset expression to better support the fixed header
96
+ ```sh
97
+ # Preview with bat, matching line in the middle of the window below
98
+ # the fixed header of the top 3 lines
99
+ #
100
+ # ~3 Top 3 lines as the fixed header
101
+ # +{2} Base scroll offset extracted from the second field
102
+ # +3 Extra offset to compensate for the 3-line header
103
+ # /2 Put in the middle of the preview area
104
+ #
105
+ git grep --line-number '' |
106
+ fzf --delimiter : \
107
+ --preview 'bat --style=full --color=always --highlight-line {2} {1}' \
108
+ --preview-window '~3:+{2}+3/2'
109
+ ```
110
+ - Added `select` and `deselect` action for unconditionally selecting or
111
+ deselecting a single item in `--multi` mode. Complements `toggle` action.
112
+ - Significant performance improvement in ANSI code processing
113
+ - Bug fixes and improvements
114
+ - Built with Go 1.16
115
+
116
+ 0.25.1
117
+ ------
118
+ - Added `close` action
119
+ - Close preview window if open, abort fzf otherwise
120
+ - Bug fixes and improvements
121
+
122
+ 0.25.0
123
+ ------
124
+ - Text attributes set in `--color` are not reset when fzf sees another
125
+ `--color` option for the same element. This allows you to put custom text
126
+ attributes in your `$FZF_DEFAULT_OPTS` and still have those attributes
127
+ even when you override the colors.
128
+
129
+ ```sh
130
+ # Default colors and attributes
131
+ fzf
132
+
133
+ # Apply custom text attributes
134
+ export FZF_DEFAULT_OPTS='--color fg+:italic,hl:-1:underline,hl+:-1:reverse:underline'
135
+
136
+ fzf
137
+
138
+ # Different colors but you still have the attributes
139
+ fzf --color hl:176,hl+:177
140
+
141
+ # Write "regular" if you want to clear the attributes
142
+ fzf --color hl:176:regular,hl+:177:regular
143
+ ```
144
+ - Renamed `--phony` to `--disabled`
145
+ - You can dynamically enable and disable the search functionality using the
146
+ new `enable-search`, `disable-search`, and `toggle-search` actions
147
+ - You can assign a different color to the query string for when search is disabled
148
+ ```sh
149
+ fzf --color query:#ffffff,disabled:#999999 --bind space:toggle-search
150
+ ```
151
+ - Added `last` action to move the cursor to the last match
152
+ - The opposite action `top` is renamed to `first`, but `top` is still
153
+ recognized as a synonym for backward compatibility
154
+ - Added `preview-top` and `preview-bottom` actions
155
+ - Extended support for alt key chords: alt with any case-sensitive single character
156
+ ```sh
157
+ fzf --bind alt-,:first,alt-.:last
158
+ ```
159
+
160
+ 0.24.4
161
+ ------
162
+ - Added `--preview-window` option `follow`
163
+ ```sh
164
+ # Preview window will automatically scroll to the bottom
165
+ fzf --preview-window follow --preview 'for i in $(seq 100000); do
166
+ echo "$i"
167
+ sleep 0.01
168
+ (( i % 300 == 0 )) && printf "\033[2J"
169
+ done'
170
+ ```
171
+ - Added `change-prompt` action
172
+ ```sh
173
+ fzf --prompt 'foo> ' --bind $'a:change-prompt:\x1b[31mbar> '
174
+ ```
175
+ - Bug fixes and improvements
176
+
177
+ 0.24.3
178
+ ------
179
+ - Added `--padding` option
180
+ ```sh
181
+ fzf --margin 5% --padding 5% --border --preview 'cat {}' \
182
+ --color bg:#222222,preview-bg:#333333
183
+ ```
184
+
185
+ 0.24.2
186
+ ------
187
+ - Bug fixes and improvements
188
+
189
+ 0.24.1
190
+ ------
191
+ - Fixed broken `--color=[bw|no]` option
192
+
193
+ 0.24.0
194
+ ------
195
+ - Real-time rendering of preview window
196
+ ```sh
197
+ # fzf can render preview window before the command completes
198
+ fzf --preview 'sleep 1; for i in $(seq 100); do echo $i; sleep 0.01; done'
199
+
200
+ # Preview window can process ANSI escape sequence (CSI 2 J) for clearing the display
201
+ fzf --preview 'for i in $(seq 100000); do
202
+ (( i % 200 == 0 )) && printf "\033[2J"
203
+ echo "$i"
204
+ sleep 0.01
205
+ done'
206
+ ```
207
+ - Updated `--color` option to support text styles
208
+ - `regular` / `bold` / `dim` / `underline` / `italic` / `reverse` / `blink`
209
+ ```sh
210
+ # * Set -1 to keep the original color
211
+ # * Multiple style attributes can be combined
212
+ # * Italic style may not be supported by some terminals
213
+ rg --line-number --no-heading --color=always "" |
214
+ fzf --ansi --prompt "Rg: " \
215
+ --color fg+:italic,hl:underline:-1,hl+:italic:underline:reverse:-1 \
216
+ --color pointer:reverse,prompt:reverse,input:159 \
217
+ --pointer ' '
218
+ ```
219
+ - More `--border` options
220
+ - `vertical`, `top`, `bottom`, `left`, `right`
221
+ - Updated Vim plugin to use these new `--border` options
222
+ ```vim
223
+ " Floating popup window in the center of the screen
224
+ let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
225
+
226
+ " Popup with 100% width
227
+ let g:fzf_layout = { 'window': { 'width': 1.0, 'height': 0.5, 'border': 'horizontal' } }
228
+
229
+ " Popup with 100% height
230
+ let g:fzf_layout = { 'window': { 'width': 0.5, 'height': 1.0, 'border': 'vertical' } }
231
+
232
+ " Similar to 'down' layout, but it uses a popup window and doesn't affect the window layout
233
+ let g:fzf_layout = { 'window': { 'width': 1.0, 'height': 0.5, 'yoffset': 1.0, 'border': 'top' } }
234
+
235
+ " Opens on the right;
236
+ " 'highlight' option is still supported but it will only take the foreground color of the group
237
+ let g:fzf_layout = { 'window': { 'width': 0.5, 'height': 1.0, 'xoffset': 1.0, 'border': 'left', 'highlight': 'Comment' } }
238
+ ```
239
+ - To indicate if `--multi` mode is enabled, fzf will print the number of
240
+ selected items even when no item is selected
241
+ ```sh
242
+ seq 100 | fzf
243
+ # 100/100
244
+ seq 100 | fzf --multi
245
+ # 100/100 (0)
246
+ seq 100 | fzf --multi 5
247
+ # 100/100 (0/5)
248
+ ```
249
+ - Since 0.24.0, release binaries will be uploaded to https://github.com/junegunn/fzf/releases
250
+
251
+ 0.23.1
252
+ ------
253
+ - Added `--preview-window` options for disabling flags
254
+ - `nocycle`
255
+ - `nohidden`
256
+ - `nowrap`
257
+ - `default`
258
+ - Built with Go 1.14.9 due to performance regression
259
+ - https://github.com/golang/go/issues/40727
260
+
261
+ 0.23.0
262
+ ------
263
+ - Support preview scroll offset relative to window height
264
+ ```sh
265
+ git grep --line-number '' |
266
+ fzf --delimiter : \
267
+ --preview 'bat --style=numbers --color=always --highlight-line {2} {1}' \
268
+ --preview-window +{2}-/2
269
+ ```
270
+ - Added `--preview-window` option for sharp edges (`--preview-window sharp`)
271
+ - Added `--preview-window` option for cyclic scrolling (`--preview-window cycle`)
272
+ - Reduced vertical padding around the preview window when `--preview-window
273
+ noborder` is used
274
+ - Added actions for preview window
275
+ - `preview-half-page-up`
276
+ - `preview-half-page-down`
277
+ - Vim
278
+ - Popup width and height can be given in absolute integer values
279
+ - Added `fzf#exec()` function for getting the path of fzf executable
280
+ - It also downloads the latest binary if it's not available by running
281
+ `./install --bin`
282
+ - Built with Go 1.15.2
283
+ - We no longer provide 32-bit binaries
284
+
285
+ 0.22.0
286
+ ------
287
+ - Added more options for `--bind`
288
+ - `backward-eof` event
289
+ ```sh
290
+ # Aborts when you delete backward when the query prompt is already empty
291
+ fzf --bind backward-eof:abort
292
+ ```
293
+ - `refresh-preview` action
294
+ ```sh
295
+ # Rerun preview command when you hit '?'
296
+ fzf --preview 'echo $RANDOM' --bind '?:refresh-preview'
297
+ ```
298
+ - `preview` action
299
+ ```sh
300
+ # Default preview command with an extra preview binding
301
+ fzf --preview 'file {}' --bind '?:preview:cat {}'
302
+
303
+ # A preview binding with no default preview command
304
+ # (Preview window is initially empty)
305
+ fzf --bind '?:preview:cat {}'
306
+
307
+ # Preview window hidden by default, it appears when you first hit '?'
308
+ fzf --bind '?:preview:cat {}' --preview-window hidden
309
+ ```
310
+ - Added preview window option for setting the initial scroll offset
311
+ ```sh
312
+ # Initial scroll offset is set to the line number of each line of
313
+ # git grep output *minus* 5 lines
314
+ git grep --line-number '' |
315
+ fzf --delimiter : --preview 'nl {1}' --preview-window +{2}-5
316
+ ```
317
+ - Added support for ANSI colors in `--prompt` string
318
+ - Smart match of accented characters
319
+ - An unaccented character in the query string will match both accented and
320
+ unaccented characters, while an accented character will only match
321
+ accented characters. This is similar to how "smart-case" match works.
322
+ - Vim plugin
323
+ - `tmux` layout option for using fzf-tmux
324
+ ```vim
325
+ let g:fzf_layout = { 'tmux': '-p90%,60%' }
326
+ ```
327
+
328
+ 0.21.1
329
+ ------
330
+ - Shell extension
331
+ - CTRL-R will remove duplicate commands
332
+ - fzf-tmux
333
+ - Supports tmux popup window (require tmux 3.2 or above)
334
+ - ```sh
335
+ # 50% width and height
336
+ fzf-tmux -p
337
+
338
+ # 80% width and height
339
+ fzf-tmux -p 80%
340
+
341
+ # 80% width and 40% height
342
+ fzf-tmux -p 80%,40%
343
+ fzf-tmux -w 80% -h 40%
344
+
345
+ # Window position
346
+ fzf-tmux -w 80% -h 40% -x 0 -y 0
347
+ fzf-tmux -w 80% -h 40% -y 1000
348
+
349
+ # Write ordinary fzf options after --
350
+ fzf-tmux -p -- --reverse --info=inline --margin 2,4 --border
351
+ ```
352
+ - On macOS, you can build the latest tmux from the source with
353
+ `brew install tmux --HEAD`
354
+ - Bug fixes
355
+ - Fixed Windows file traversal not to include directories
356
+ - Fixed ANSI colors with `--keep-right`
357
+ - Fixed _fzf_complete for zsh
358
+ - Built with Go 1.14.1
359
+
360
+ 0.21.0
361
+ ------
362
+ - `--height` option is now available on Windows as well (@kelleyma49)
363
+ - Added `--pointer` and `--marker` options
364
+ - Added `--keep-right` option that keeps the right end of the line visible
365
+ when it's too long
366
+ - Style changes
367
+ - `--border` will now print border with rounded corners around the
368
+ finder instead of printing horizontal lines above and below it.
369
+ The previous style is available via `--border=horizontal`
370
+ - Unicode spinner
371
+ - More keys and actions for `--bind`
372
+ - Added PowerShell script for downloading Windows binary
373
+ - Vim plugin: Built-in floating windows support
374
+ ```vim
375
+ let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
376
+ ```
377
+ - bash: Various improvements in key bindings (CTRL-T, CTRL-R, ALT-C)
378
+ - CTRL-R will start with the current command-line as the initial query
379
+ - CTRL-R properly supports multi-line commands
380
+ - Fuzzy completion API changed
381
+ ```sh
382
+ # Previous: fzf arguments given as a single string argument
383
+ # - This style is still supported, but it's deprecated
384
+ _fzf_complete "--multi --reverse --prompt=\"doge> \"" "$@" < <(
385
+ echo foo
386
+ )
387
+
388
+ # New API: multiple fzf arguments before "--"
389
+ # - Easier to write multiple options
390
+ _fzf_complete --multi --reverse --prompt="doge> " -- "$@" < <(
391
+ echo foo
392
+ )
393
+ ```
394
+ - Bug fixes and improvements
395
+
396
+ 0.20.0
397
+ ------
398
+ - Customizable preview window color (`preview-fg` and `preview-bg` for `--color`)
399
+ ```sh
400
+ fzf --preview 'cat {}' \
401
+ --color 'fg:#bbccdd,fg+:#ddeeff,bg:#334455,preview-bg:#223344,border:#778899' \
402
+ --border --height 20 --layout reverse --info inline
403
+ ```
404
+ - Removed the immediate flicking of the screen on `reload` action.
405
+ ```sh
406
+ : | fzf --bind 'change:reload:seq {q}' --phony
407
+ ```
408
+ - Added `clear-query` and `clear-selection` actions for `--bind`
409
+ - It is now possible to split a composite bind action over multiple `--bind`
410
+ expressions by prefixing the later ones with `+`.
411
+ ```sh
412
+ fzf --bind 'ctrl-a:up+up'
413
+
414
+ # Can be now written as
415
+ fzf --bind 'ctrl-a:up' --bind 'ctrl-a:+up'
416
+
417
+ # This is useful when you need to write special execute/reload form (i.e. `execute:...`)
418
+ # to avoid parse errors and add more actions to the same key
419
+ fzf --multi --bind 'ctrl-l:select-all+execute:less {+f}' --bind 'ctrl-l:+deselect-all'
420
+ ```
421
+ - Fixed parse error of `--bind` expression where concatenated execute/reload
422
+ action contains `+` character.
423
+ ```sh
424
+ fzf --multi --bind 'ctrl-l:select-all+execute(less {+f})+deselect-all'
425
+ ```
426
+ - Fixed bugs of reload action
427
+ - Not triggered when there's no match even when the command doesn't have
428
+ any placeholder expressions
429
+ - Screen not properly cleared when `--header-lines` not filled on reload
430
+
431
+ 0.19.0
432
+ ------
433
+
434
+ - Added `--phony` option which completely disables search functionality.
435
+ Useful when you want to use fzf only as a selector interface. See below.
436
+ - Added "reload" action for dynamically updating the input list without
437
+ restarting fzf. See https://github.com/junegunn/fzf/issues/1750 to learn
438
+ more about it.
439
+ ```sh
440
+ # Using fzf as the selector interface for ripgrep
441
+ RG_PREFIX="rg --column --line-number --no-heading --color=always --smart-case "
442
+ INITIAL_QUERY="foo"
443
+ FZF_DEFAULT_COMMAND="$RG_PREFIX '$INITIAL_QUERY' || true" \
444
+ fzf --bind "change:reload:$RG_PREFIX {q} || true" \
445
+ --ansi --phony --query "$INITIAL_QUERY"
446
+ ```
447
+ - `--multi` now takes an optional integer argument which indicates the maximum
448
+ number of items that can be selected
449
+ ```sh
450
+ seq 100 | fzf --multi 3 --reverse --height 50%
451
+ ```
452
+ - If a placeholder expression for `--preview` and `execute` action (and the
453
+ new `reload` action) contains `f` flag, it is replaced to the
454
+ path of a temporary file that holds the evaluated list. This is useful
455
+ when you multi-select a large number of items and the length of the
456
+ evaluated string may exceed [`ARG_MAX`][argmax].
457
+ ```sh
458
+ # Press CTRL-A to select 100K items and see the sum of all the numbers
459
+ seq 100000 | fzf --multi --bind ctrl-a:select-all \
460
+ --preview "awk '{sum+=\$1} END {print sum}' {+f}"
461
+ ```
462
+ - `deselect-all` no longer deselects unmatched items. It is now consistent
463
+ with `select-all` and `toggle-all` in that it only affects matched items.
464
+ - Due to the limitation of bash, fuzzy completion is enabled by default for
465
+ a fixed set of commands. A helper function for easily setting up fuzzy
466
+ completion for any command is now provided.
467
+ ```sh
468
+ # usage: _fzf_setup_completion path|dir COMMANDS...
469
+ _fzf_setup_completion path git kubectl
470
+ ```
471
+ - Info line style can be changed by `--info=STYLE`
472
+ - `--info=default`
473
+ - `--info=inline` (same as old `--inline-info`)
474
+ - `--info=hidden`
475
+ - Preview window border can be disabled by adding `noborder` to
476
+ `--preview-window`.
477
+ - When you transform the input with `--with-nth`, the trailing white spaces
478
+ are removed.
479
+ - `ctrl-\`, `ctrl-]`, `ctrl-^`, and `ctrl-/` can now be used with `--bind`
480
+ - See https://github.com/junegunn/fzf/milestone/15?closed=1 for more details
481
+
482
+ [argmax]: https://unix.stackexchange.com/questions/120642/what-defines-the-maximum-size-for-a-command-single-argument
483
+
484
+ 0.18.0
485
+ ------
486
+
487
+ - Added placeholder expression for zero-based item index: `{n}` and `{+n}`
488
+ - `fzf --preview 'echo {n}: {}'`
489
+ - Added color option for the gutter: `--color gutter:-1`
490
+ - Added `--no-unicode` option for drawing borders in non-Unicode, ASCII
491
+ characters
492
+ - `FZF_PREVIEW_LINES` and `FZF_PREVIEW_COLUMNS` are exported to preview process
493
+ - fzf still overrides `LINES` and `COLUMNS` as before, but they may be
494
+ reset by the default shell.
495
+ - Bug fixes and improvements
496
+ - See https://github.com/junegunn/fzf/milestone/14?closed=1
497
+ - Built with Go 1.12.1
498
+
499
+ 0.17.5
500
+ ------
501
+
502
+ - Bug fixes and improvements
503
+ - See https://github.com/junegunn/fzf/milestone/13?closed=1
504
+ - Search query longer than the screen width is allowed (up to 300 chars)
505
+ - Built with Go 1.11.1
506
+
507
+ 0.17.4
508
+ ------
509
+
510
+ - Added `--layout` option with a new layout called `reverse-list`.
511
+ - `--layout=reverse` is a synonym for `--reverse`
512
+ - `--layout=default` is a synonym for `--no-reverse`
513
+ - Preview window will be updated even when there is no match for the query
514
+ if any of the placeholder expressions (e.g. `{q}`, `{+}`) evaluates to
515
+ a non-empty string.
516
+ - More keys for binding: `shift-{up,down}`, `alt-{up,down,left,right}`
517
+ - fzf can now start even when `/dev/tty` is not available by making an
518
+ educated guess.
519
+ - Updated the default command for Windows.
520
+ - Fixes and improvements on bash/zsh completion
521
+ - install and uninstall scripts now supports generating files under
522
+ `XDG_CONFIG_HOME` on `--xdg` flag.
523
+
524
+ See https://github.com/junegunn/fzf/milestone/12?closed=1 for the full list of
525
+ changes.
526
+
527
+ 0.17.3
528
+ ------
529
+ - `$LINES` and `$COLUMNS` are exported to preview command so that the command
530
+ knows the exact size of the preview window.
531
+ - Better error messages when the default command or `$FZF_DEFAULT_COMMAND`
532
+ fails.
533
+ - Reverted #1061 to avoid having duplicate entries in the list when find
534
+ command detected a file system loop (#1120). The default command now
535
+ requires that find supports `-fstype` option.
536
+ - fzf now distinguishes mouse left click and right click (#1130)
537
+ - Right click is now bound to `toggle` action by default
538
+ - `--bind` understands `left-click` and `right-click`
539
+ - Added `replace-query` action (#1137)
540
+ - Replaces query string with the current selection
541
+ - Added `accept-non-empty` action (#1162)
542
+ - Same as accept, except that it prevents fzf from exiting without any
543
+ selection
544
+
545
+ 0.17.1
546
+ ------
547
+
548
+ - Fixed custom background color of preview window (#1046)
549
+ - Fixed background color issues of Windows binary
550
+ - Fixed Windows binary to execute command using cmd.exe with no parsing and
551
+ escaping (#1072)
552
+ - Added support for `window` layout on Vim 8 using Vim 8 terminal (#1055)
553
+
554
+ 0.17.0-2
555
+ --------
556
+
557
+ A maintenance release for auxiliary scripts. fzf binaries are not updated.
558
+
559
+ - Experimental support for the builtin terminal of Vim 8
560
+ - fzf can now run inside GVim
561
+ - Updated Vim plugin to better handle `&shell` issue on fish
562
+ - Fixed a bug of fzf-tmux where invalid output is generated
563
+ - Fixed fzf-tmux to work even when `tput` does not work
564
+
565
+ 0.17.0
566
+ ------
567
+ - Performance optimization
568
+ - One can match literal spaces in extended-search mode with a space prepended
569
+ by a backslash.
570
+ - `--expect` is now additive and can be specified multiple times.
571
+
572
+ 0.16.11
573
+ -------
574
+ - Performance optimization
575
+ - Fixed missing preview update
576
+
577
+ 0.16.10
578
+ -------
579
+ - Fixed invalid handling of ANSI colors in preview window
580
+ - Further improved `--ansi` performance
581
+
582
+ 0.16.9
583
+ ------
584
+ - Memory and performance optimization
585
+ - Around 20% performance improvement for general use cases
586
+ - Up to 5x faster processing of `--ansi`
587
+ - Up to 50% reduction of memory usage
588
+ - Bug fixes and usability improvements
589
+ - Fixed handling of bracketed paste mode
590
+ - [ERROR] on info line when the default command failed
591
+ - More efficient rendering of preview window
592
+ - `--no-clear` updated for repetitive relaunching scenarios
593
+
594
+ 0.16.8
595
+ ------
596
+ - New `change` event and `top` action for `--bind`
597
+ - `fzf --bind change:top`
598
+ - Move cursor to the top result whenever the query string is changed
599
+ - `fzf --bind 'ctrl-w:unix-word-rubout+top,ctrl-u:unix-line-discard+top'`
600
+ - `top` combined with `unix-word-rubout` and `unix-line-discard`
601
+ - Fixed inconsistent tiebreak scores when `--nth` is used
602
+ - Proper display of tab characters in `--prompt`
603
+ - Fixed not to `--cycle` on page-up/page-down to prevent overshoot
604
+ - Git revision in `--version` output
605
+ - Basic support for Cygwin environment
606
+ - Many fixes in Vim plugin on Windows/Cygwin (thanks to @janlazo)
607
+
608
+ 0.16.7
609
+ ------
610
+ - Added support for `ctrl-alt-[a-z]` key chords
611
+ - CTRL-Z (SIGSTOP) now works with fzf
612
+ - fzf will export `$FZF_PREVIEW_WINDOW` so that the scripts can use it
613
+ - Bug fixes and improvements in Vim plugin and shell extensions
614
+
615
+ 0.16.6
616
+ ------
617
+ - Minor bug fixes and improvements
618
+ - Added `--no-clear` option for scripting purposes
619
+
620
+ 0.16.5
621
+ ------
622
+ - Minor bug fixes
623
+ - Added `toggle-preview-wrap` action
624
+ - Built with Go 1.8
625
+
626
+ 0.16.4
627
+ ------
628
+ - Added `--border` option to draw border above and below the finder
629
+ - Bug fixes and improvements
630
+
631
+ 0.16.3
632
+ ------
633
+ - Fixed a bug where fzf incorrectly display the lines when straddling tab
634
+ characters are trimmed
635
+ - Placeholder expression used in `--preview` and `execute` action can
636
+ optionally take `+` flag to be used with multiple selections
637
+ - e.g. `git log --oneline | fzf --multi --preview 'git show {+1}'`
638
+ - Added `execute-silent` action for executing a command silently without
639
+ switching to the alternate screen. This is useful when the process is
640
+ short-lived and you're not interested in its output.
641
+ - e.g. `fzf --bind 'ctrl-y:execute!(echo -n {} | pbcopy)'`
642
+ - `ctrl-space` is allowed in `--bind`
643
+
644
+ 0.16.2
645
+ ------
646
+ - Dropped ncurses dependency
647
+ - Binaries for freebsd, openbsd, arm5, arm6, arm7, and arm8
648
+ - Official 24-bit color support
649
+ - Added support for composite actions in `--bind`. Multiple actions can be
650
+ chained using `+` separator.
651
+ - e.g. `fzf --bind 'ctrl-y:execute(echo -n {} | pbcopy)+abort'`
652
+ - `--preview-window` with size 0 is allowed. This is used to make fzf execute
653
+ preview command in the background without displaying the result.
654
+ - Minor bug fixes and improvements
655
+
656
+ 0.16.1
657
+ ------
658
+ - Fixed `--height` option to properly fill the window with the background
659
+ color
660
+ - Added `half-page-up` and `half-page-down` actions
661
+ - Added `-L` flag to the default find command
662
+
663
+ 0.16.0
664
+ ------
665
+ - *Added `--height HEIGHT[%]` option*
666
+ - fzf can now display finder without occupying the full screen
667
+ - Preview window will truncate long lines by default. Line wrap can be enabled
668
+ by `:wrap` flag in `--preview-window`.
669
+ - Latin script letters will be normalized before matching so that it's easier
670
+ to match against accented letters. e.g. `sodanco` can match `Só Danço Samba`.
671
+ - Normalization can be disabled via `--literal`
672
+ - Added `--filepath-word` to make word-wise movements/actions (`alt-b`,
673
+ `alt-f`, `alt-bs`, `alt-d`) respect path separators
674
+
675
+ 0.15.9
676
+ ------
677
+ - Fixed rendering glitches introduced in 0.15.8
678
+ - The default escape delay is reduced to 50ms and is configurable via
679
+ `$ESCDELAY`
680
+ - Scroll indicator at the top-right corner of the preview window is always
681
+ displayed when there's overflow
682
+ - Can now be built with ncurses 6 or tcell to support extra features
683
+ - *ncurses 6*
684
+ - Supports more than 256 color pairs
685
+ - Supports italics
686
+ - *tcell*
687
+ - 24-bit color support
688
+ - See https://github.com/junegunn/fzf/blob/master/BUILD.md
689
+
690
+ 0.15.8
691
+ ------
692
+ - Updated ANSI processor to handle more VT-100 escape sequences
693
+ - Added `--no-bold` (and `--bold`) option
694
+ - Improved escape sequence processing for WSL
695
+ - Added support for `alt-[0-9]`, `f11`, and `f12` for `--bind` and `--expect`
696
+
697
+ 0.15.7
698
+ ------
699
+ - Fixed panic when color is disabled and header lines contain ANSI colors
700
+
701
+ 0.15.6
702
+ ------
703
+ - Windows binaries! (@kelleyma49)
704
+ - Fixed the bug where header lines are cleared when preview window is toggled
705
+ - Fixed not to display ^N and ^O on screen
706
+ - Fixed cursor keys (or any key sequence that starts with ESC) on WSL by
707
+ making fzf wait for additional keystrokes after ESC for up to 100ms
708
+
709
+ 0.15.5
710
+ ------
711
+ - Setting foreground color will no longer set background color to black
712
+ - e.g. `fzf --color fg:153`
713
+ - `--tiebreak=end` will consider relative position instead of absolute distance
714
+ - Updated `fzf#wrap` function to respect `g:fzf_colors`
715
+
716
+ 0.15.4
717
+ ------
718
+ - Added support for range expression in preview and execute action
719
+ - e.g. `ls -l | fzf --preview="echo user={3} when={-4..-2}; cat {-1}" --header-lines=1`
720
+ - `{q}` will be replaced to the single-quoted string of the current query
721
+ - Fixed to properly handle unicode whitespace characters
722
+ - Display scroll indicator in preview window
723
+ - Inverse search term will use exact matcher by default
724
+ - This is a breaking change, but I believe it makes much more sense. It is
725
+ almost impossible to predict which entries will be filtered out due to
726
+ a fuzzy inverse term. You can still perform inverse-fuzzy-match by
727
+ prepending `!'` to the term.
728
+
729
+ 0.15.3
730
+ ------
731
+ - Added support for more ANSI attributes: dim, underline, blink, and reverse
732
+ - Fixed race condition in `toggle-preview`
733
+
734
+ 0.15.2
735
+ ------
736
+ - Preview window is now scrollable
737
+ - With mouse scroll or with bindable actions
738
+ - `preview-up`
739
+ - `preview-down`
740
+ - `preview-page-up`
741
+ - `preview-page-down`
742
+ - Updated ANSI processor to support high intensity colors and ignore
743
+ some VT100-related escape sequences
744
+
745
+ 0.15.1
746
+ ------
747
+ - Fixed panic when the pattern occurs after 2^15-th column
748
+ - Fixed rendering delay when displaying extremely long lines
749
+
750
+ 0.15.0
751
+ ------
752
+ - Improved fuzzy search algorithm
753
+ - Added `--algo=[v1|v2]` option so one can still choose the old algorithm
754
+ which values the search performance over the quality of the result
755
+ - Advanced scoring criteria
756
+ - `--read0` to read input delimited by ASCII NUL character
757
+ - `--print0` to print output delimited by ASCII NUL character
758
+
759
+ 0.13.5
760
+ ------
761
+ - Memory and performance optimization
762
+ - Up to 2x performance with half the amount of memory
763
+
764
+ 0.13.4
765
+ ------
766
+ - Performance optimization
767
+ - Memory footprint for ascii string is reduced by 60%
768
+ - 15 to 20% improvement of query performance
769
+ - Up to 45% better performance of `--nth` with non-regex delimiters
770
+ - Fixed invalid handling of `hidden` property of `--preview-window`
771
+
772
+ 0.13.3
773
+ ------
774
+ - Fixed duplicate rendering of the last line in preview window
775
+
776
+ 0.13.2
777
+ ------
778
+ - Fixed race condition where preview window is not properly cleared
779
+
780
+ 0.13.1
781
+ ------
782
+ - Fixed UI issue with large `--preview` output with many ANSI codes
783
+
784
+ 0.13.0
785
+ ------
786
+ - Added preview feature
787
+ - `--preview CMD`
788
+ - `--preview-window POS[:SIZE][:hidden]`
789
+ - `{}` in execute action is now replaced to the single-quoted (instead of
790
+ double-quoted) string of the current line
791
+ - Fixed to ignore control characters for bracketed paste mode
792
+
793
+ 0.12.2
794
+ ------
795
+
796
+ - 256-color capability detection does not require `256` in `$TERM`
797
+ - Added `print-query` action
798
+ - More named keys for binding; <kbd>F1</kbd> ~ <kbd>F10</kbd>,
799
+ <kbd>ALT-/</kbd>, <kbd>ALT-space</kbd>, and <kbd>ALT-enter</kbd>
800
+ - Added `jump` and `jump-accept` actions that implement [EasyMotion][em]-like
801
+ movement
802
+ ![][jump]
803
+
804
+ [em]: https://github.com/easymotion/vim-easymotion
805
+ [jump]: https://cloud.githubusercontent.com/assets/700826/15367574/b3999dc4-1d64-11e6-85da-28ceeb1a9bc2.png
806
+
807
+ 0.12.1
808
+ ------
809
+
810
+ - Ranking algorithm introduced in 0.12.0 is now universally applied
811
+ - Fixed invalid cache reference in exact mode
812
+ - Fixes and improvements in Vim plugin and shell extensions
813
+
814
+ 0.12.0
815
+ ------
816
+
817
+ - Enhanced ranking algorithm
818
+ - Minor bug fixes
819
+
820
+ 0.11.4
821
+ ------
822
+
823
+ - Added `--hscroll-off=COL` option (default: 10) (#513)
824
+ - Some fixes in Vim plugin and shell extensions
825
+
826
+ 0.11.3
827
+ ------
828
+
829
+ - Graceful exit on SIGTERM (#482)
830
+ - `$SHELL` instead of `sh` for `execute` action and `$FZF_DEFAULT_COMMAND` (#481)
831
+ - Changes in fuzzy completion API
832
+ - [`_fzf_compgen_{path,dir}`](https://github.com/junegunn/fzf/commit/9617647)
833
+ - [`_fzf_complete_COMMAND_post`](https://github.com/junegunn/fzf/commit/8206746)
834
+ for post-processing
835
+
836
+ 0.11.2
837
+ ------
838
+
839
+ - `--tiebreak` now accepts comma-separated list of sort criteria
840
+ - Each criterion should appear only once in the list
841
+ - `index` is only allowed at the end of the list
842
+ - `index` is implicitly appended to the list when not specified
843
+ - Default is `length` (or equivalently `length,index`)
844
+ - `begin` criterion will ignore leading whitespaces when calculating the index
845
+ - Added `toggle-in` and `toggle-out` actions
846
+ - Switch direction depending on `--reverse`-ness
847
+ - `export FZF_DEFAULT_OPTS="--bind tab:toggle-out,shift-tab:toggle-in"`
848
+ - Reduced the initial delay when `--tac` is not given
849
+ - fzf defers the initial rendering of the screen up to 100ms if the input
850
+ stream is ongoing to prevent unnecessary redraw during the initial
851
+ phase. However, 100ms delay is quite noticeable and might give the
852
+ impression that fzf is not snappy enough. This commit reduces the
853
+ maximum delay down to 20ms when `--tac` is not specified, in which case
854
+ the input list quickly fills the entire screen.
855
+
856
+ 0.11.1
857
+ ------
858
+
859
+ - Added `--tabstop=SPACES` option
860
+
861
+ 0.11.0
862
+ ------
863
+
864
+ - Added OR operator for extended-search mode
865
+ - Added `--execute-multi` action
866
+ - Fixed incorrect cursor position when unicode wide characters are used in
867
+ `--prompt`
868
+ - Fixes and improvements in shell extensions
869
+
870
+ 0.10.9
871
+ ------
872
+
873
+ - Extended-search mode is now enabled by default
874
+ - `--extended-exact` is deprecated and instead we have `--exact` for
875
+ orthogonally controlling "exactness" of search
876
+ - Fixed not to display non-printable characters
877
+ - Added `double-click` for `--bind` option
878
+ - More robust handling of SIGWINCH
879
+
880
+ 0.10.8
881
+ ------
882
+
883
+ - Fixed panic when trying to set colors after colors are disabled (#370)
884
+
885
+ 0.10.7
886
+ ------
887
+
888
+ - Fixed unserialized interrupt handling during execute action which often
889
+ caused invalid memory access and crash
890
+ - Changed `--tiebreak=length` (default) to use trimmed length when `--nth` is
891
+ used
892
+
893
+ 0.10.6
894
+ ------
895
+
896
+ - Replaced `--header-file` with `--header` option
897
+ - `--header` and `--header-lines` can be used together
898
+ - Changed exit status
899
+ - 0: Okay
900
+ - 1: No match
901
+ - 2: Error
902
+ - 130: Interrupted
903
+ - 64-bit linux binary is statically-linked with ncurses to avoid
904
+ compatibility issues.
905
+
906
+ 0.10.5
907
+ ------
908
+
909
+ - `'`-prefix to unquote the term in `--extended-exact` mode
910
+ - Backward scan when `--tiebreak=end` is set
911
+
912
+ 0.10.4
913
+ ------
914
+
915
+ - Fixed to remove ANSI code from output when `--with-nth` is set
916
+
917
+ 0.10.3
918
+ ------
919
+
920
+ - Fixed slow performance of `--with-nth` when used with `--delimiter`
921
+ - Regular expression engine of Golang as of now is very slow, so the fixed
922
+ version will treat the given delimiter pattern as a plain string instead
923
+ of a regular expression unless it contains special characters and is
924
+ a valid regular expression.
925
+ - Simpler regular expression for delimiter for better performance
926
+
927
+ 0.10.2
928
+ ------
929
+
930
+ ### Fixes and improvements
931
+
932
+ - Improvement in perceived response time of queries
933
+ - Eager, efficient rune array conversion
934
+ - Graceful exit when failed to initialize ncurses (invalid $TERM)
935
+ - Improved ranking algorithm when `--nth` option is set
936
+ - Changed the default command not to fail when there are files whose names
937
+ start with dash
938
+
939
+ 0.10.1
940
+ ------
941
+
942
+ ### New features
943
+
944
+ - Added `--margin` option
945
+ - Added options for sticky header
946
+ - `--header-file`
947
+ - `--header-lines`
948
+ - Added `cancel` action which clears the input or closes the finder when the
949
+ input is already empty
950
+ - e.g. `export FZF_DEFAULT_OPTS="--bind esc:cancel"`
951
+ - Added `delete-char/eof` action to differentiate `CTRL-D` and `DEL`
952
+
953
+ ### Minor improvements/fixes
954
+
955
+ - Fixed to allow binding colon and comma keys
956
+ - Fixed ANSI processor to handle color regions spanning multiple lines
957
+
958
+ 0.10.0
959
+ ------
960
+
961
+ ### New features
962
+
963
+ - More actions for `--bind`
964
+ - `select-all`
965
+ - `deselect-all`
966
+ - `toggle-all`
967
+ - `ignore`
968
+ - `execute(...)` action for running arbitrary command without leaving fzf
969
+ - `fzf --bind "ctrl-m:execute(less {})"`
970
+ - `fzf --bind "ctrl-t:execute(tmux new-window -d 'vim {}')"`
971
+ - If the command contains parentheses, use any of the follows alternative
972
+ notations to avoid parse errors
973
+ - `execute[...]`
974
+ - `execute~...~`
975
+ - `execute!...!`
976
+ - `execute@...@`
977
+ - `execute#...#`
978
+ - `execute$...$`
979
+ - `execute%...%`
980
+ - `execute^...^`
981
+ - `execute&...&`
982
+ - `execute*...*`
983
+ - `execute;...;`
984
+ - `execute/.../`
985
+ - `execute|...|`
986
+ - `execute:...`
987
+ - This is the special form that frees you from parse errors as it
988
+ does not expect the closing character
989
+ - The catch is that it should be the last one in the
990
+ comma-separated list
991
+ - Added support for optional search history
992
+ - `--history HISTORY_FILE`
993
+ - When used, `CTRL-N` and `CTRL-P` are automatically remapped to
994
+ `next-history` and `previous-history`
995
+ - `--history-size MAX_ENTRIES` (default: 1000)
996
+ - Cyclic scrolling can be enabled with `--cycle`
997
+ - Fixed the bug where the spinner was not spinning on idle input stream
998
+ - e.g. `sleep 100 | fzf`
999
+
1000
+ ### Minor improvements/fixes
1001
+
1002
+ - Added synonyms for key names that can be specified for `--bind`,
1003
+ `--toggle-sort`, and `--expect`
1004
+ - Fixed the color of multi-select marker on the current line
1005
+ - Fixed to allow `^pattern$` in extended-search mode
1006
+
1007
+
1008
+ 0.9.13
1009
+ ------
1010
+
1011
+ ### New features
1012
+
1013
+ - Color customization with the extended `--color` option
1014
+
1015
+ ### Bug fixes
1016
+
1017
+ - Fixed premature termination of Reader in the presence of a long line which
1018
+ is longer than 64KB
1019
+
1020
+ 0.9.12
1021
+ ------
1022
+
1023
+ ### New features
1024
+
1025
+ - Added `--bind` option for custom key bindings
1026
+
1027
+ ### Bug fixes
1028
+
1029
+ - Fixed to update "inline-info" immediately after terminal resize
1030
+ - Fixed ANSI code offset calculation
1031
+
1032
+ 0.9.11
1033
+ ------
1034
+
1035
+ ### New features
1036
+
1037
+ - Added `--inline-info` option for saving screen estate (#202)
1038
+ - Useful inside Neovim
1039
+ - e.g. `let $FZF_DEFAULT_OPTS = $FZF_DEFAULT_OPTS.' --inline-info'`
1040
+
1041
+ ### Bug fixes
1042
+
1043
+ - Invalid mutation of input on case conversion (#209)
1044
+ - Smart-case for each term in extended-search mode (#208)
1045
+ - Fixed double-click result when scroll offset is positive
1046
+
1047
+ 0.9.10
1048
+ ------
1049
+
1050
+ ### Improvements
1051
+
1052
+ - Performance optimization
1053
+ - Less aggressive memoization to limit memory usage
1054
+
1055
+ ### New features
1056
+
1057
+ - Added color scheme for light background: `--color=light`
1058
+
1059
+ 0.9.9
1060
+ -----
1061
+
1062
+ ### New features
1063
+
1064
+ - Added `--tiebreak` option (#191)
1065
+ - Added `--no-hscroll` option (#193)
1066
+ - Visual indication of `--toggle-sort` (#194)
1067
+
1068
+ 0.9.8
1069
+ -----
1070
+
1071
+ ### Bug fixes
1072
+
1073
+ - Fixed Unicode case handling (#186)
1074
+ - Fixed to terminate on RuneError (#185)
1075
+
1076
+ 0.9.7
1077
+ -----
1078
+
1079
+ ### New features
1080
+
1081
+ - Added `--toggle-sort` option (#173)
1082
+ - `--toggle-sort=ctrl-r` is applied to `CTRL-R` shell extension
1083
+
1084
+ ### Bug fixes
1085
+
1086
+ - Fixed to print empty line if `--expect` is set and fzf is completed by
1087
+ `--select-1` or `--exit-0` (#172)
1088
+ - Fixed to allow comma character as an argument to `--expect` option
1089
+
1090
+ 0.9.6
1091
+ -----
1092
+
1093
+ ### New features
1094
+
1095
+ #### Added `--expect` option (#163)
1096
+
1097
+ If you provide a comma-separated list of keys with `--expect` option, fzf will
1098
+ allow you to select the match and complete the finder when any of the keys is
1099
+ pressed. Additionally, fzf will print the name of the key pressed as the first
1100
+ line of the output so that your script can decide what to do next based on the
1101
+ information.
1102
+
1103
+ ```sh
1104
+ fzf --expect=ctrl-v,ctrl-t,alt-s,f1,f2,~,@
1105
+ ```
1106
+
1107
+ The updated vim plugin uses this option to implement
1108
+ [ctrlp](https://github.com/kien/ctrlp.vim)-compatible key bindings.
1109
+
1110
+ ### Bug fixes
1111
+
1112
+ - Fixed to ignore ANSI escape code `\e[K` (#162)
1113
+
1114
+ 0.9.5
1115
+ -----
1116
+
1117
+ ### New features
1118
+
1119
+ #### Added `--ansi` option (#150)
1120
+
1121
+ If you give `--ansi` option to fzf, fzf will interpret ANSI color codes from
1122
+ the input, display the item with the ANSI colors (true colors are not
1123
+ supported), and strips the codes from the output. This option is off by
1124
+ default as it entails some overhead.
1125
+
1126
+ ### Improvements
1127
+
1128
+ #### Reduced initial memory footprint (#151)
1129
+
1130
+ By removing unnecessary copy of pointers, fzf will use significantly smaller
1131
+ amount of memory when it's started. The difference is hugely noticeable when
1132
+ the input is extremely large. (e.g. `locate / | fzf`)
1133
+
1134
+ ### Bug fixes
1135
+
1136
+ - Fixed panic on `--no-sort --filter ''` (#149)
1137
+
1138
+ 0.9.4
1139
+ -----
1140
+
1141
+ ### New features
1142
+
1143
+ #### Added `--tac` option to reverse the order of the input.
1144
+
1145
+ One might argue that this option is unnecessary since we can already put `tac`
1146
+ or `tail -r` in the command pipeline to achieve the same result. However, the
1147
+ advantage of `--tac` is that it does not block until the input is complete.
1148
+
1149
+ ### *Backward incompatible changes*
1150
+
1151
+ #### Changed behavior on `--no-sort`
1152
+
1153
+ `--no-sort` option will no longer reverse the display order within finder. You
1154
+ may want to use the new `--tac` option with `--no-sort`.
1155
+
1156
+ ```
1157
+ history | fzf +s --tac
1158
+ ```
1159
+
1160
+ ### Improvements
1161
+
1162
+ #### `--filter` will not block when sort is disabled
1163
+
1164
+ When fzf works in filtering mode (`--filter`) and sort is disabled
1165
+ (`--no-sort`), there's no need to block until input is complete. The new
1166
+ version of fzf will print the matches on-the-fly when the following condition
1167
+ is met:
1168
+
1169
+ --filter TERM --no-sort [--no-tac --no-sync]
1170
+
1171
+ or simply:
1172
+
1173
+ -f TERM +s
1174
+
1175
+ This change removes unnecessary delay in the use cases like the following:
1176
+
1177
+ fzf -f xxx +s | head -5
1178
+
1179
+ However, in this case, fzf processes the lines sequentially, so it cannot
1180
+ utilize multiple cores, and fzf will run slightly slower than the previous
1181
+ mode of execution where filtering is done in parallel after the entire input
1182
+ is loaded. If the user is concerned about this performance problem, one can
1183
+ add `--sync` option to re-enable buffering.
1184
+
1185
+ 0.9.3
1186
+ -----
1187
+
1188
+ ### New features
1189
+ - Added `--sync` option for multi-staged filtering
1190
+
1191
+ ### Improvements
1192
+ - `--select-1` and `--exit-0` will start finder immediately when the condition
1193
+ cannot be met