0

可以说,我使用括号突出显示(匹配的)文本

/(.*)

现在,如何仅将突出显示的文本(即匹配模式,而不是整行)复制到缓冲区中,以便我将其粘贴到某个位置。

4

3 回答 3

2

这个 Vim Tips Wiki 页面提供了多种方法。最简单的方法是以下自定义命令:

function! CopyMatches(reg)
    let hits = []
    %s//\=len(add(hits, submatch(0))) ? submatch(0) : ''/ge
    let reg = empty(a:reg) ? '+' : a:reg
    execute 'let @'.reg.' = join(hits, "\n") . "\n"'
endfunction
command! -register CopyMatches call CopyMatches(<q-reg>)
于 2013-02-08T07:53:54.513 回答
1

搜索时,您可以使用e标志移动到匹配结束。因此,如果我正确理解您的问题,如果您使用例如:

/bar

如果您想复制它,请使用:

y//e

这将使用之前的搜索模式进行拉拽,直到匹配结束。

于 2013-02-08T07:13:16.387 回答
1
于 2013-02-08T07:54:53.340 回答