In:
:g/pattern/t$
:t
- это команда ex, которая, как и все команды ex, может принимать диапазон.
Следующая команда скопирует строки 1-13 послепоследняя строка:
:1,13t$
Помимо абсолютных номеров строк, вы можете использовать относительные числа:
:-3,+5t$
и, действительно, все, что можно перевести в номер строки:
:?foo?,'et$
В вашем случае вы можете использовать диапазон, чтобы сказать Vim скопировать отмеченную строку, одну выше (-1
), а другую ниже (+1
):
:g/pattern/-1,+1t$
Или, немного короче:
:g/pattern/-,+t$