dotfiles - Personal dotfiles
ssh://anon@thyssentishman.com/dotfiles
Log | Files | Refs | Feed | Contribute | README

Commit: cfc30e090cdea28513bdf5e925c2bbc1eb1e5435
Parent: 69dc0ef17423e4f1ad76a2ddbc2640e8123a8e8c
Author: Johannes Thyssen Tishman
Date:   Mon,  8 Jul 2024 19:22:19 +0000

vim: Add new mappings for fzf

Diffstat:
M vim/plugin/fzf.vim | 23 +++++++++++++++++++++--

1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/vim/plugin/fzf.vim b/vim/plugin/fzf.vim
@@ -2,18 +2,37 @@ function! s:put(lines)
 	call append('.', a:lines[0])
 endfunction
 
+function! s:buflist()
+	redir => ls
+	silent ls
+	redir END
+	return split(ls, '\n')
+endfunction
+
+function! s:bufopen(e)
+	execute 'buffer' matchstr(a:e, '^[ 0-9]*')
+endfunction
+
 let g:fzf_action = {
 	\ 'ctrl-t': 'tab split',
 	\ 'ctrl-v': 'split',
-	\ 'ctrl-h': 'vsplit',
+	\ 'ctrl-s': 'vsplit',
 	\ 'ctrl-r': 'read',
 	\ 'ctrl-p': function('s:put'),
 \}
 
 let g:fzf_layout = { 'down': '30%' }
 
+nnoremap <silent> <leader>F :call fzf#run(fzf#wrap())<CR>
+nnoremap <silent> <leader>f :call fzf#run(fzf#wrap({
+	\ 'source': 'find * -type f'
+\ }))<CR>
+nnoremap <silent> <leader>b :call fzf#run(fzf#wrap({
+	\ 'source':  reverse(<SID>buflist()),
+	\ 'sink':    function('<SID>bufopen'),
+\ }))<CR>
+
 autocmd! FileType fzf
 autocmd  FileType fzf set laststatus=0 noshowmode noruler
 	\| autocmd BufLeave <buffer> set laststatus=1 showmode ruler
 
-nnoremap <silent> <leader>f :call fzf#run(fzf#wrap())<CR>