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

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

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

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

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

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

Ответы [ 2 ]

84 голосов
/ 19 марта 2009

Согласно 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 голосов
/ 19 марта 2009
:%s/foo/\=getline(10, 15)/g

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