doing 2.0.19 → 2.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -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 +19 -5
  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