Vim - how to delete (not cut)?

vim's delete command, is a core command used in every editing session. Delete combos such as dw, dd, D, di" will make you happy you chose vim. However, there's a known caveat with the delete command.

The problem

the delete command also puts the deleted content into the default register, effectively making the 'delete' command a 'cut' command. This becomes a pain when after cutting one word, you realize you also need to delete some chars with x or words with d before pasting the original first word. The other x's and d's will override the first word.

Common solutions

  1. Always paste immediately after cutting. This will be OK if you use vim for the occasional editing in a ssh session. If you use vim as a primary editor, this solution won't suffice.
  2. Use clipboard managers plugins such as YankRing / YankStack. This helps relief the pain as you can cycle through previous register entries, but it doesn't solve the problem at it's root- the need for different commands for 'cut' and 'delete'. You should use a clipboard manager at any case for yanks. My personal preference is to use OS clipboard managers over plugins.
  3. Generate mappings to separate 'cut' and 'delete'. The Best solution. The related stackoverflow's question accepted answer suggests a mapping which results in (assuming leader is set to ,):
Keys Result
,d delete
d cut

I used this mapping for some time and it does the job quite well. But since 'delete' is much more frequent than 'cut' I switched the mappings around and create this repo which results in (assuming leader is set to ,):

Keys Result
d delete
,d cut

The mapping will also make D, x, X act as 'delete' rather than 'cut'.