clipboard.vim (897B)
1 let g:loaded_clipboard_provider = 2 2 3 let g:test_clip = { '+': [''], '*': [''], } 4 5 let s:methods = {} 6 7 let g:cliplossy = 0 8 let g:cliperror = 0 9 10 " Count how many times the clipboard was invoked. 11 let g:clip_called_get = 0 12 let g:clip_called_set = 0 13 14 function! s:methods.get(reg) 15 let g:clip_called_get += 1 16 17 if g:cliperror 18 return 0 19 end 20 if g:cliplossy 21 " behave like pure text clipboard 22 return g:test_clip[a:reg][0] 23 else 24 " behave like VIMENC clipboard 25 return g:test_clip[a:reg] 26 end 27 endfunction 28 29 function! s:methods.set(lines, regtype, reg) 30 let g:clip_called_set += 1 31 32 if a:reg == '"' 33 call s:methods.set(a:lines,a:regtype,'+') 34 call s:methods.set(a:lines,a:regtype,'*') 35 return 0 36 end 37 let g:test_clip[a:reg] = [a:lines, a:regtype] 38 endfunction 39 40 function! provider#clipboard#Call(method, args) 41 return call(s:methods[a:method],a:args,s:methods) 42 endfunction