Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. function! yankring#reset() abort
  2. let s:yankring = []
  3. for l:i in range(1, 9)
  4. execute 'let l:contents = @' . l:i
  5. call add(s:yankring, l:contents)
  6. endfor
  7. endfunction
  8. call yankring#reset()
  9.  
  10. function! yankring#yank(contents) abort
  11. call insert(s:yankring, join(a:contents, "\<C-j>"))
  12. while len(s:yankring) > 9
  13. call remove(s:yankring, -1)
  14. endwhile
  15. call yankring#sync()
  16. endfunction
  17.  
  18. function! yankring#sync() abort
  19. messages clear
  20. for l:n in range(len(s:yankring))
  21. execute 'let @' . l:n . ' = "' . escape(s:yankring[l:n], '"') . '"'
  22. endfor
  23. endfunction
  24.  
  25. augroup yankring
  26. autocmd!
  27. autocmd TextYankPost * if empty(v:event['regname']) | call yankring#yank(v:event['regcontents']) | endif
  28. augroup END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement