summaryrefslogtreecommitdiff
path: root/plugin/fzf.vim
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/fzf.vim')
-rw-r--r--plugin/fzf.vim25
1 files changed, 16 insertions, 9 deletions
diff --git a/plugin/fzf.vim b/plugin/fzf.vim
index 22fb4cc9..ba49c7e3 100644
--- a/plugin/fzf.vim
+++ b/plugin/fzf.vim
@@ -33,17 +33,24 @@ set cpo&vim
function! s:fzf_exec()
if !exists('s:exec')
- call system('type fzf')
- if v:shell_error
- let s:exec = executable(s:fzf_go) ?
- \ s:fzf_go : (executable(s:fzf_rb) ? s:fzf_rb : '')
+ if executable(s:fzf_go)
+ let s:exec = s:fzf_go
else
- let s:exec = 'fzf'
+ let path = split(system('which fzf 2> /dev/null'), '\n')
+ if !v:shell_error && !empty(path)
+ let s:exec = path[0]
+ elseif executable(s:fzf_rb)
+ let s:exec = s:fzf_rb
+ else
+ call system('type fzf')
+ if v:shell_error
+ throw 'fzf executable not found'
+ else
+ let s:exec = 'fzf'
+ endif
+ endif
endif
- return s:fzf_exec()
- elseif empty(s:exec)
- unlet s:exec
- throw 'fzf executable not found'
+ return s:exec
else
return s:exec
endif