vim переключает поведение перезаписи буфера при удалении

Vim великолепен, но, как и многие люди, я очень раздражен, когда хочу скопировать, удалить, затем вставить - буфер yank перезаписывается действием delete.

Теперь я знаю, что есть 101 обходной путь и сопоставления, некоторые из которых перечислены в постах, подобных этому:Любой способ удалить в Vim, не перезаписывая ваш последний янки?

Но у всех этих решений есть недостатки - даже я был буферным гуру (а я нет). Например, избыточные нажатия клавиш - в то время как я обычно хххх быстро удаляю 4 символа (только одно нажатие клавиши, потому что я удерживаю его и жду автоповтора), теперь мне нецелесообразно переключаться на, x, x, x, x или Что бы ни отображал я должен использовать другой буфер.

Что действительно было бы идеально, так это простой режим переключения, при котором вы можете включать и выключать побочные эффекты клавиш D, d, X и x, чтобы они поочередно делали или не записывали свой текст в буфер. Таким образом, я могу просто ввести «без побочных эффектов» режим и удалите прочь к сердцу содержание, затем вставьте, когда я буду готов. И повторно включите побочные эффекты при желании.

Кто-нибудь знает способ сделать это?

[ОБНОВЛЕНИЕ: РЕШЕНИЕ] Хорошо, я понял: я написал функцию, которая переключает «без побочных эффектов». режим ... работает отлично! Смотрите мой принятый правильный ответ ниже

[ОБНОВЛЕНИЕ № 2] Мое решение по-прежнему работает отлично, и я использую его все время, когда делаю много удалений и вставок. Но в то же время я также нашел более легкий способ удовлетворить конкретный сценарий использования копирования, вставки, удаления для простых случаев, когда удаляемый текст является смежным.

После обычного перелистывания текста я визуально выделяю текст для удаления с помощью команды v, а затем просто вставляю его с помощью команды p. Это достигает желаемого эффекта без какого-либо специального картирования.

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

vnoremap p "_dp
vnoremap P "_dP

Ответы на вопрос(2)

Ваш ответ на вопрос