mirror of
https://github.com/junegunn/fzf.vim.git
synced 2026-01-30 14:45:30 +08:00
@@ -709,9 +709,16 @@ function! s:format_cmd(line)
|
||||
\ '\=s:nbs.s:yellow(submatch(1), "Function").s:nbs', '')
|
||||
endfunction
|
||||
|
||||
function! s:command_sink(cmd)
|
||||
let cmd = matchstr(a:cmd, s:nbs.'\zs\S*\ze'.s:nbs)
|
||||
call feedkeys(':'.cmd.(a:cmd[0] == '!' ? '' : ' '))
|
||||
function! s:command_sink(lines)
|
||||
if len(a:lines) < 2
|
||||
return
|
||||
endif
|
||||
let cmd = matchstr(a:lines[1], s:nbs.'\zs\S*\ze'.s:nbs)
|
||||
if empty(a:lines[0])
|
||||
call feedkeys(':'.cmd.(a:lines[1][0] == '!' ? '' : ' '))
|
||||
else
|
||||
execute cmd
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:format_excmd(ex)
|
||||
@@ -752,8 +759,9 @@ function! fzf#vim#commands(...)
|
||||
let list = split(cout, "\n")
|
||||
return s:fzf({
|
||||
\ 'source': extend(extend(list[0:0], map(list[1:], 's:format_cmd(v:val)')), s:excmds()),
|
||||
\ 'sink': s:function('s:command_sink'),
|
||||
\ 'options': '--ansi --tiebreak=index --header-lines 1 -x --prompt "Commands> " -n2,3,2..3 -d'.s:nbs}, a:000)
|
||||
\ 'sink*': s:function('s:command_sink'),
|
||||
\ 'options': '--ansi --expect '.get(g:, 'fzf_commands_expect', 'ctrl-x').
|
||||
\ ' --tiebreak=index --header-lines 1 -x --prompt "Commands> " -n2,3,2..3 -d'.s:nbs}, a:000)
|
||||
endfunction
|
||||
|
||||
" ------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user