用Vim中的文件中的其他地方替换寄存器或行的内容

问题描述 投票:64回答:2

我正在使用Vim,我想用一个长字符串替换一些占位符文本,该字符串跨越多行,这些行已经写入文件中的其他位置。

是否可以用寄存器的内容替换模式?就像是

:%s/foo/<contents of register A>

否则,是否可以用一系列线代替?就像是

:%s/foo/<content of lines from 10 to 15>
replace vim substitution
2个回答
84
投票

根据http://vim.wikia.com/wiki/Search_and_replace看来:

:%s/foo/\=@a/g

此外,在插入模式下按<c-r>a将插入寄存器a的内容。

很酷 - 我从来不知道。好问题。

其他一些与<c-r>有关的事情:http://vimdoc.sourceforge.net/htmldoc/cmdline.html#c_CTRL-R


20
投票
:%s/foo/\=getline(10, 15)/g

:%s/foo/\=join(getline(10, 15))/g
© www.soinside.com 2019 - 2024. All rights reserved.