doing 2.0.20 → 2.0.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +1 -1
  5. data/doing.rdoc +1 -1
  6. data/lib/doing/version.rb +1 -1
  7. data/lib/helpers/fzf/.goreleaser.yml +119 -0
  8. data/lib/helpers/fzf/.rubocop.yml +28 -0
  9. data/lib/helpers/fzf/ADVANCED.md +565 -0
  10. data/lib/helpers/fzf/BUILD.md +49 -0
  11. data/lib/helpers/fzf/CHANGELOG.md +1193 -0
  12. data/lib/helpers/fzf/Dockerfile +11 -0
  13. data/lib/helpers/fzf/LICENSE +21 -0
  14. data/lib/helpers/fzf/Makefile +166 -0
  15. data/lib/helpers/fzf/README-VIM.md +486 -0
  16. data/lib/helpers/fzf/README.md +712 -0
  17. data/lib/helpers/fzf/bin/fzf-tmux +233 -0
  18. data/lib/helpers/fzf/doc/fzf.txt +512 -0
  19. data/lib/helpers/fzf/go.mod +17 -0
  20. data/lib/helpers/fzf/go.sum +31 -0
  21. data/lib/helpers/fzf/install +382 -0
  22. data/lib/helpers/fzf/install.ps1 +65 -0
  23. data/lib/helpers/fzf/main.go +14 -0
  24. data/lib/helpers/fzf/man/man1/fzf-tmux.1 +68 -0
  25. data/lib/helpers/fzf/man/man1/fzf.1 +1001 -0
  26. data/lib/helpers/fzf/plugin/fzf.vim +1048 -0
  27. data/lib/helpers/fzf/shell/completion.bash +381 -0
  28. data/lib/helpers/fzf/shell/completion.zsh +329 -0
  29. data/lib/helpers/fzf/shell/key-bindings.bash +96 -0
  30. data/lib/helpers/fzf/shell/key-bindings.fish +172 -0
  31. data/lib/helpers/fzf/shell/key-bindings.zsh +114 -0
  32. data/lib/helpers/fzf/src/LICENSE +21 -0
  33. data/lib/helpers/fzf/src/algo/algo.go +884 -0
  34. data/lib/helpers/fzf/src/algo/algo_test.go +197 -0
  35. data/lib/helpers/fzf/src/algo/normalize.go +492 -0
  36. data/lib/helpers/fzf/src/ansi.go +409 -0
  37. data/lib/helpers/fzf/src/ansi_test.go +427 -0
  38. data/lib/helpers/fzf/src/cache.go +81 -0
  39. data/lib/helpers/fzf/src/cache_test.go +39 -0
  40. data/lib/helpers/fzf/src/chunklist.go +89 -0
  41. data/lib/helpers/fzf/src/chunklist_test.go +80 -0
  42. data/lib/helpers/fzf/src/constants.go +85 -0
  43. data/lib/helpers/fzf/src/core.go +351 -0
  44. data/lib/helpers/fzf/src/history.go +96 -0
  45. data/lib/helpers/fzf/src/history_test.go +68 -0
  46. data/lib/helpers/fzf/src/item.go +44 -0
  47. data/lib/helpers/fzf/src/item_test.go +23 -0
  48. data/lib/helpers/fzf/src/matcher.go +235 -0
  49. data/lib/helpers/fzf/src/merger.go +120 -0
  50. data/lib/helpers/fzf/src/merger_test.go +88 -0
  51. data/lib/helpers/fzf/src/options.go +1691 -0
  52. data/lib/helpers/fzf/src/options_test.go +457 -0
  53. data/lib/helpers/fzf/src/pattern.go +425 -0
  54. data/lib/helpers/fzf/src/pattern_test.go +209 -0
  55. data/lib/helpers/fzf/src/protector/protector.go +8 -0
  56. data/lib/helpers/fzf/src/protector/protector_openbsd.go +10 -0
  57. data/lib/helpers/fzf/src/reader.go +201 -0
  58. data/lib/helpers/fzf/src/reader_test.go +63 -0
  59. data/lib/helpers/fzf/src/result.go +243 -0
  60. data/lib/helpers/fzf/src/result_others.go +16 -0
  61. data/lib/helpers/fzf/src/result_test.go +159 -0
  62. data/lib/helpers/fzf/src/result_x86.go +16 -0
  63. data/lib/helpers/fzf/src/terminal.go +2832 -0
  64. data/lib/helpers/fzf/src/terminal_test.go +638 -0
  65. data/lib/helpers/fzf/src/terminal_unix.go +26 -0
  66. data/lib/helpers/fzf/src/terminal_windows.go +45 -0
  67. data/lib/helpers/fzf/src/tokenizer.go +253 -0
  68. data/lib/helpers/fzf/src/tokenizer_test.go +112 -0
  69. data/lib/helpers/fzf/src/tui/dummy.go +46 -0
  70. data/lib/helpers/fzf/src/tui/light.go +987 -0
  71. data/lib/helpers/fzf/src/tui/light_unix.go +110 -0
  72. data/lib/helpers/fzf/src/tui/light_windows.go +145 -0
  73. data/lib/helpers/fzf/src/tui/tcell.go +721 -0
  74. data/lib/helpers/fzf/src/tui/tcell_test.go +392 -0
  75. data/lib/helpers/fzf/src/tui/ttyname_unix.go +47 -0
  76. data/lib/helpers/fzf/src/tui/ttyname_windows.go +14 -0
  77. data/lib/helpers/fzf/src/tui/tui.go +625 -0
  78. data/lib/helpers/fzf/src/tui/tui_test.go +20 -0
  79. data/lib/helpers/fzf/src/util/atomicbool.go +34 -0
  80. data/lib/helpers/fzf/src/util/atomicbool_test.go +17 -0
  81. data/lib/helpers/fzf/src/util/chars.go +198 -0
  82. data/lib/helpers/fzf/src/util/chars_test.go +46 -0
  83. data/lib/helpers/fzf/src/util/eventbox.go +96 -0
  84. data/lib/helpers/fzf/src/util/eventbox_test.go +61 -0
  85. data/lib/helpers/fzf/src/util/slab.go +12 -0
  86. data/lib/helpers/fzf/src/util/util.go +138 -0
  87. data/lib/helpers/fzf/src/util/util_test.go +40 -0
  88. data/lib/helpers/fzf/src/util/util_unix.go +47 -0
  89. data/lib/helpers/fzf/src/util/util_windows.go +83 -0
  90. data/lib/helpers/fzf/test/fzf.vader +175 -0
  91. data/lib/helpers/fzf/test/test_go.rb +2626 -0
  92. data/lib/helpers/fzf/uninstall +117 -0
  93. metadata +87 -1
@@ -0,0 +1,1001 @@
1
+ .ig
2
+ The MIT License (MIT)
3
+
4
+ Copyright (c) 2013-2021 Junegunn Choi
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in
14
+ all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ THE SOFTWARE.
23
+ ..
24
+ .TH fzf 1 "Nov 2021" "fzf 0.28.0" "fzf - a command-line fuzzy finder"
25
+
26
+ .SH NAME
27
+ fzf - a command-line fuzzy finder
28
+
29
+ .SH SYNOPSIS
30
+ fzf [options]
31
+
32
+ .SH DESCRIPTION
33
+ fzf is a general-purpose command-line fuzzy finder.
34
+
35
+ .SH OPTIONS
36
+ .SS Search mode
37
+ .TP
38
+ .B "-x, --extended"
39
+ Extended-search mode. Since 0.10.9, this is enabled by default. You can disable
40
+ it with \fB+x\fR or \fB--no-extended\fR.
41
+ .TP
42
+ .B "-e, --exact"
43
+ Enable exact-match
44
+ .TP
45
+ .B "-i"
46
+ Case-insensitive match (default: smart-case match)
47
+ .TP
48
+ .B "+i"
49
+ Case-sensitive match
50
+ .TP
51
+ .B "--literal"
52
+ Do not normalize latin script letters for matching.
53
+ .TP
54
+ .BI "--algo=" TYPE
55
+ Fuzzy matching algorithm (default: v2)
56
+
57
+ .br
58
+ .BR v2 " Optimal scoring algorithm (quality)"
59
+ .br
60
+ .BR v1 " Faster but not guaranteed to find the optimal result (performance)"
61
+ .br
62
+
63
+ .TP
64
+ .BI "-n, --nth=" "N[,..]"
65
+ Comma-separated list of field index expressions for limiting search scope.
66
+ See \fBFIELD INDEX EXPRESSION\fR for the details.
67
+ .TP
68
+ .BI "--with-nth=" "N[,..]"
69
+ Transform the presentation of each line using field index expressions
70
+ .TP
71
+ .BI "-d, --delimiter=" "STR"
72
+ Field delimiter regex for \fB--nth\fR and \fB--with-nth\fR (default: AWK-style)
73
+ .TP
74
+ .BI "--disabled"
75
+ Do not perform search. With this option, fzf becomes a simple selector
76
+ interface rather than a "fuzzy finder". You can later enable the search using
77
+ \fBenable-search\fR or \fBtoggle-search\fR action.
78
+ .SS Search result
79
+ .TP
80
+ .B "+s, --no-sort"
81
+ Do not sort the result
82
+ .TP
83
+ .B "--tac"
84
+ Reverse the order of the input
85
+
86
+ .RS
87
+ e.g.
88
+ \fBhistory | fzf --tac --no-sort\fR
89
+ .RE
90
+ .TP
91
+ .BI "--tiebreak=" "CRI[,..]"
92
+ Comma-separated list of sort criteria to apply when the scores are tied.
93
+ .br
94
+
95
+ .br
96
+ .BR length " Prefers line with shorter length"
97
+ .br
98
+ .BR begin " Prefers line with matched substring closer to the beginning"
99
+ .br
100
+ .BR end " Prefers line with matched substring closer to the end"
101
+ .br
102
+ .BR index " Prefers line that appeared earlier in the input stream"
103
+ .br
104
+
105
+ .br
106
+ - Each criterion should appear only once in the list
107
+ .br
108
+ - \fBindex\fR is only allowed at the end of the list
109
+ .br
110
+ - \fBindex\fR is implicitly appended to the list when not specified
111
+ .br
112
+ - Default is \fBlength\fR (or equivalently \fBlength\fR,index)
113
+ .br
114
+ - If \fBend\fR is found in the list, fzf will scan each line backwards
115
+ .SS Interface
116
+ .TP
117
+ .B "-m, --multi"
118
+ Enable multi-select with tab/shift-tab. It optionally takes an integer argument
119
+ which denotes the maximum number of items that can be selected.
120
+ .TP
121
+ .B "+m, --no-multi"
122
+ Disable multi-select
123
+ .TP
124
+ .B "--no-mouse"
125
+ Disable mouse
126
+ .TP
127
+ .BI "--bind=" "KEYBINDS"
128
+ Comma-separated list of custom key bindings. See \fBKEY/EVENT BINDINGS\fR for
129
+ the details.
130
+ .TP
131
+ .B "--cycle"
132
+ Enable cyclic scroll
133
+ .TP
134
+ .B "--keep-right"
135
+ Keep the right end of the line visible when it's too long. Effective only when
136
+ the query string is empty.
137
+ .TP
138
+ .BI "--scroll-off=" "LINES"
139
+ Number of screen lines to keep above or below when scrolling to the top or to
140
+ the bottom (default: 0).
141
+ .TP
142
+ .B "--no-hscroll"
143
+ Disable horizontal scroll
144
+ .TP
145
+ .BI "--hscroll-off=" "COLS"
146
+ Number of screen columns to keep to the right of the highlighted substring
147
+ (default: 10). Setting it to a large value will cause the text to be positioned
148
+ on the center of the screen.
149
+ .TP
150
+ .B "--filepath-word"
151
+ Make word-wise movements and actions respect path separators. The following
152
+ actions are affected:
153
+
154
+ \fBbackward-kill-word\fR
155
+ .br
156
+ \fBbackward-word\fR
157
+ .br
158
+ \fBforward-word\fR
159
+ .br
160
+ \fBkill-word\fR
161
+ .TP
162
+ .BI "--jump-labels=" "CHARS"
163
+ Label characters for \fBjump\fR and \fBjump-accept\fR
164
+ .SS Layout
165
+ .TP
166
+ .BI "--height=" "HEIGHT[%]"
167
+ Display fzf window below the cursor with the given height instead of using
168
+ the full screen.
169
+ .TP
170
+ .BI "--min-height=" "HEIGHT"
171
+ Minimum height when \fB--height\fR is given in percent (default: 10).
172
+ Ignored when \fB--height\fR is not specified.
173
+ .TP
174
+ .BI "--layout=" "LAYOUT"
175
+ Choose the layout (default: default)
176
+
177
+ .br
178
+ .BR default " Display from the bottom of the screen"
179
+ .br
180
+ .BR reverse " Display from the top of the screen"
181
+ .br
182
+ .BR reverse-list " Display from the top of the screen, prompt at the bottom"
183
+ .br
184
+
185
+ .TP
186
+ .B "--reverse"
187
+ A synonym for \fB--layout=reverse\fB
188
+
189
+ .TP
190
+ .BI "--border" [=STYLE]
191
+ Draw border around the finder
192
+
193
+ .br
194
+ .BR rounded " Border with rounded corners (default)"
195
+ .br
196
+ .BR sharp " Border with sharp corners"
197
+ .br
198
+ .BR horizontal " Horizontal lines above and below the finder"
199
+ .br
200
+ .BR vertical " Vertical lines on each side of the finder"
201
+ .br
202
+ .BR top
203
+ .br
204
+ .BR bottom
205
+ .br
206
+ .BR left
207
+ .br
208
+ .BR right
209
+ .br
210
+ .BR none
211
+ .br
212
+
213
+ .TP
214
+ .B "--no-unicode"
215
+ Use ASCII characters instead of Unicode box drawing characters to draw border
216
+
217
+ .TP
218
+ .BI "--margin=" MARGIN
219
+ Comma-separated expression for margins around the finder.
220
+ .br
221
+
222
+ .br
223
+ .RS
224
+ .BR TRBL " Same margin for top, right, bottom, and left"
225
+ .br
226
+ .BR TB,RL " Vertical, horizontal margin"
227
+ .br
228
+ .BR T,RL,B " Top, horizontal, bottom margin"
229
+ .br
230
+ .BR T,R,B,L " Top, right, bottom, left margin"
231
+ .br
232
+
233
+ .br
234
+ Each part can be given in absolute number or in percentage relative to the
235
+ terminal size with \fB%\fR suffix.
236
+ .br
237
+
238
+ .br
239
+ e.g.
240
+ \fBfzf --margin 10%
241
+ fzf --margin 1,5%\fR
242
+ .RE
243
+ .TP
244
+ .BI "--padding=" PADDING
245
+ Comma-separated expression for padding inside the border. Padding is
246
+ distinguishable from margin only when \fB--border\fR option is used.
247
+ .br
248
+
249
+ .br
250
+ e.g.
251
+ \fBfzf --margin 5% --padding 5% --border --preview 'cat {}' \\
252
+ --color bg:#222222,preview-bg:#333333\fR
253
+
254
+ .br
255
+ .RS
256
+ .BR TRBL " Same padding for top, right, bottom, and left"
257
+ .br
258
+ .BR TB,RL " Vertical, horizontal padding"
259
+ .br
260
+ .BR T,RL,B " Top, horizontal, bottom padding"
261
+ .br
262
+ .BR T,R,B,L " Top, right, bottom, left padding"
263
+ .br
264
+ .RE
265
+
266
+ .TP
267
+ .BI "--info=" "STYLE"
268
+ Determines the display style of finder info.
269
+
270
+ .br
271
+ .BR default " Display on the next line to the prompt"
272
+ .br
273
+ .BR inline " Display on the same line"
274
+ .br
275
+ .BR hidden " Do not display finder info"
276
+ .br
277
+
278
+ .TP
279
+ .B "--no-info"
280
+ A synonym for \fB--info=hidden\fB
281
+
282
+ .TP
283
+ .BI "--prompt=" "STR"
284
+ Input prompt (default: '> ')
285
+ .TP
286
+ .BI "--pointer=" "STR"
287
+ Pointer to the current line (default: '>')
288
+ .TP
289
+ .BI "--marker=" "STR"
290
+ Multi-select marker (default: '>')
291
+ .TP
292
+ .BI "--header=" "STR"
293
+ The given string will be printed as the sticky header. The lines are displayed
294
+ in the given order from top to bottom regardless of \fB--layout\fR option, and
295
+ are not affected by \fB--with-nth\fR. ANSI color codes are processed even when
296
+ \fB--ansi\fR is not set.
297
+ .TP
298
+ .BI "--header-lines=" "N"
299
+ The first N lines of the input are treated as the sticky header. When
300
+ \fB--with-nth\fR is set, the lines are transformed just like the other
301
+ lines that follow.
302
+ .TP
303
+ .B "--header-first"
304
+ Print header before the prompt line
305
+ .SS Display
306
+ .TP
307
+ .B "--ansi"
308
+ Enable processing of ANSI color codes
309
+ .TP
310
+ .BI "--tabstop=" SPACES
311
+ Number of spaces for a tab character (default: 8)
312
+ .TP
313
+ .BI "--color=" "[BASE_SCHEME][,COLOR_NAME[:ANSI_COLOR][:ANSI_ATTRIBUTES]]..."
314
+ Color configuration. The name of the base color scheme is followed by custom
315
+ color mappings.
316
+
317
+ .RS
318
+ .B BASE SCHEME:
319
+ (default: dark on 256-color terminal, otherwise 16)
320
+
321
+ \fBdark \fRColor scheme for dark 256-color terminal
322
+ \fBlight \fRColor scheme for light 256-color terminal
323
+ \fB16 \fRColor scheme for 16-color terminal
324
+ \fBbw \fRNo colors (equivalent to \fB--no-color\fR)
325
+
326
+ .B COLOR NAMES:
327
+ \fBfg \fRText
328
+ \fBbg \fRBackground
329
+ \fBpreview-fg \fRPreview window text
330
+ \fBpreview-bg \fRPreview window background
331
+ \fBhl \fRHighlighted substrings
332
+ \fBfg+ \fRText (current line)
333
+ \fBbg+ \fRBackground (current line)
334
+ \fBgutter \fRGutter on the left (defaults to \fBbg+\fR)
335
+ \fBhl+ \fRHighlighted substrings (current line)
336
+ \fBquery \fRQuery string
337
+ \fBdisabled \fRQuery string when search is disabled
338
+ \fBinfo \fRInfo line (match counters)
339
+ \fBborder \fRBorder around the window (\fB--border\fR and \fB--preview\fR)
340
+ \fBprompt \fRPrompt
341
+ \fBpointer \fRPointer to the current line
342
+ \fBmarker \fRMulti-select marker
343
+ \fBspinner \fRStreaming input indicator
344
+ \fBheader \fRHeader
345
+
346
+ .B ANSI COLORS:
347
+ \fB-1 \fRDefault terminal foreground/background color
348
+ \fB \fR(or the original color of the text)
349
+ \fB0 ~ 15 \fR16 base colors
350
+ \fBblack\fR
351
+ \fBred\fR
352
+ \fBgreen\fR
353
+ \fByellow\fR
354
+ \fBblue\fR
355
+ \fBmagenta\fR
356
+ \fBcyan\fR
357
+ \fBwhite\fR
358
+ \fBbright-black\fR (gray | grey)
359
+ \fBbright-red\fR
360
+ \fBbright-green\fR
361
+ \fBbright-yellow\fR
362
+ \fBbright-blue\fR
363
+ \fBbright-magenta\fR
364
+ \fBbright-cyan\fR
365
+ \fBbright-white\fR
366
+ \fB16 ~ 255 \fRANSI 256 colors
367
+ \fB#rrggbb \fR24-bit colors
368
+
369
+ .B ANSI ATTRIBUTES: (Only applies to foreground colors)
370
+ \fBregular \fRClears previously set attributes; should precede the other ones
371
+ \fBbold\fR
372
+ \fBunderline\fR
373
+ \fBreverse\fR
374
+ \fBdim\fR
375
+ \fBitalic\fR
376
+
377
+ .B EXAMPLES:
378
+
379
+ \fB# Seoul256 theme with 8-bit colors
380
+ # (https://github.com/junegunn/seoul256.vim)
381
+ fzf --color='bg:237,bg+:236,info:143,border:240,spinner:108' \\
382
+ --color='hl:65,fg:252,header:65,fg+:252' \\
383
+ --color='pointer:161,marker:168,prompt:110,hl+:108'
384
+
385
+ # Seoul256 theme with 24-bit colors
386
+ fzf --color='bg:#4B4B4B,bg+:#3F3F3F,info:#BDBB72,border:#6B6B6B,spinner:#98BC99' \\
387
+ --color='hl:#719872,fg:#D9D9D9,header:#719872,fg+:#D9D9D9' \\
388
+ --color='pointer:#E12672,marker:#E17899,prompt:#98BEDE,hl+:#98BC99'\fR
389
+ .RE
390
+ .TP
391
+ .B "--no-bold"
392
+ Do not use bold text
393
+ .TP
394
+ .B "--black"
395
+ Use black background
396
+ .SS History
397
+ .TP
398
+ .BI "--history=" "HISTORY_FILE"
399
+ Load search history from the specified file and update the file on completion.
400
+ When enabled, \fBCTRL-N\fR and \fBCTRL-P\fR are automatically remapped to
401
+ \fBnext-history\fR and \fBprevious-history\fR.
402
+ .TP
403
+ .BI "--history-size=" "N"
404
+ Maximum number of entries in the history file (default: 1000). The file is
405
+ automatically truncated when the number of the lines exceeds the value.
406
+ .SS Preview
407
+ .TP
408
+ .BI "--preview=" "COMMAND"
409
+ Execute the given command for the current line and display the result on the
410
+ preview window. \fB{}\fR in the command is the placeholder that is replaced to
411
+ the single-quoted string of the current line. To transform the replacement
412
+ string, specify field index expressions between the braces (See \fBFIELD INDEX
413
+ EXPRESSION\fR for the details).
414
+
415
+ .RS
416
+ e.g.
417
+ \fBfzf --preview='head -$LINES {}'
418
+ ls -l | fzf --preview="echo user={3} when={-4..-2}; cat {-1}" --header-lines=1\fR
419
+
420
+ fzf exports \fB$FZF_PREVIEW_LINES\fR and \fB$FZF_PREVIEW_COLUMNS\fR so that
421
+ they represent the exact size of the preview window. (It also overrides
422
+ \fB$LINES\fR and \fB$COLUMNS\fR with the same values but they can be reset
423
+ by the default shell, so prefer to refer to the ones with \fBFZF_PREVIEW_\fR
424
+ prefix.)
425
+
426
+ A placeholder expression starting with \fB+\fR flag will be replaced to the
427
+ space-separated list of the selected lines (or the current line if no selection
428
+ was made) individually quoted.
429
+
430
+ e.g.
431
+ \fBfzf --multi --preview='head -10 {+}'
432
+ git log --oneline | fzf --multi --preview 'git show {+1}'\fR
433
+
434
+ When using a field index expression, leading and trailing whitespace is stripped
435
+ from the replacement string. To preserve the whitespace, use the \fBs\fR flag.
436
+
437
+ Also, \fB{q}\fR is replaced to the current query string, and \fB{n}\fR is
438
+ replaced to zero-based ordinal index of the line. Use \fB{+n}\fR if you want
439
+ all index numbers when multiple lines are selected.
440
+
441
+ A placeholder expression with \fBf\fR flag is replaced to the path of
442
+ a temporary file that holds the evaluated list. This is useful when you
443
+ multi-select a large number of items and the length of the evaluated string may
444
+ exceed \fBARG_MAX\fR.
445
+
446
+ e.g.
447
+ \fB# Press CTRL-A to select 100K items and see the sum of all the numbers.
448
+ # This won't work properly without 'f' flag due to ARG_MAX limit.
449
+ seq 100000 | fzf --multi --bind ctrl-a:select-all \\
450
+ --preview "awk '{sum+=\$1} END {print sum}' {+f}"\fR
451
+
452
+ Note that you can escape a placeholder pattern by prepending a backslash.
453
+
454
+ Preview window will be updated even when there is no match for the current
455
+ query if any of the placeholder expressions evaluates to a non-empty string.
456
+
457
+ Since 0.24.0, fzf can render partial preview content before the preview command
458
+ completes. ANSI escape sequence for clearing the display (\fBCSI 2 J\fR) is
459
+ supported, so you can use it to implement preview window that is constantly
460
+ updating.
461
+
462
+ e.g.
463
+ \fBfzf --preview 'for i in $(seq 100000); do
464
+ (( i % 200 == 0 )) && printf "\\033[2J"
465
+ echo "$i"
466
+ sleep 0.01
467
+ done'\fR
468
+ .RE
469
+ .TP
470
+ .BI "--preview-window=" "[POSITION][,SIZE[%]][,border-BORDER_OPT][,[no]wrap][,[no]follow][,[no]cycle][,[no]hidden][,+SCROLL[OFFSETS][/DENOM]][,~HEADER_LINES][,default]"
471
+
472
+ .RS
473
+ .B POSITION: (default: right)
474
+ \fBup
475
+ \fBdown
476
+ \fBleft
477
+ \fBright
478
+
479
+ \fRDetermines the layout of the preview window.
480
+
481
+ * If the argument contains \fB:hidden\fR, the preview window will be hidden by
482
+ default until \fBtoggle-preview\fR action is triggered.
483
+
484
+ * If size is given as 0, preview window will not be visible, but fzf will still
485
+ execute the command in the background.
486
+
487
+ * Long lines are truncated by default. Line wrap can be enabled with
488
+ \fB:wrap\fR flag.
489
+
490
+ * Preview window will automatically scroll to the bottom when \fB:follow\fR
491
+ flag is set, similarly to how \fBtail -f\fR works.
492
+
493
+ .RS
494
+ e.g.
495
+ \fBfzf --preview-window follow --preview 'for i in $(seq 100000); do
496
+ echo "$i"
497
+ sleep 0.01
498
+ (( i % 300 == 0 )) && printf "\\033[2J"
499
+ done'\fR
500
+ .RE
501
+
502
+ * Cyclic scrolling is enabled with \fB:cycle\fR flag.
503
+
504
+ * To change the style of the border of the preview window, specify one of
505
+ the options for \fB--border\fR with \fBborder-\fR prefix.
506
+ e.g. \fBborder-rounded\fR (border with rounded edges, default),
507
+ \fBborder-sharp\fR (border with sharp edges), \fBborder-left\fR,
508
+ \fBborder-none\fR, etc.
509
+
510
+ * \fB[:+SCROLL[OFFSETS][/DENOM]]\fR determines the initial scroll offset of the
511
+ preview window.
512
+
513
+ - \fBSCROLL\fR can be either a numeric integer or a single-field index expression that refers to a numeric integer.
514
+
515
+ - The optional \fBOFFSETS\fR part is for adjusting the base offset. It should be given as a series of signed integers (\fB-INTEGER\fR or \fB+INTEGER\fR).
516
+
517
+ - The final \fB/DENOM\fR part is for specifying a fraction of the preview window height.
518
+
519
+ * \fB~HEADER_LINES\fR keeps the top N lines as the fixed header so that they
520
+ are always visible.
521
+
522
+ * \fBdefault\fR resets all options previously set to the default.
523
+
524
+ .RS
525
+ e.g.
526
+ \fB# Non-default scroll window positions and sizes
527
+ fzf --preview="head {}" --preview-window=up,30%
528
+ fzf --preview="file {}" --preview-window=down,1
529
+
530
+ # Initial scroll offset is set to the line number of each line of
531
+ # git grep output *minus* 5 lines (-5)
532
+ git grep --line-number '' |
533
+ fzf --delimiter : --preview 'nl {1}' --preview-window '+{2}-5'
534
+
535
+ # Preview with bat, matching line in the middle of the window below
536
+ # the fixed header of the top 3 lines
537
+ #
538
+ # ~3 Top 3 lines as the fixed header
539
+ # +{2} Base scroll offset extracted from the second field
540
+ # +3 Extra offset to compensate for the 3-line header
541
+ # /2 Put in the middle of the preview area
542
+ #
543
+ git grep --line-number '' |
544
+ fzf --delimiter : \\
545
+ --preview 'bat --style=full --color=always --highlight-line {2} {1}' \\
546
+ --preview-window '~3,+{2}+3/2'
547
+
548
+ # Display top 3 lines as the fixed header
549
+ fzf --preview 'bat --style=full --color=always {}' --preview-window '~3'\fR
550
+ .RE
551
+
552
+ .SS Scripting
553
+ .TP
554
+ .BI "-q, --query=" "STR"
555
+ Start the finder with the given query
556
+ .TP
557
+ .B "-1, --select-1"
558
+ If there is only one match for the initial query (\fB--query\fR), do not start
559
+ interactive finder and automatically select the only match
560
+ .TP
561
+ .B "-0, --exit-0"
562
+ If there is no match for the initial query (\fB--query\fR), do not start
563
+ interactive finder and exit immediately
564
+ .TP
565
+ .BI "-f, --filter=" "STR"
566
+ Filter mode. Do not start interactive finder. When used with \fB--no-sort\fR,
567
+ fzf becomes a fuzzy-version of grep.
568
+ .TP
569
+ .B "--print-query"
570
+ Print query as the first line
571
+ .TP
572
+ .BI "--expect=" "KEY[,..]"
573
+ Comma-separated list of keys that can be used to complete fzf in addition to
574
+ the default enter key. When this option is set, fzf will print the name of the
575
+ key pressed as the first line of its output (or as the second line if
576
+ \fB--print-query\fR is also used). The line will be empty if fzf is completed
577
+ with the default enter key. If \fB--expect\fR option is specified multiple
578
+ times, fzf will expect the union of the keys. \fB--no-expect\fR will clear the
579
+ list.
580
+
581
+ .RS
582
+ e.g.
583
+ \fBfzf --expect=ctrl-v,ctrl-t,alt-s --expect=f1,f2,~,@\fR
584
+ .RE
585
+ .TP
586
+ .B "--read0"
587
+ Read input delimited by ASCII NUL characters instead of newline characters
588
+ .TP
589
+ .B "--print0"
590
+ Print output delimited by ASCII NUL characters instead of newline characters
591
+ .TP
592
+ .B "--no-clear"
593
+ Do not clear finder interface on exit. If fzf was started in full screen mode,
594
+ it will not switch back to the original screen, so you'll have to manually run
595
+ \fBtput rmcup\fR to return. This option can be used to avoid flickering of the
596
+ screen when your application needs to start fzf multiple times in order.
597
+ .TP
598
+ .B "--sync"
599
+ Synchronous search for multi-staged filtering. If specified, fzf will launch
600
+ ncurses finder only after the input stream is complete.
601
+
602
+ .RS
603
+ e.g. \fBfzf --multi | fzf --sync\fR
604
+ .RE
605
+ .TP
606
+ .B "--version"
607
+ Display version information and exit
608
+
609
+ .TP
610
+ Note that most options have the opposite versions with \fB--no-\fR prefix.
611
+
612
+ .SH ENVIRONMENT VARIABLES
613
+ .TP
614
+ .B FZF_DEFAULT_COMMAND
615
+ Default command to use when input is tty. On *nix systems, fzf runs the command
616
+ with \fB$SHELL -c\fR if \fBSHELL\fR is set, otherwise with \fBsh -c\fR, so in
617
+ this case make sure that the command is POSIX-compliant.
618
+ .TP
619
+ .B FZF_DEFAULT_OPTS
620
+ Default options. e.g. \fBexport FZF_DEFAULT_OPTS="--extended --cycle"\fR
621
+
622
+ .SH EXIT STATUS
623
+ .BR 0 " Normal exit"
624
+ .br
625
+ .BR 1 " No match"
626
+ .br
627
+ .BR 2 " Error"
628
+ .br
629
+ .BR 130 " Interrupted with \fBCTRL-C\fR or \fBESC\fR"
630
+
631
+ .SH FIELD INDEX EXPRESSION
632
+
633
+ A field index expression can be a non-zero integer or a range expression
634
+ ([BEGIN]..[END]). \fB--nth\fR and \fB--with-nth\fR take a comma-separated list
635
+ of field index expressions.
636
+
637
+ .SS Examples
638
+ .BR 1 " The 1st field"
639
+ .br
640
+ .BR 2 " The 2nd field"
641
+ .br
642
+ .BR -1 " The last field"
643
+ .br
644
+ .BR -2 " The 2nd to last field"
645
+ .br
646
+ .BR 3..5 " From the 3rd field to the 5th field"
647
+ .br
648
+ .BR 2.. " From the 2nd field to the last field"
649
+ .br
650
+ .BR ..-3 " From the 1st field to the 3rd to the last field"
651
+ .br
652
+ .BR .. " All the fields"
653
+ .br
654
+
655
+ .SH EXTENDED SEARCH MODE
656
+
657
+ Unless specified otherwise, fzf will start in "extended-search mode". In this
658
+ mode, you can specify multiple patterns delimited by spaces, such as: \fB'wild
659
+ ^music .mp3$ sbtrkt !rmx\fR
660
+
661
+ You can prepend a backslash to a space (\fB\\ \fR) to match a literal space
662
+ character.
663
+
664
+ .SS Exact-match (quoted)
665
+ A term that is prefixed by a single-quote character (\fB'\fR) is interpreted as
666
+ an "exact-match" (or "non-fuzzy") term. fzf will search for the exact
667
+ occurrences of the string.
668
+
669
+ .SS Anchored-match
670
+ A term can be prefixed by \fB^\fR, or suffixed by \fB$\fR to become an
671
+ anchored-match term. Then fzf will search for the lines that start with or end
672
+ with the given string. An anchored-match term is also an exact-match term.
673
+
674
+ .SS Negation
675
+ If a term is prefixed by \fB!\fR, fzf will exclude the lines that satisfy the
676
+ term from the result. In this case, fzf performs exact match by default.
677
+
678
+ .SS Exact-match by default
679
+ If you don't prefer fuzzy matching and do not wish to "quote" (prefixing with
680
+ \fB'\fR) every word, start fzf with \fB-e\fR or \fB--exact\fR option. Note that
681
+ when \fB--exact\fR is set, \fB'\fR-prefix "unquotes" the term.
682
+
683
+ .SS OR operator
684
+ A single bar character term acts as an OR operator. For example, the following
685
+ query matches entries that start with \fBcore\fR and end with either \fBgo\fR,
686
+ \fBrb\fR, or \fBpy\fR.
687
+
688
+ e.g. \fB^core go$ | rb$ | py$\fR
689
+
690
+ .SH KEY/EVENT BINDINGS
691
+ \fB--bind\fR option allows you to bind \fBa key\fR or \fBan event\fR to one or
692
+ more \fBactions\fR. You can use it to customize key bindings or implement
693
+ dynamic behaviors.
694
+
695
+ \fB--bind\fR takes a comma-separated list of binding expressions. Each binding
696
+ expression is \fBKEY:ACTION\fR or \fBEVENT:ACTION\fR.
697
+
698
+ e.g.
699
+ \fBfzf --bind=ctrl-j:accept,ctrl-k:kill-line\fR
700
+
701
+ .SS AVAILABLE KEYS: (SYNONYMS)
702
+ \fIctrl-[a-z]\fR
703
+ .br
704
+ \fIctrl-space\fR
705
+ .br
706
+ \fIctrl-\\\fR
707
+ .br
708
+ \fIctrl-]\fR
709
+ .br
710
+ \fIctrl-^\fR (\fIctrl-6\fR)
711
+ .br
712
+ \fIctrl-/\fR (\fIctrl-_\fR)
713
+ .br
714
+ \fIctrl-alt-[a-z]\fR
715
+ .br
716
+ \fIalt-[*]\fR (Any case-sensitive single character is allowed)
717
+ .br
718
+ \fIf[1-12]\fR
719
+ .br
720
+ \fIenter\fR (\fIreturn\fR \fIctrl-m\fR)
721
+ .br
722
+ \fIspace\fR
723
+ .br
724
+ \fIbspace\fR (\fIbs\fR)
725
+ .br
726
+ \fIalt-up\fR
727
+ .br
728
+ \fIalt-down\fR
729
+ .br
730
+ \fIalt-left\fR
731
+ .br
732
+ \fIalt-right\fR
733
+ .br
734
+ \fIalt-enter\fR
735
+ .br
736
+ \fIalt-space\fR
737
+ .br
738
+ \fIalt-bspace\fR (\fIalt-bs\fR)
739
+ .br
740
+ \fItab\fR
741
+ .br
742
+ \fIbtab\fR (\fIshift-tab\fR)
743
+ .br
744
+ \fIesc\fR
745
+ .br
746
+ \fIdel\fR
747
+ .br
748
+ \fIup\fR
749
+ .br
750
+ \fIdown\fR
751
+ .br
752
+ \fIleft\fR
753
+ .br
754
+ \fIright\fR
755
+ .br
756
+ \fIhome\fR
757
+ .br
758
+ \fIend\fR
759
+ .br
760
+ \fIinsert\fR
761
+ .br
762
+ \fIpgup\fR (\fIpage-up\fR)
763
+ .br
764
+ \fIpgdn\fR (\fIpage-down\fR)
765
+ .br
766
+ \fIshift-up\fR
767
+ .br
768
+ \fIshift-down\fR
769
+ .br
770
+ \fIshift-left\fR
771
+ .br
772
+ \fIshift-right\fR
773
+ .br
774
+ \fIalt-shift-up\fR
775
+ .br
776
+ \fIalt-shift-down\fR
777
+ .br
778
+ \fIalt-shift-left\fR
779
+ .br
780
+ \fIalt-shift-right\fR
781
+ .br
782
+ \fIleft-click\fR
783
+ .br
784
+ \fIright-click\fR
785
+ .br
786
+ \fIdouble-click\fR
787
+ .br
788
+ or any single character
789
+
790
+ .SS AVAILABLE EVENTS:
791
+ \fIchange\fR
792
+ .RS
793
+ Triggered whenever the query string is changed
794
+
795
+ e.g.
796
+ \fB# Move cursor to the first entry whenever the query is changed
797
+ fzf --bind change:first\fR
798
+ .RE
799
+
800
+ \fIbackward-eof\fR
801
+ .RS
802
+ Triggered when the query string is already empty and you try to delete it
803
+ backward.
804
+
805
+ e.g.
806
+ \fBfzf --bind backward-eof:abort\fR
807
+ .RE
808
+
809
+ .SS AVAILABLE ACTIONS:
810
+ A key or an event can be bound to one or more of the following actions.
811
+
812
+ \fBACTION: DEFAULT BINDINGS (NOTES):
813
+ \fBabort\fR \fIctrl-c ctrl-g ctrl-q esc\fR
814
+ \fBaccept\fR \fIenter double-click\fR
815
+ \fBaccept-non-empty\fR (same as \fBaccept\fR except that it prevents fzf from exiting without selection)
816
+ \fBbackward-char\fR \fIctrl-b left\fR
817
+ \fBbackward-delete-char\fR \fIctrl-h bspace\fR
818
+ \fBbackward-delete-char/eof\fR (same as \fBbackward-delete-char\fR except aborts fzf if query is empty)
819
+ \fBbackward-kill-word\fR \fIalt-bs\fR
820
+ \fBbackward-word\fR \fIalt-b shift-left\fR
821
+ \fBbeginning-of-line\fR \fIctrl-a home\fR
822
+ \fBcancel\fR (clear query string if not empty, abort fzf otherwise)
823
+ \fBchange-prompt(...)\fR (change prompt to the given string)
824
+ \fBclear-screen\fR \fIctrl-l\fR
825
+ \fBclear-selection\fR (clear multi-selection)
826
+ \fBclose\fR (close preview window if open, abort fzf otherwise)
827
+ \fBclear-query\fR (clear query string)
828
+ \fBdelete-char\fR \fIdel\fR
829
+ \fBdelete-char/eof\fR \fIctrl-d\fR (same as \fBdelete-char\fR except aborts fzf if query is empty)
830
+ \fBdeselect\fR
831
+ \fBdeselect-all\fR (deselect all matches)
832
+ \fBdisable-search\fR (disable search functionality)
833
+ \fBdown\fR \fIctrl-j ctrl-n down\fR
834
+ \fBenable-search\fR (enable search functionality)
835
+ \fBend-of-line\fR \fIctrl-e end\fR
836
+ \fBexecute(...)\fR (see below for the details)
837
+ \fBexecute-silent(...)\fR (see below for the details)
838
+ \fBfirst\fR (move to the first match)
839
+ \fBforward-char\fR \fIctrl-f right\fR
840
+ \fBforward-word\fR \fIalt-f shift-right\fR
841
+ \fBignore\fR
842
+ \fBjump\fR (EasyMotion-like 2-keystroke movement)
843
+ \fBjump-accept\fR (jump and accept)
844
+ \fBkill-line\fR
845
+ \fBkill-word\fR \fIalt-d\fR
846
+ \fBlast\fR (move to the last match)
847
+ \fBnext-history\fR (\fIctrl-n\fR on \fB--history\fR)
848
+ \fBpage-down\fR \fIpgdn\fR
849
+ \fBpage-up\fR \fIpgup\fR
850
+ \fBhalf-page-down\fR
851
+ \fBhalf-page-up\fR
852
+ \fBpreview(...)\fR (see below for the details)
853
+ \fBpreview-down\fR \fIshift-down\fR
854
+ \fBpreview-up\fR \fIshift-up\fR
855
+ \fBpreview-page-down\fR
856
+ \fBpreview-page-up\fR
857
+ \fBpreview-half-page-down\fR
858
+ \fBpreview-half-page-up\fR
859
+ \fBpreview-bottom\fR
860
+ \fBpreview-top\fR
861
+ \fBprevious-history\fR (\fIctrl-p\fR on \fB--history\fR)
862
+ \fBprint-query\fR (print query and exit)
863
+ \fBput\fR (put the character to the prompt)
864
+ \fBrefresh-preview\fR
865
+ \fBreload(...)\fR (see below for the details)
866
+ \fBreplace-query\fR (replace query string with the current selection)
867
+ \fBselect\fR
868
+ \fBselect-all\fR (select all matches)
869
+ \fBtoggle\fR (\fIright-click\fR)
870
+ \fBtoggle-all\fR (toggle all matches)
871
+ \fBtoggle+down\fR \fIctrl-i (tab)\fR
872
+ \fBtoggle-in\fR (\fB--layout=reverse*\fR ? \fBtoggle+up\fR : \fBtoggle+down\fR)
873
+ \fBtoggle-out\fR (\fB--layout=reverse*\fR ? \fBtoggle+down\fR : \fBtoggle+up\fR)
874
+ \fBtoggle-preview\fR
875
+ \fBtoggle-preview-wrap\fR
876
+ \fBtoggle-search\fR (toggle search functionality)
877
+ \fBtoggle-sort\fR
878
+ \fBtoggle+up\fR \fIbtab (shift-tab)\fR
879
+ \fBunbind(...)\fR (unbind bindings)
880
+ \fBunix-line-discard\fR \fIctrl-u\fR
881
+ \fBunix-word-rubout\fR \fIctrl-w\fR
882
+ \fBup\fR \fIctrl-k ctrl-p up\fR
883
+ \fByank\fR \fIctrl-y\fR
884
+
885
+ .SS ACTION COMPOSITION
886
+
887
+ Multiple actions can be chained using \fB+\fR separator.
888
+
889
+ e.g.
890
+ \fBfzf --multi --bind 'ctrl-a:select-all+accept'\fR
891
+ \fBfzf --multi --bind 'ctrl-a:select-all' --bind 'ctrl-a:+accept'\fR
892
+
893
+ .SS ACTION ARGUMENT
894
+
895
+ An action denoted with \fB(...)\fR suffix takes an argument.
896
+
897
+ e.g.
898
+ \fBfzf --bind 'ctrl-a:change-prompt(NewPrompt> )'\fR
899
+ \fBfzf --bind 'ctrl-v:preview(cat {})' --preview-window hidden\fR
900
+
901
+ If the argument contains parentheses, fzf may fail to parse the expression. In
902
+ that case, you can use any of the following alternative notations to avoid
903
+ parse errors.
904
+
905
+ \fBaction-name[...]\fR
906
+ \fBaction-name~...~\fR
907
+ \fBaction-name!...!\fR
908
+ \fBaction-name@...@\fR
909
+ \fBaction-name#...#\fR
910
+ \fBaction-name$...$\fR
911
+ \fBaction-name%...%\fR
912
+ \fBaction-name^...^\fR
913
+ \fBaction-name&...&\fR
914
+ \fBaction-name*...*\fR
915
+ \fBaction-name;...;\fR
916
+ \fBaction-name/.../\fR
917
+ \fBaction-name|...|\fR
918
+ \fBaction-name:...\fR
919
+ .RS
920
+ The last one is the special form that frees you from parse errors as it does
921
+ not expect the closing character. The catch is that it should be the last one
922
+ in the comma-separated list of key-action pairs.
923
+ .RE
924
+
925
+ .SS COMMAND EXECUTION
926
+
927
+ With \fBexecute(...)\fR action, you can execute arbitrary commands without
928
+ leaving fzf. For example, you can turn fzf into a simple file browser by
929
+ binding \fBenter\fR key to \fBless\fR command like follows.
930
+
931
+ \fBfzf --bind "enter:execute(less {})"\fR
932
+
933
+ You can use the same placeholder expressions as in \fB--preview\fR.
934
+
935
+ fzf switches to the alternate screen when executing a command. However, if the
936
+ command is expected to complete quickly, and you are not interested in its
937
+ output, you might want to use \fBexecute-silent\fR instead, which silently
938
+ executes the command without the switching. Note that fzf will not be
939
+ responsive until the command is complete. For asynchronous execution, start
940
+ your command as a background process (i.e. appending \fB&\fR).
941
+
942
+ On *nix systems, fzf runs the command with \fB$SHELL -c\fR if \fBSHELL\fR is
943
+ set, otherwise with \fBsh -c\fR, so in this case make sure that the command is
944
+ POSIX-compliant.
945
+
946
+ .SS RELOAD INPUT
947
+
948
+ \fBreload(...)\fR action is used to dynamically update the input list
949
+ without restarting fzf. It takes the same command template with placeholder
950
+ expressions as \fBexecute(...)\fR.
951
+
952
+ See \fIhttps://github.com/junegunn/fzf/issues/1750\fR for more info.
953
+
954
+ e.g.
955
+ \fB# Update the list of processes by pressing CTRL-R
956
+ ps -ef | fzf --bind 'ctrl-r:reload(ps -ef)' --header 'Press CTRL-R to reload' \\
957
+ --header-lines=1 --layout=reverse
958
+
959
+ # Integration with ripgrep
960
+ RG_PREFIX="rg --column --line-number --no-heading --color=always --smart-case "
961
+ INITIAL_QUERY="foobar"
962
+ FZF_DEFAULT_COMMAND="$RG_PREFIX '$INITIAL_QUERY'" \\
963
+ fzf --bind "change:reload:$RG_PREFIX {q} || true" \\
964
+ --ansi --disabled --query "$INITIAL_QUERY"\fR
965
+
966
+ .SS PREVIEW BINDING
967
+
968
+ With \fBpreview(...)\fR action, you can specify multiple different preview
969
+ commands in addition to the default preview command given by \fB--preview\fR
970
+ option.
971
+
972
+ e.g.
973
+
974
+ # Default preview command with an extra preview binding
975
+ fzf --preview 'file {}' --bind '?:preview:cat {}'
976
+
977
+ # A preview binding with no default preview command
978
+ # (Preview window is initially empty)
979
+ fzf --bind '?:preview:cat {}'
980
+
981
+ # Preview window hidden by default, it appears when you first hit '?'
982
+ fzf --bind '?:preview:cat {}' --preview-window hidden
983
+
984
+ .SH AUTHOR
985
+ Junegunn Choi (\fIjunegunn.c@gmail.com\fR)
986
+
987
+ .SH SEE ALSO
988
+ .B Project homepage:
989
+ .RS
990
+ .I https://github.com/junegunn/fzf
991
+ .RE
992
+ .br
993
+
994
+ .br
995
+ .B Extra Vim plugin:
996
+ .RS
997
+ .I https://github.com/junegunn/fzf.vim
998
+ .RE
999
+
1000
+ .SH LICENSE
1001
+ MIT