Заменить содержимым регистра или строк диапазона из другого места в файле в Vim


Я использую Vim, и я хочу заменить некоторый текст заполнителя длинной строкой, которая охватывает несколько строк, которые уже написаны где-то еще в файле.

можно ли заменить шаблон содержимым регистра? Что-то вроде

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

в противном случае, можно ли заменить несколько строчек? что-то вроде

:%s/foo/<content of lines from 10 to 15>
2 63

2 ответа:

согласно 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

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

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