В настоящее время у меня есть два аналогичных метода для замены всего буфера другим текстом (скажем, в буфере обмена).
Способ № 1:
удалить все строки:
:%d
.вставить текст: "+P(или аналогичный:)
:put+
.
Способ № 2:
визуально выделить все строки: ggVG.
вставить текст: "+P.
Однако я не мог найти способ сделать это одним выстрелом. Самый близкий, который я нашел, это :change
команда. Но это не очень хорошо работает с регистрами. Конечно, я могу создать некоторую функцию и / или сопоставить ключ для этого. Но прежде чем я смогу выполнить все эти настройки, я хочу убедиться:
Есть ли какая-то встроенная команда для замены диапазона строк другим текстом? Мол, вы могли
:%replace+
бы заменить весь буфер текстом в буфере обмена?
1,$s/\_./\=@+
это не решение: P, :%d|put+
ближе, но не совсем там.
1,$s/\_.*/\=@+
, где \_.
совпадает любой символ, включая перевод строки.
:%d|put+
отвечает всем требованиям. Это коротко и незабываемо. Другая команда слишком загадочна, чтобы ее можно было запомнить и правильно ввести.