Я не знаю, является ли это отсталая проблема, но это - забавная дилемма. Когда я хочу удалить текст, который я хочу поместить где-то в другом месте, но то место имеет другой набор текста, который я не хочу, я удалил бы тот текст, но в процессе я копирую новый буфер обмена, таким образом, ранее удаленный текст исчезает.
Какие-либо предложения для решения этого?
Несколько возможных решений:
Сначала удалите нежелательный текст :)
или
При удалении нужного текста сохраните его в регистре, отличном от регистра по умолчанию, например, чтобы удалить нужный текст до конца текущей строки и сохранить его в регистре b:
"bd$
Затем удалите нежелательный текст.
Затем вставьте содержимое регистра b:
"bp
или
Удалите нежелательный текст в регистр черной дыры, как предложено в ответе, на который ссылается Yarek T, используя:
"_d
возможно, этот вопрос прольет свет на вашу проблему. 54255
Он использует "буфер черной дыры" для удаления строк без добавления их в буфер yank.
Другое решение - использовать регистры чисел. Когда вы удаляете фрагмент текста, он перемещается в регистр 1, текущее содержимое регистра 1 перемещается в регистр 2 и т. Д. Содержимое регистра 9 отбрасывается. Однако это работает только для изменений, длина которых превышает длину строки, поэтому небольшие удаления не фиксируются.
Таким образом, вы можете удалить первую область, удалить вторую область, а затем вставить из регистра 2.
Лично я предпочитаю использовать регистры az, но нумерованные регистры полезны, если вы удаляете какой-то текст, а затем понимаете, что забыли указать регистр.
Выполните : help "1
для получения дополнительной информации.
Вы также можете увидеть, что в настоящее время находится во всех регистрах, включая 1-9, с помощью : registers
Type:
:registers
И вы получите список регистров, содержащих все предыдущие удаления. Вы всегда можете выбрать один из них для вставки. Например, для регистров:
"1 Item1^J
"2 Item3^J
"3 Item2^J
выберите второй и вставьте его:
"2p