I'm creating a Vim script and a critical part of it is duplicating the selected lines. To duplicate lines, I have this mapping which works as intended:
vnoremap <Leader>d :copy '><CR>
But, when inside a function/script, the behavior of copy
seems different:
function Foo()
copy '>
endfunction
Sample Selected Lines
x = 'alpha'
y = 'bravo'
z = 'charlie'
Expected Result
x = 'alpha'
y = 'bravo'
z = 'charlie'
x = 'alpha'
y = 'bravo'
z = 'charlie'
Actual Result (lines seem to be copied in reverse order)
x = 'alpha'
y = 'bravo'
z = 'charlie'
z = 'charlie'
y = 'bravo'
x = 'alpha'
Likewise, running the copy
command manually against the selected lines works as expected:
:'<,'>copy '>
Am I missing something? Are there better ways to duplicate selected lines programmatically? Thanks