Skip to content

Commit

Permalink
Set default register to "+ or "* if &clipboard has unnamedplus or unn…
Browse files Browse the repository at this point in the history
…amed
  • Loading branch information
guns committed May 1, 2011
1 parent 77e4109 commit 5806cc9
Showing 1 changed file with 19 additions and 11 deletions.
30 changes: 19 additions & 11 deletions autoload/regbuf.vim
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ function! s:close_all_child_windows() "{{{
endfunction "}}}

function! s:do_operate(opfunc) "{{{
let s:op_register = v:register
let s:op_register = (v:register == '"' || v:register == '') ? s:default_register() : v:register
let &opfunc = "\<SNR>" . s:SID_PREFIX . '_' . a:opfunc
normal! g@g@

Expand Down Expand Up @@ -128,24 +128,22 @@ function! s:buf_yank(...) "{{{
return
endif
let [value, type] = [getreg(regname, 1), getregtype(regname)]
let given_regname = s:op_register != '' ? s:op_register : '"'
call setreg(given_regname, value, type)
call setreg(s:op_register, value, type)

redraw
echo 'Yanked' regname 'register to' given_regname 'register.'
echo 'Yanked' regname 'register to' s:op_register 'register.'
endfunction "}}}

function! s:buf_paste(...) "{{{
let regname = s:get_regname_on_cursor()
if regname ==# s:INVALID_REGISTER
return
endif
let given_regname = s:op_register != '' ? s:op_register : '"'
let [value, type] = [getreg(given_regname, 1), getregtype(given_regname)]
let [value, type] = [getreg(s:op_register, 1), getregtype(s:op_register)]
call setreg(regname, value, type)

redraw
echo 'Pasted' given_regname 'register to' regname 'register.'
echo 'Pasted' s:op_register 'register to' regname 'register.'
endfunction "}}}

function! s:buf_swap(...) "{{{
Expand All @@ -154,13 +152,12 @@ function! s:buf_swap(...) "{{{
return
endif
let [value, type] = [getreg(regname, 1), getregtype(regname)]
let given_regname = s:op_register != '' ? s:op_register : '"'
let [given_value, given_type] = [getreg(given_regname, 1), getregtype(given_regname)]
let [given_value, given_type] = [getreg(s:op_register, 1), getregtype(s:op_register)]
call setreg(regname, given_value, given_type) " Yank to the register on cursor.
call setreg(given_regname, value, type) " Yank to given register by keymapping.
call setreg(s:op_register, value, type) " Yank to given register by keymapping.

redraw
echo 'Swapped' regname 'and' given_regname 'register.'
echo 'Swapped' regname 'and' s:op_register 'register.'
endfunction "}}}

function! s:buf_paste_buffer(...) "{{{
Expand Down Expand Up @@ -351,6 +348,17 @@ function! s:close_preview_window() "{{{
endfunction "}}}


function! s:default_register() "{{{
if &clipboard =~# '\v<unnamedplus>'
return '+'
elseif &clipboard =~# '\v<unnamed>'
return '*'
else
return '"'
endif
endfunction "}}}


" Restore 'cpoptions' {{{
let &cpo = s:save_cpo
" }}}

0 comments on commit 5806cc9

Please sign in to comment.