В настоящее время у меня есть два аналогичных метода для замены всего буфера другим текстом (скажем, в буфере обмена).
Способ № 1:
удалить все строки:
:%d
.вставить текст: "+P(или аналогичный:)
:put+
.
Способ № 2:
визуально выделить все строки: ggVG.
вставить текст: "+P.
Однако я не мог найти способ сделать это одним выстрелом. Самый близкий, который я нашел, это :change
команда. Но это не очень хорошо работает с регистрами. Конечно, я могу создать некоторую функцию и / или сопоставить ключ для этого. Но прежде чем я смогу выполнить все эти настройки, я хочу убедиться:
Есть ли какая-то встроенная команда для замены диапазона строк другим текстом? Мол, вы могли
:%replace+
бы заменить весь буфер текстом в буфере обмена?
cut-copy-paste
buffers
replace
Naitree
источник
источник
1,$s/\_./\=@+
это не решение: P,:%d|put+
ближе, но не совсем там.1,$s/\_.*/\=@+
, где\_.
совпадает любой символ, включая перевод строки.:%d|put+
отвечает всем требованиям. Это коротко и незабываемо. Другая команда слишком загадочна, чтобы ее можно было запомнить и правильно ввести.Ответы:
Вы можете сделать,
ggvG<CTRL-G>
чтобы визуально выделить весь буфер и войтиSelect-mode
. Это самый простой способ заменить буфер текстом, который вы планируете печатать. Возможно, вы даже сможете составитьSelect-mode
карту,:smap
которая решит вашу проблему.источник
Один из способов заменить весь буфер буфером обмена - использовать внешнюю команду, например:
См. Также: совместное использование буфера обмена Mac OS X
Или с помощью замены:
В качестве альтернативы используйте
:%d|put+
(как уже предлагалось в комментариях).источник