Если вы хотите сохранить текущую строку такой, какая она есть, вставьте ее выше или ниже строки.
Если вы хотите перезаписать текущую строку, вам сначала нужно удалить ее, что означает, чтоследующая строка занимает место, затем вставьте над новой текущей строкой.
Существует несколько способов сделать это:
"_ddP
"_dd
удаляет всю текущую строку в «регистре черной дыры», следующая строка теперь является текущей строкой.
P
помещает содержимое безымянного регистра выше текущей строки.
Vp
V
переводит вас в режим VISUAL LINE и визуально выделяет всю текущую строку
p
заменяет выбор содержимым безымянного регистра
S<C-r>"
S
удаляет содержимое текущей строки и помещает вас в INSERT mode
<C-r>"
помещает содержимое безымянного регистра
Две последние опции имеютИнтересный побочный эффект: содержимое предыдущей строки заносится в неназванный регистр, что делает невозможным выполнение нескольких вставок с одним и тем же содержимым.
К счастью, вы можете обойти эту ситуацию:
«Регистр черной дыры», упомянутый в первом решении, работает, ну ... как черная дыра.Все, что вы помещаете в него, исчезает навсегда, поэтому вы можете продолжать использовать p
и P
с некоторой степенью уверенности в том, что безымянный регистр при вставке остается неизменным.
Vimдает вам доступ к 26 алфавитным регистрам, которые вы можете использовать для сохранения макросов или… многократного вставления материала.
Принимая второе решение в качестве отправной точки, вы начинаете с того, что целую строку вставляете в регистр "a
с "ayy
затем вы делаете V"ap
в другой строке.
Но все вышеперечисленное предполагает, что текст, который вы хотите вставить, является реальной строкой.Vim делает различие между «строковым» и «символьным»: он не позволяет вставлять строку в символьный контекст или наоборот.
Смахивание всей строки с помощью yy
сохраняет свою линейность или символьность, и вы не сможете p
между двумя символами в одной строке.Для этого вам нужно убедиться, что то, что вы дергаете, не будет интерпретировано Vim как линейное.Например, давайте предположим, что вы находитесь на первом символе первой строки и хотите нажать ipsum dolor
и поставить его на обычное место между lorem
и sit
:
ipsum dolor
lorem sit amet
. Вы должны ввести"ayee
, чтобы поместить ваш восстановленный текст в регистр "a
, поместите курсор в нужное место и введите "aP
.