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

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

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

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

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

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

Ответ 1

Согласно http://vim.wikia.com/wiki/Search_and_replace, он выглядит так:

:%s/foo/\[email protected]/g

Кроме того, нажатие <cr>a в режиме вставки вставит содержимое регистра a.

Круто - я никогда этого не знал. Хороший вопрос.

Некоторые другие вещи, которые нужно сделать с <cr>: http://vimdoc.sourceforge.net/htmldoc/cmdline.html#c_CTRL-R

Ответ 2

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

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