diff --git a/nvim/.config/nvim/after/plugin/fzf.vim b/nvim/.config/nvim/after/plugin/fzf.vim index aa147d4..4a9b4c2 100644 --- a/nvim/.config/nvim/after/plugin/fzf.vim +++ b/nvim/.config/nvim/after/plugin/fzf.vim @@ -6,6 +6,24 @@ function! s:build_quickfix_list(lines) cc endfunction +" https://github.com/junegunn/fzf.vim/pull/733 +function! s:list_buffers() + redir => list + silent ls + redir END + return split(list, "\n") +endfunction + +function! s:delete_buffers(lines) + execute 'bwipeout' join(map(a:lines, {_, line -> split(line)[0]})) +endfunction + +command! BD call fzf#run(fzf#wrap({ + \ 'source': s:list_buffers(), + \ 'sink*': { lines -> s:delete_buffers(lines) }, + \ 'options': '--multi --reverse --bind ctrl-a:select-all+accept' +\ })) + let g:fzf_action = { \ 'ctrl-q': function('s:build_quickfix_list'), \ 'ctrl-t': 'tab split', @@ -31,6 +49,7 @@ nnoremap fo :Locate nnoremap fk :Maps nnoremap f/ :Rg nnoremap fs :Rg +nnoremap fw :BD imap (fzf-complete-word) imap (fzf-complete-path)