diff --git a/autoload/fzf/vim.vim b/autoload/fzf/vim.vim index 13282b5..08bfb44 100644 --- a/autoload/fzf/vim.vim +++ b/autoload/fzf/vim.vim @@ -548,11 +548,14 @@ endfunction function! fzf#vim#buffers(...) let bufs = map(sort(s:buflisted(), 's:sort_buffers'), 's:format_buffer(v:val)') + + let [query, args] = (a:0 && type(a:1) == type('')) ? + \ [a:1, a:000[1:]] : ['', a:000] return s:fzf('buffers', { \ 'source': reverse(bufs), \ 'sink*': s:function('s:bufopen'), - \ 'options': '+m -x --tiebreak=index --header-lines=1 --ansi -d "\t" -n 2,1..2 --prompt="Buf> "', - \}, a:000) + \ 'options': '+m -x --tiebreak=index --header-lines=1 --ansi -d "\t" -n 2,1..2 --prompt="Buf> "'.s:q(query) + \}, args) endfunction " ------------------------------------------------------------------ diff --git a/plugin/fzf.vim b/plugin/fzf.vim index f0fa864..112cf62 100644 --- a/plugin/fzf.vim +++ b/plugin/fzf.vim @@ -38,27 +38,27 @@ function! s:defs(commands) endfunction call s:defs([ -\'command! -bang -nargs=? -complete=dir Files call fzf#vim#files(, 0)', -\'command! -bang -nargs=? GitFiles call fzf#vim#gitfiles(, 0)', -\'command! -bang -nargs=? GFiles call fzf#vim#gitfiles(, 0)', -\'command! -bar -bang Buffers call fzf#vim#buffers(0)', -\'command! -bang -nargs=* Lines call fzf#vim#lines(, 0)', -\'command! -bang -nargs=* BLines call fzf#vim#buffer_lines(, 0)', -\'command! -bar -bang Colors call fzf#vim#colors(0)', -\'command! -bang -nargs=+ -complete=dir Locate call fzf#vim#locate(, 0)', -\'command! -bang -nargs=* Ag call fzf#vim#ag(, 0)', -\'command! -bang -nargs=* Tags call fzf#vim#tags(, 0)', -\'command! -bang -nargs=* BTags call fzf#vim#buffer_tags(, 0)', -\'command! -bar -bang Snippets call fzf#vim#snippets(0)', -\'command! -bar -bang Commands call fzf#vim#commands(0)', -\'command! -bar -bang Marks call fzf#vim#marks(0)', -\'command! -bar -bang Helptags call fzf#vim#helptags(0)', -\'command! -bar -bang Windows call fzf#vim#windows(0)', -\'command! -bar -bang Commits call fzf#vim#commits(0)', -\'command! -bar -bang BCommits call fzf#vim#buffer_commits(0)', -\'command! -bar -bang Maps call fzf#vim#maps("n", 0)', -\'command! -bar -bang Filetypes call fzf#vim#filetypes(0)', -\'command! -bang -nargs=* History call s:history(, 0)']) +\'command! -bang -nargs=? -complete=dir Files call fzf#vim#files(, 0)', +\'command! -bang -nargs=? GitFiles call fzf#vim#gitfiles(, 0)', +\'command! -bang -nargs=? GFiles call fzf#vim#gitfiles(, 0)', +\'command! -bar -bang -nargs=? -complete=buffer Buffers call fzf#vim#buffers(, 0)', +\'command! -bang -nargs=* Lines call fzf#vim#lines(, 0)', +\'command! -bang -nargs=* BLines call fzf#vim#buffer_lines(, 0)', +\'command! -bar -bang Colors call fzf#vim#colors(0)', +\'command! -bang -nargs=+ -complete=dir Locate call fzf#vim#locate(, 0)', +\'command! -bang -nargs=* Ag call fzf#vim#ag(, 0)', +\'command! -bang -nargs=* Tags call fzf#vim#tags(, 0)', +\'command! -bang -nargs=* BTags call fzf#vim#buffer_tags(, 0)', +\'command! -bar -bang Snippets call fzf#vim#snippets(0)', +\'command! -bar -bang Commands call fzf#vim#commands(0)', +\'command! -bar -bang Marks call fzf#vim#marks(0)', +\'command! -bar -bang Helptags call fzf#vim#helptags(0)', +\'command! -bar -bang Windows call fzf#vim#windows(0)', +\'command! -bar -bang Commits call fzf#vim#commits(0)', +\'command! -bar -bang BCommits call fzf#vim#buffer_commits(0)', +\'command! -bar -bang Maps call fzf#vim#maps("n", 0)', +\'command! -bar -bang Filetypes call fzf#vim#filetypes(0)', +\'command! -bang -nargs=* History call s:history(, 0)']) function! s:history(arg, bang) let bang = a:bang || a:arg[len(a:arg)-1] == '!'