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

时间:2009-03-19 15:46:58

标签: replace vim substitution

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

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

这样的东西
:%s/foo/<contents of register A>

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

之类的东西
:%s/foo/<content of lines from 10 to 15>

2 个答案:

答案 0 :(得分: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

有关的其他一些事项

答案 1 :(得分:20)

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

:%s/foo/\=join(getline(10, 15))/g