Commit Graph

345 Commits (master)

Author SHA1 Message Date
Junegunn Choi 12af069dca
Add pos(...) action to move the cursor to the numeric position
# Put the cursor on the 10th item
  seq 100 | fzf --sync --bind 'start:pos(10)'

  # Put the cursor on the 10th to last item
  seq 100 | fzf --sync --bind 'start:pos(-10)'

Close #3069
Close #395
1 year ago
Junegunn Choi b7bb973118
Revert "Add GET endpoints for getting the state of the finder"
This reverts commit 750b2a6313.

This can cause a deadlock if the endpoints are accessed in the core event
loop via execute action.

  fzf --listen 6266 --bind 'space:execute:curl localhost:6266'

Technically, there's no reason to use the API because the information is
already available via `{}` and `{q}`, but I'd like to completely remove
the risk of misuse.
1 year ago
Junegunn Choi 750b2a6313
Add GET endpoints for getting the state of the finder
* GET / (or GET /current)
* GET /query
1 year ago
Junegunn Choi 73162a4bc3
Rewrite bind spec parser 1 year ago
Junegunn Choi 1ba7484d60 Add --listen=HTTP_PORT option to receive actions
Supersedes #2019

See also:
* #1728
* https://github.com/junegunn/fzf.vim/pull/1044
1 year ago
Junegunn Choi 51c518da1e
Add change-query(...) action 1 year ago
Junegunn Choi 18e3b38c69
Add 'next-selected' and 'prev-selected' actions
Close #2749
1 year ago
Junegunn Choi 0ad30063ff
Rename previous-history to prev-history
previous-history is still supported for backward compatibility
1 year ago
Junegunn Choi 3d2376ab52
Add color name 'preview-label' (#3053) 1 year ago
Junegunn Choi b55f555487
0.35.1 2 years ago
Bruno Heridet 3da63f394d
doc(man): complete the definition of what --no-unicode impacts (#3054) 2 years ago
Junegunn Choi d01ae55109
0.35.0 2 years ago
Junegunn Choi 8868d7d188
Add --separator to customize the info separator 2 years ago
Junegunn Choi 01ae621f11
Add --border=[bold|double] and --preview-window=border-[bold|double] 2 years ago
Junegunn Choi c09ec8e4d1
Allow putting border label on the bottom line
Related #3022
2 years ago
Junegunn Choi b9ca1fe830
Add horizontal separator after info panel (counter)
Close #3029
2 years ago
Junegunn Choi e61585f2f3
Add --border-label and --border-label-pos
Close #3022
2 years ago
Junegunn Choi 168829b555
Add 'start' event that is triggered once when fzf finder starts
Close #1622
2 years ago
Bruno Heridet cefa6b9878
doc(man): add a hint about which UI element is the finder info (#2991)
While reading the description of the --info flag, it's not
immediately obvious that the "finder info" is in fact the
UI element representing the match counters.
2 years ago
Junegunn Choi 04d0b0223f
0.34.0 2 years ago
Junegunn Choi 78ad6d2d88
Phase out --no-clear in favor of bindable 'reload' action 2 years ago
Junegunn Choi 22cbd9fa58
Implement height range (--height ~[VALUE][%])
Close #2953
2 years ago
Junegunn Choi 6fb41a202a
Add --scheme=[default|path|history] option to choose scoring scheme
Close #2909
Close #2930
2 years ago
Emil Vanherp 4bef330ce1
Add support for ANSI strike-through (#2932)
Close #2932

Co-authored-by: Emil Vanherp <emil@vanherp.me>
2 years ago
Junegunn Choi c1c355160d
Support border-{up,down} as the synonyms for border-{top,bottom} 2 years ago
Junegunn Choi 4993d19466
0.32.1 2 years ago
Junegunn Choi f0bfeba733
Add new tiebreak: 'chunk'
Favors the line with shorter matched chunk. A chunk is a set of
consecutive non-whitespace characters.

Unlike the default `length`, this new scheme works well with tabular input.

  # length prefers item #1, because the whole line is shorter,
  # chunk prefers item #2, because the matched chunk ("foo") is shorter
  fzf --height=6 --header-lines=2 --tiebreak=chunk --reverse --query=fo << "EOF"
  N | Field1 | Field2 | Field3
  - | ------ | ------ | ------
  1 | hello  | foobar | baz
  2 | world  | foo    | bazbaz
  EOF

If the input does not contain any spaces, `chunk` is equivalent to
`length`. But we're not going to set it as the default because it is
computationally more expensive.

Close #2285
Close #2537
- Not the exact solution to --tiebreak=length not taking --nth into account,
  but this should work. And the added benefit is that it works well even
  when --nth is not provided.
- Adding a bonus point to the last character of a word didn't turn out great.
  The order of the result suddenly changes when you type in the last
  character in the word producing a jarring effect.
2 years ago
Junegunn Choi ecc418ba77
0.31.0 2 years ago
Junegunn Choi 82b46726fc
Add support for an alternative preview window layout
Close #2804
Close #2844

Related #2277
2 years ago
Junegunn Choi 2d227e5222
[man] Fix unescaped backslash in awk example
Close #2854
2 years ago
Junegunn Choi d56f605b63
Add `rebind` action for restoring bindings after `unbind`
Fix #2752
Close #2564
2 years ago
Junegunn Choi ef67a45702
Add --ellipsis=.. option
Close #2432

Also see
- #1769
- https://github.com/junegunn/fzf/pull/1844#issuecomment-586663660
2 years ago
Junegunn Choi dc975e8974
0.29.0 2 years ago
Junegunn Choi 43f0d0cacd
change-preview-window to take multiple option sets separated by '|'
So you can "rotate" through the different options with a single binding.

  fzf --preview 'cat {}' \
      --bind 'ctrl-/:change-preview-window(70%|down,40%,border-horizontal|hidden|)'

Close #2376
3 years ago
Junegunn Choi 20b4e6953e
Implement change-preview and change-preview-window actions
The new actions are named with 'change-' prefix to differentiate from
the pre-existing, one-off 'preview(...)' action.

Fix #2360
Fix #2505
Fix #2666

Related #2435
Related #2376
  - Can set up multiple bindings with different change-preview-window actions
  - Not possible to "rotate" through the options with a single binding
  - Enlarge or shrink not possible
3 years ago
Junegunn Choi e4c3ecc57e
0.28.0 3 years ago
Junegunn Choi 673c5d886d
Add 'put' action for putting the character to the prompt
fzf --bind 'space:preview(date)+put'

Close #2456
3 years ago
Junegunn Choi 7bff4661f6
Add --header-first option to display header before prompt line
Close #2422
3 years ago
Junegunn Choi 02cee2234d
Implement --scroll-off=LINES
Close #2533
3 years ago
Junegunn Choi 4138333f5c
0.27.3 3 years ago
Junegunn Choi e086f0b3fe
0.27.2 3 years ago
Junegunn Choi a4bc08f5a3
Allow specifying 16 base ANSI colors by their names
Close #2502
3 years ago
Junegunn Choi 0818dbc36a
0.27.1 3 years ago
Junegunn Choi 347c4b2625
Add 'unbind' action
Fix #2486
3 years ago
Junegunn Choi 34f0d4d0c4
[man] Clarification on --select-1 and --exit-0 3 years ago
Junegunn Choi 19759ed36e
0.27.0 3 years ago
Junegunn Choi da1f645670
Change --preview-window delimiter from : to , for consistency
Delimiter : was chosen when --preview-option only supported position and
size attributes. e.g. up:50%
3 years ago
Junegunn Choi 15f4cfb6d9
More border optins for preview window
Close #2431
3 years ago
Junegunn Choi 1b08f43f82
Advanced preview scroll offset expression to better support fixed header 3 years ago
Junegunn Choi 4c4c6e626e
Add support for preview window header
Fix #2373

  # Display top 3 lines as the fixed header
  fzf --preview 'bat --style=header,grid --color=always {}' --preview-window '~3'
3 years ago
Junegunn Choi 76bbf57b3d
Add select and deselect actions
Close #2358
3 years ago
Junegunn Choi f55c990e86
Add `close` action
Close #2331
3 years ago
step a0649edc1e
[man] Clarify that $SHELL is used to run commands (#2334)
SHELL is used for execute actions and the preview and default commands.
3 years ago
Junegunn Choi cc5640326b
[man] Fix typo 3 years ago
Junegunn Choi 8c533e34ea
0.25.0 3 years ago
Junegunn Choi d779ff7e6d
Make search toggleable
- `--phony` renamed to `--disabled` for consistency
    - `--no-phony` is now `--enabled`
- Added `enable-search`, `disable-search`, and `toggle-search` actions
  for `--bind`
- Added `--color` options: `query` and `disabled`

Close #2303
3 years ago
Junegunn Choi 151252e33a
Add preview-top and preview-bottom actions 3 years ago
Junegunn Choi 7f8e0dbc40
Extend support for alt key chords
"alt-" with any case-sensitive character is allowed
3 years ago
Junegunn Choi 0de7ab18f6
Add "last" action to move the cursor to the last match
This is the opposite of "first" (previously known as "top").
3 years ago
Junegunn Choi 00a3610331
0.24.4 4 years ago
Junegunn Choi 2ec382ae0e
Add --preview-window follow option 4 years ago
Junegunn Choi 6d647e13ff
Add change-prompt action
Close #2270
4 years ago
Junegunn Choi 3fe8eeedc5
Fix handling of arrow keys with alt and/or shift modifier
Fix #2254

- Properly handle extra chars in the buffer. Patch suggested by @mckelly2833.
- Support alt-arrow sequences in \e[1;3A format
- Support shift-alt-arrow sequences in \e[1;10A format
4 years ago
Junegunn Choi f6269f0193
Add --padding option
Close #2241
4 years ago
Junegunn Choi e3e76fa8c5
0.24.2 4 years ago
Junegunn Choi d4c9db0a27
0.24.1 4 years ago
Junegunn Choi 552414978e
0.24.0-rc1 4 years ago
Junegunn Choi 2e8e63fb0b
Add more --border options
Instead of drawing the window border in Vim using an extra window,
extend the --border option so that we do can it natively.

Close #2223
Fix #2184
4 years ago
Junegunn Choi 8b0e3b1624
Update --color docs 4 years ago
Junegunn Choi 11841f688b
Add support for text styling using --color
Close #1663
4 years ago
Junegunn Choi a4d9b0b468
Support ANSI escape sequence for clearing display in preview window
fzf --preview 'for i in $(seq 100000); do
    (( i % 200 == 0 )) && printf "\033[2J"
    echo "$i"
    sleep 0.01
  done'
4 years ago
Junegunn Choi fc7630a66d
0.23.1 4 years ago
Junegunn Choi 3248153d9f
Add --preview-window=default for resetting the options 4 years ago
Junegunn Choi 865144850d
Add nowrap, nocycle, nohidden for --preview-window
Close #2203
4 years ago
Junegunn Choi d9752a4c21
Reset preview window flags that are not style-related
Fix #2203
4 years ago
Junegunn Choi dba14d2630
0.23.0 4 years ago
Tinmarino c0aa5a438f
Add preview-half-page-down and preview-half-page-up (#2145) 4 years ago
Junegunn Choi 736344e151
Remove deprecated item from man page 4 years ago
Junegunn Choi 9dc4b40d7a
Add more preview window options and reduce vertical padding on noborder
Fix #2138
Fix #2029
4 years ago
Junegunn Choi 1cb19dbf65
Support preview scroll offset relative to window height
Related: https://github.com/junegunn/fzf.vim/issues/1092
4 years ago
Junegunn Choi e2ae1b249c
0.22.0 4 years ago
Junegunn Choi 0f9cb5590e
Add preview window option for setting the initial scroll offset
Close #1057
Close #2120

  # Initial scroll offset is set to the line number of each line of
  # git grep output *minus* 5 lines
  git grep --line-number '' |
    fzf --delimiter : --preview 'nl {1}' --preview-window +{2}-5
4 years ago
Junegunn Choi 6dec42a33a
Update version numbers in man pages 4 years ago
Junegunn Choi 17dd833925
Add preview action for --bind
Fix #2010
Fix #1638
4 years ago
Junegunn Choi c33258832e
Add refresh-preview action 4 years ago
Junegunn Choi a7aa08ce07
Add backward-eof event for --bind 4 years ago
Junegunn Choi 334a4fa159
0.21.1 4 years ago
Junegunn Choi bf65e8cd12 [fzf-tmux] Add option to start fzf in tmux popup window
Requires latest tmux built from source (e.g. brew install tmux --HEAD)

Examples:

  # 50%/50% width and height on the center of the screen
  fzf-tmux -p

  # 80%/80%
  fzf-tmux -p80%

  # 80%/40%
  fzf-tmux -p80%,40%

  # Separate -w and -h
  fzf-tmux -w80% -h40%

  # 80%/40% at position (0, 0)
  fzf-tmux -w80% -h40% -x0 -y0

You can configure key bindings and fuzzy completion to open in tmux
popup window like so:

  FZF_TMUX_OPTS='-p 80%'
4 years ago
Junegunn Choi b0673c3563
0.21.0 4 years ago
Junegunn Choi 373c6d8d55
Add --keep-right option to keep the right end of the line visible
Close #1652
4 years ago
Kahlil (Kal) Hodgson 7085e5b629
Add explanation for the `g:fzf_colors` setting (#1878)
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
4 years ago
Junegunn Choi d9b1211191
Add more --border options; default changed to "rounded"
--border option now takes an optional argument that defines the style

  - rounded (new default)
  - sharp
  - horizontal (previous default)
4 years ago
James Wright 9f0626da64
Add backward-delete-char/eof action (#1891)
'backward-delete-char/eof' will either abort if query is
empty or delete one character backwards.
4 years ago
Junegunn Choi dca56da0ef
Add 'insert' key for --bind
Close #1744
4 years ago
Hiroki Konishi 2a60edcd52
Make pointer and multi-select marker customizable (#1844)
Add --pointer and --marker option which can provide additional context to the user
4 years ago
Shun Sakai 3918c45ced Update copyright year (#1832)
Update copyright year to 2020 and change to multi-year format.
4 years ago
Junegunn Choi 3db6b88d82
Add preview-fg and preview-bg for --color
Close #1776
5 years ago
Junegunn Choi af1a5f130b
Add clear-query and clear-selection
Close #1787
Related #1364
5 years ago
Junegunn Choi e24299239e
Add `--preview-window noborder` option to disable preview border
Close #1699
5 years ago
Junegunn Choi d2fa470165
Add --info=STYLE [default|inline|hidden]
Close #1738
5 years ago
Junegunn Choi 168453da71
More key chords for --bind
Close #1752
5 years ago
Junegunn Choi 23a06d63ac
Update CHANGELOG and man pages 5 years ago
Junegunn Choi ff951341c9
0.18.0 5 years ago
Junegunn Choi 75972d59a8
Add --no-unicode option to draw borders in ASCII characters
Close ##1533
5 years ago
Junegunn Choi 2157f4f193
Add color option for gutter
fzf --color gutter:-1

Close #1529
Close #1468
5 years ago
Junegunn Choi 8dc1377efb
Export FZF_PREVIEW_LINES and FZF_PREVIEW_COLUMNS to preview process
fzf will still override LINES and COLUMNS as before but they may not
hold the correct values depending on the default shell.

Close #1314
5 years ago
Junegunn Choi 6c32148f90
Add placeholder expression for zero-based item index: {n} and {+n}
Close #1482
5 years ago
Junegunn Choi b46227dcb6
0.17.5 6 years ago
Junegunn Choi 0e06e298d4
[man] Document that FZF_DEFAULT_COMMAND should be POSIX-compliant
Close #1379
6 years ago
Junegunn Choi f0fe79dd3b
0.17.4 6 years ago
Akinori MUSHA daa1958f86 Provide an option to reverse items only (#1267) 6 years ago
Junegunn Choi 2c26f02f5c
Improve preview window update events
- Update preview window even if there is no match for the query string
  if any of the placeholder expressions evaluates to a non-empty string.
- Also, if the command template contains {q}, preview window will be
  updated if the query string changes even though the focus remains on
  the same item.

An example:

    git log --oneline --color=always |
       fzf --reverse --ansi --preview \
       '[ -n {1} ] && git show --color=always {1} || git show --color=always {q}'

Close #1307
6 years ago
Junegunn Choi 7dbbbef51a
Add support for alt-{up,down,left,right} keys
Close #1234
6 years ago
ZDNoFYVe 43345fb642 Implement flag for preserving whitespace around field (#1242) 6 years ago
xalexalex 9ff33814ea Fix typo in README (#1243) 6 years ago
Junegunn Choi 417bca03df
Add shift-up and shift-down
For now, they are respectively bound to preview-up and preview-down
by default (TBD).

Not available on tcell build.

Close #1201
6 years ago
Junegunn Choi 390b49653b
0.17.3 7 years ago
Junegunn Choi 04aa2992e7
Revert "0.17.2"
This reverts commit 2f1edeff78.
7 years ago
Junegunn Choi 2f1edeff78
0.17.2 7 years ago
Junegunn Choi 5a7b41a2cf
Add accept-non-empty action
'accept-non-empty' is similar to 'accept' (which is bound to 'enter' and
'double-click' by default) but it prevents fzf from exiting without any
selection.

Close #1162
7 years ago
Junegunn Choi 338a73d764
[man] Describe 'cancel' action 7 years ago
Junegunn Choi c20954f020
Add replace-query action
replace-query action replaces the query string with the current
selection. If the selection is too long, it will be truncated.

If the line contains meta-characters of fzf search syntax, it is
possible that the line is no longer included in the updated result.

e.g.

  echo '!hello' | fzf --bind ctrl-v:replace-query

Close #1137
7 years ago
Junegunn Choi f6b1962056
Inject $LINES and $COLUMNS when running preview command
Close #1168
7 years ago
Junegunn Choi b3b101a89c
Support binding of left-click and right-click
left-click and right-click are respectively bound to "ignore" and
"toggle" (after implicitly moving the cursor) by default.

Close #1130
7 years ago
Junegunn Choi 0b33dc6ce1
0.17.1 7 years ago
Junegunn Choi e89eebb7ba
0.17.0 7 years ago
Junegunn Choi fee404399a
Make --expect additive
Similarly to --bind or --color.

--expect used to replace the previously specified keys, and
fzf#wrap({'options': '--expect=f1'}) wouldn't work as expected. It
forced us to come up with some ugly hacks like the following:

13b27c45c8/autoload/fzf/vim.vim (L1086)
7 years ago
Junegunn Choi ecb6b234cc
0.16.11 7 years ago
Junegunn Choi 3e28403978
[man] Add note on `--no-` convention
Close #1003
7 years ago
Junegunn Choi 6dbc108da2
0.16.10 7 years ago
Junegunn Choi 18a1aeaa91
0.16.9 7 years ago
Junegunn Choi bf92862459
Update man page: missing name "border" for --color 7 years ago
Junegunn Choi b49f22cdf9
0.16.8 7 years ago
Junegunn Choi e1e3339770
Implement bindable "change" event and "top" action
# Move cursor to the top result whenever the query string is changed
    fzf --bind change:top

Close #925
7 years ago
Junegunn Choi 2d61691bb2
0.16.7 7 years ago
Junegunn Choi 6b592137b9
Add support for ctrl-alt-[a-z] key chords
Close #906
7 years ago
Junegunn Choi 9078197446
Add --version to --help output and man page
Close #888
Close #894
7 years ago
Junegunn Choi e03e91477b
0.16.6 7 years ago
Junegunn Choi 53348feb89
Add --no-clear option 7 years ago
Junegunn Choi e87a85a179
0.16.5 7 years ago
Junegunn Choi c82fb3c9b9
Add toggle-preview-wrap action 7 years ago
Junegunn Choi ee5aeb80a4
0.16.4 7 years ago
Junegunn Choi 4b700192c1
Add --border option to draw horizontal lines above and below the finder
Goes well with --height
7 years ago
Junegunn Choi 7763fdf6ba
Update man pages 7 years ago
Junegunn Choi 36dceecd58
Add support for ctrl-space key
Close #825
7 years ago
Junegunn Choi 421b9b271a
Add execute-silent action
Close #823
7 years ago
Junegunn Choi ed57dcb924
Extend placeholder expression for multiple selections
Close #788
7 years ago
Junegunn Choi 95c77bfb98
Use --bind instead of --toggle-sort
Related #822
7 years ago
Junegunn Choi da2c28d5c2
Add --read0 and --print0 to --help output
Close #822
7 years ago
Junegunn Choi 6a75e30941
Allow invisible preview window (--preview-window 0)
Close #820
7 years ago