Ich habe kürzlich das YankRing-Plugin aus meinem Setup entfernt, teilweise, weil es Probleme mit Makros verursacht hat, aber hauptsächlich, weil ich beschlossen habe, mich besser darin zu üben, stattdessen Vims Register zu verwenden - insbesondere die Art und Weise, wie gelöschter Text anfänglich im Register gespeichert wird "1
und dann durch usw. nach oben verschoben werden "2
, "3
wenn weitere Löschungen vorgenommen werden, ist sehr nützlich.
Wenn eine Löschung / Änderung jedoch weniger als eine Textzeile entfernt, wird sie stattdessen im "-
kleinen Löschregister gespeichert (mit einigen Ausnahmen für bestimmte Bewegungsbefehle). Wenn nachfolgende kleine Löschungen vorgenommen werden, geht dieses Textstück verloren.
Ist es möglich, Vim zu veranlassen, alle Löschungen im Register zu speichern "1
?
nnoremap d "1d
fast funktioniert, aber Sie landen mit dem Text in beiden Registern "1
und "2
.
Es macht mir nichts aus, ob die Funktionalität des kleinen Löschregisters betroffen ist oder nicht. Das Vorschlagen, ich ändere mein Verhalten, um kleine Löschungen in einem benannten Register zu speichern, wäre definitiv keine hilfreiche Antwort - das ist, was ich gerade tue.
Ich habe eine Proof-of-Concept-Lösung, die für den
d
Befehl mit Bewegungen und im visuellen Modus funktioniert . Es ist noch keine vollständig robuste Lösung (d[count]d
funktioniert beispielsweise nicht und funktioniert auch nicht[count]D
), deckt jedoch nahezu alle meine tatsächlichen Anwendungsfälle ab.Es funktioniert, indem eine Kundenoperatorfunktion eingestellt wird, die:
In finden Sie
:help map-operator
eine Erklärung zur Funktionsweise der Bedienerfunktionen.quelle
y
undc
aber fürc
meinen NVIM nicht Einfügemodus nach der Aktion eintritt ... Zur Zeit muß ichexecute l
undstartinsert
das ist keine richtige Korrektur (wie Siec$
die Cursor in der falschen Position bringen würde). Irgendwelche Ideen?Checken Sie die Pull-Anfrage in den Neovim- Editor:
[RFC] Fügen Sie eine Option hinzu, um nummerierte Register für kleinere Löschvorgänge zu verwenden # 8169
Ich habe versucht, die
smalldel
Option hinzuzufügen , mit der Sie die Mindestanzahl gelöschter Zeichen konfigurieren können, die in die nummerierten Register "1 .." 9 verschoben werden sollenDie nächste Neovim-Version nach dem Zusammenführen dieser PR (falls dies geschieht) enthält diese Option.
quelle