Update Vim plugin

Changes:
- Rename g:fzf_command to g:fzf_source
- Support multi-select mode
- Add fzf#run(vim_command, fzf_args) function

Todo:
- Faster startup with --disable-gems option when available
This commit is contained in:
Junegunn Choi 2013-11-17 02:41:10 +09:00
parent be3b948034
commit 90adda73b0
2 changed files with 28 additions and 14 deletions

View File

@ -139,13 +139,25 @@ If you install fzf as a Vim plugin, `:FZF` command will be added.
```vim
:FZF
:FZF --no-sort
:FZF --no-sort -m
```
You can override the command which produces input to fzf.
You can override the source command which produces input to fzf.
```vim
let g:fzf_command = 'find . -type f'
let g:fzf_source = 'find . -type f'
```
And you can predefine default options to fzf command.
```vim
let g:fzf_options = '--no-color --extended'
```
For more advanced uses, you can call `fzf#run` function as follows.
```vim
:call fzf#run('tabedit', '-m +c')
```
Most of the time, you will prefer native Vim plugins with better integration

View File

@ -23,23 +23,25 @@
let s:exec = expand('<sfile>:h:h').'/fzf'
function! s:fzf(args)
function! fzf#run(command, args)
try
let tf = tempname()
let prefix = exists('g:fzf_command') ? g:fzf_command.'|' : ''
let fzf = executable(s:exec) ? s:exec : 'fzf'
execute "silent !".prefix.fzf." ".a:args." > ".tf
let tf = tempname()
let prefix = exists('g:fzf_source') ? g:fzf_source.'|' : ''
let fzf = executable(s:exec) ? s:exec : 'fzf'
let options = empty(a:args) ? get(g:, 'fzf_options', '') : a:args
execute "silent !".prefix.fzf.' '.options." > ".tf
if !v:shell_error
let file = join(readfile(tf), '')
if !empty(file)
execute 'silent e '.file
endif
for line in readfile(tf)
if !empty(line)
execute a:command.' '.line
endif
endfor
endif
finally
silent! call delete(tf)
redraw!
silent! call delete(tf)
endtry
endfunction
command! -nargs=* FZF call s:fzf(<q-args>)
command! -nargs=* FZF call fzf#run('silent e', <q-args>)