Skip to content

Commit

Permalink
[vim] Do not pipe FZF_DEFAULT_COMMAND
Browse files Browse the repository at this point in the history
Revert the change introduced in junegunn#552. It seems that the startup time
difference between bash and fish is not much of an issue now.

  > time bash -c 'date'
  Thu Feb 13 21:15:03 KST 2020

  real    0m0.008s
  user    0m0.003s
  sys     0m0.003s

  > time fish -c 'date'
  Thu Feb 13 21:15:05 KST 2020

  real    0m0.014s
  user    0m0.007s
  sys     0m0.006s

When we explicitly *pipe* $FZF_DEFAULT_COMMAND instead of making fzf
internally start the process ($FZF_DEFAULT_COMMAND | fzf), fzf may hang
if the input process doesn't quickly process SIGPIPE and abort.

Also, fzf#vim#grep temporarily swaps $FZF_DEFAULT_COMMAND instead of
setting 'sink' so fzf can kill the default command on 'reload'.

junegunn/fzf.vim#927

However, because of the "pipe conversion", the trick wasn't working as
expected.

https://github.com/junegunn/fzf.vim/blob/467c3277884240f7b5430f8f4d600e3415c38f3b/autoload/fzf/vim.vim#L720-L726

We can go even further and always set $FZF_DEFAULT_COMMAND instead of
piping source command.
  • Loading branch information
junegunn committed Feb 13, 2020
1 parent 9d7480a commit 5e1db9f
Showing 1 changed file with 0 additions and 6 deletions.
6 changes: 0 additions & 6 deletions plugin/fzf.vim
Original file line number Diff line number Diff line change
Expand Up @@ -402,12 +402,6 @@ try
let dict.dir = fnamemodify(dict.dir, ':p')
endif

if !has_key(dict, 'source') && !empty($FZF_DEFAULT_COMMAND) && !s:is_win
let temps.source = s:fzf_tempname()
call writefile(s:wrap_cmds(split($FZF_DEFAULT_COMMAND, "\n")), temps.source)
let dict.source = (empty($SHELL) ? &shell : $SHELL).' '.fzf#shellescape(temps.source)
endif

if has_key(dict, 'source')
let source = dict.source
let type = type(source)
Expand Down

0 comments on commit 5e1db9f

Please sign in to comment.