Skip to content

Commit

Permalink
Add support to delete buffers in :Buffers command
Browse files Browse the repository at this point in the history
By pressing the CTRL-D keybinding
  • Loading branch information
mracos committed Feb 4, 2021
1 parent 02a192e commit a54fcbc
Showing 1 changed file with 22 additions and 6 deletions.
28 changes: 22 additions & 6 deletions autoload/fzf/vim.vim
Original file line number Diff line number Diff line change
Expand Up @@ -687,18 +687,30 @@ function! s:bufopen(lines)
if len(a:lines) < 2
return
endif
let b = matchstr(a:lines[1], '\[\zs[0-9]*\ze\]')
if empty(a:lines[0]) && get(g:, 'fzf_buffers_jump')

let key = a:lines[0]
let buffer_numbers = map(a:lines[1:], {_idx, bufline -> matchstr(bufline, '\[\zs[0-9]*\ze\]')})

if key == 'ctrl-d'
execute 'bdelete' join(buffer_numbers, ' ')
return
endif

let b = buffer_numbers[0]

if empty(key) && get(g:, 'fzf_buffers_jump')
let [t, w] = s:find_open_window(b)
if t
call s:jump(t, w)
return
endif
endif
let cmd = s:action_for(a:lines[0])

let cmd = s:action_for(key)
if !empty(cmd)
execute 'silent' cmd
endif

execute 'buffer' b
endfunction

Expand Down Expand Up @@ -728,13 +740,17 @@ endfunction
function! fzf#vim#buffers(...)
let [query, args] = (a:0 && type(a:1) == type('')) ?
\ [a:1, a:000[1:]] : ['', a:000]

let expected_keys = 'ctrl-d,' . join(keys(s:default_action), ',')
let ctrl_d_header = ["\t\t:: Press ".s:magenta('CTRL-D', 'Special')." to delete"]
let sorted = fzf#vim#_buflisted_sorted()
let header_lines = '--header-lines=' . (bufnr('') == get(sorted, 0, 0) ? 1 : 0)
let header_lines = '--header-lines=' . (bufnr('') == get(sorted, 0, 0) ? 2 : 1)
let tabstop = len(sorted) >= 1000 ? 9 : 8

return s:fzf('buffers', {
\ 'source': map(sorted, 'fzf#vim#_format_buffer(v:val)'),
\ 'source': ctrl_d_header + map(sorted, 'fzf#vim#_format_buffer(v:val)'),
\ 'sink*': s:function('s:bufopen'),
\ 'options': ['+m', '-x', '--tiebreak=index', header_lines, '--ansi', '-d', '\t', '--with-nth', '3..', '-n', '2,1..2', '--prompt', 'Buf> ', '--query', query, '--preview-window', '+{2}-/2', '--tabstop', tabstop]
\ 'options': ['+m', '-x', '--tiebreak=index', header_lines, '--ansi', '-d', '\t', '--with-nth', '3..', '-n', '2,1..2', '--prompt', 'Buf> ', '--query', query, '--preview-window', '+{2}-/2', '--tabstop', tabstop, '-m', '--expect', expected_keys]
\}, args)
endfunction

Expand Down

0 comments on commit a54fcbc

Please sign in to comment.