Вы пробовали "gv" в обычном режиме ...
На самом деле он не выделяет последний вставленный текст ...
Он выбирает последний выбранный текст ..
редактировать:
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
Это может помочь вам .. Добавьте это в ваш файл vimrc.
Здесь я переназначил 'y'(yank) и 'p'(вставка) таким образом, что положение курсора сохраняется для каждой копии и вставки. Вы можете использовать '; циклически проходить через позиции. Он не выделяет вставленный текст, но переносит вас на позиции, где вы вставили текст. Для каждой новой копии буфер (список) очищается.
Я просто ограничил размер буфера до 50. Вы можете удалить раздел, если он не нужен.