Как Удалить (требуемый текст), удалите (нежелательный текст) и вставьте (требуемый текст) в Vim

Я не знаю, является ли это отсталая проблема, но это - забавная дилемма. Когда я хочу удалить текст, который я хочу поместить где-то в другом месте, но то место имеет другой набор текста, который я не хочу, я удалил бы тот текст, но в процессе я копирую новый буфер обмена, таким образом, ранее удаленный текст исчезает.

Какие-либо предложения для решения этого?

5
задан Brian Tompsett - 汤莱恩 6 July 2015 в 11:44
поделиться

5 ответов

Несколько возможных решений:

Сначала удалите нежелательный текст :)

или

При удалении нужного текста сохраните его в регистре, отличном от регистра по умолчанию, например, чтобы удалить нужный текст до конца текущей строки и сохранить его в регистре b:

"bd$

Затем удалите нежелательный текст.

Затем вставьте содержимое регистра b:

"bp

или

Удалите нежелательный текст в регистр черной дыры, как предложено в ответе, на который ссылается Yarek T, используя:

"_d
9
ответ дан 18 December 2019 в 08:27
поделиться

возможно, этот вопрос прольет свет на вашу проблему. 54255

Он использует "буфер черной дыры" для удаления строк без добавления их в буфер yank.

6
ответ дан 18 December 2019 в 08:27
поделиться

Другое решение - использовать регистры чисел. Когда вы удаляете фрагмент текста, он перемещается в регистр 1, текущее содержимое регистра 1 перемещается в регистр 2 и т. Д. Содержимое регистра 9 отбрасывается. Однако это работает только для изменений, длина которых превышает длину строки, поэтому небольшие удаления не фиксируются.

Таким образом, вы можете удалить первую область, удалить вторую область, а затем вставить из регистра 2.

Лично я предпочитаю использовать регистры az, но нумерованные регистры полезны, если вы удаляете какой-то текст, а затем понимаете, что забыли указать регистр.

Выполните : help "1 для получения дополнительной информации.

Вы также можете увидеть, что в настоящее время находится во всех регистрах, включая 1-9, с помощью : registers

2
ответ дан 18 December 2019 в 08:27
поделиться

Попробуйте плагин yankring .

0
ответ дан 18 December 2019 в 08:27
поделиться

Type:

:registers

И вы получите список регистров, содержащих все предыдущие удаления. Вы всегда можете выбрать один из них для вставки. Например, для регистров:

"1   Item1^J
"2   Item3^J
"3   Item2^J

выберите второй и вставьте его:

"2p
2
ответ дан 18 December 2019 в 08:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: