选择刚刚粘贴的文本

Roo*_*ook 6 vim gvim

非常简单 - 如何选择刚刚粘贴的文本(粘贴后)?

我正在编辑一些纯粹是数据的文件,有时我会“丢失”......所以如果我可以选择它或以其他方式标记我刚刚粘贴的文本以进行视觉确认会有所帮助,并且知道从哪里继续。

可以做到吗?

asd*_*dfg 1

您是否在正常模式下尝试过“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
Run Code Online (Sandbox Code Playgroud)

这可能会帮助你..将其添加到你的 vimrc 文件中。
在这里,我重新映射了“y”(猛拉)和“p”(粘贴),以便为每次复制和粘贴保存光标位置。您可以使用'; 循环浏览各个位置。它不会选择粘贴的文本,而是将您带到粘贴文本的位置。对于每个新副本,缓冲区(列表)都会被清除。

我只是将缓冲区大小限制为 50。如果不需要,您可以删除该部分。