在 Vim 里复制所有匹配结果
今天突发奇想地想在 Vim 中一次性复制所有的正则匹配结果, 先是直接想到用 MultipleCursors 这个插件带的 MultipleCursorsFind, 复制后提示 yank 操作不能在多光标情况下使用, 这种奇技淫巧果然行不通…
遂用 Vimscript 解决, 在 .vimrc
中加入下列函数:
function! CopyMatches (m)
let @+ .= a:m . "\n"
return a:m
endfunction
复制方法:
:let @+ = ''
:%s/regex/\=CopyMatches(submatch(0))/g
粘贴方法:
"+p
嫌麻烦可以设个快捷键, 如:
:map <F4> :let @+ = ''<cr>:%s/regex/\=CopyMatches(submatch(0))/g
按 F4 后自己改掉 regex 就可以了.
示例: