vim Umschalten des Überschreibverhaltens beim Löschen

Vim ist großartig, aber wie viele andere Leute ärgere ich mich sehr, wenn ich kopieren, löschen und dann einfügen möchte - der Yank-Puffer wird durch die Löschaktion überschrieben.

Jetzt weiß ich, dass es 101 Workarounds und Zuordnungen gibt, von denen einige in Posts wie diesem aufgeführt sind:Gibt es eine Möglichkeit, in vim zu löschen, ohne deinen letzten Ruck zu überschreiben?

Aber all diese Lösungen haben Nachteile - selbst ich war ein Puffer-Guru (was ich nicht bin). Zum Beispiel übermäßige Tastenanschläge - während ich normalerweise xxxx, um 4 Zeichen schnell zu löschen (nur ein Tastenanschlag, weil ich ihn gedrückt halte und auf die automatische Wiederholung warte), ist es für mich nicht praktikabel, jetzt auf, x, x, x, x oder zu wechseln Für jedes Mapping muss ich einen anderen Puffer verwenden.

Was wirklich ideal wäre, ist einfach ein Moduswechsel, bei dem Sie das Nebenwirkungsverhalten der Tasten D, d, X und x ein- und ausschalten können, sodass sie ihren Text abwechselnd in einen Puffer schreiben oder nicht. Auf diese Weise kann ich einfach in den Modus "Keine Nebenwirkung" wechseln und nach Herzenslust löschen und dann einfügen, wenn ich fertig bin. Falls gewünscht, können Sie die Nebenwirkungen wieder aktivieren.

Kennt jemand einen Weg, dies zu tun?

[UPDATE: LÖSUNG] OK, ich habe es verstanden: Ich habe eine Funktion geschrieben, die den Modus "Keine Nebenwirkungen" umschaltet ... funktioniert perfekt! Siehe meine akzeptierte richtige Antwort unten

[UPDATE # 2] Meine Lösung funktioniert immer noch hervorragend und ich benutze sie die ganze Zeit, wenn ich viel lösche und einfüge. In der Zwischenzeit habe ich jedoch auch eine leichtere Möglichkeit gefunden, den spezifischen Anwendungsfall des Kopierens, Einfügens und Löschens für einfache Fälle zu erfüllen, in denen der zu löschende Text zusammenhängend ist.

Nachdem ich den Text normal gezogen habe, markiere ich den zu löschenden Text visuell mit dem Befehl v und füge ihn dann einfach mit dem Befehl p ein. Dadurch wird der gewünschte Effekt ohne spezielle Zuordnung erzielt.

Das einzige Problem bei diesem Workflow ist, dass der ursprüngliche Einfügepuffer überschrieben wird, wenn der markierte Text eingefügt wird. Dieses Verhalten kann jedoch mit der folgenden Zuordnung in .vimrc leicht geändert werden:

vnoremap p "_dp
vnoremap P "_dP

Antworten auf die Frage(2)

Ihre Antwort auf die Frage