Você tentou 'gv' no modo normal ...
Não seleciona realmente o último texto colado ...
Seleciona o último texto selecionado ..
editar:
nmap p :call Paster()<CR>
nmap '; :call LastPasted()<CR>
nmap y :call ClearList()<CR>
let s:linelist=[]
let s:lastidx=len(s:linelist)
if !exists("*Paster")
function! Paster()
let x=getpos(".")
let s:linelist+=[x]
let s:lastidx=len(s:linelist)
if s:lastidx>50
remove(s:linelist,0)
let s:lastidx-=1
endif
"echo s:linelist
exec "normal! \"0gp"
endfunction
endif
if !exists("*LastPasted")
function! LastPasted()
if s:lastidx>0
let s:lastidx=s:lastidx-1
else
let s:lastidx=len(s:linelist)-1
endif
let pos=s:linelist[s:lastidx-1]
call setpos(".",pos)
endfunction
endif
if !exists("*ClearList")
function! ClearList()
let s:linelist=[getpos(".")]
let s:lastidx=0
exec "normal! :y\<CR>"
endfunction
endif
Isto pode ajudá-lo .. Adicione isto ao seu arquivo vimrc.
Aqui eu remapeei 'y' (yank) e 'p' (colar) de tal forma que, a posição do cursor é salva para cada cópia e colagem. Você pode usar '; para alternar entre as posições. Ele não seleciona o texto colado, mas leva você para as posições em que você colou o texto. Para cada nova cópia, o buffer (uma lista) é limpo.
Limitei apenas o buffer para 50. Você pode remover a seção se não for necessário.