Замените содержимым регистра или диапазона строк из другого места файла в Vim.
-
20-08-2019 - |
Вопрос
Я использую Vim и хочу заменить текст-заполнитель длинной строкой, занимающей несколько строк, которая уже записана где-то в другом месте файла.
Можно ли заменить шаблон содержимым регистра?Что-то вроде
:%s/foo/<contents of register A>
Иначе можно ли заменить диапазоном строк?что-то вроде
:%s/foo/<content of lines from 10 to 15>
Решение
В соответствии с 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
Не связан с StackOverflow