I think Vim made a mistake by letting c and d pollute the default register by "yanking" the contents of the change or deletion. I'll make a short case as to why I think Helix should make a bold decision to not do this like vim (and maybe even kak).
Why not?
The reason why d and c should not also yank is simple, because you can yank before d and c easily with y. You cannot as easily "prevent yank" without knowing about registers and particularly the black-hole register "_; so you're left with "_d or "_c which is too often a use-case to make it not the default behavior. The times when you want to yank before a modification is easily opt-in with yd and yc. Simply put, the answer why the default behavior should be inverted: it's the correct UX.
Note, in View mode, y does not remove the selection like it does in vim. This positions Helix to be able to even consider the correct behavior.
With the correct default behavior in place, users can edit happily knowing that when they copy something to their default register many modifications back in their history, they will not accidentally overwrite the default register with d and c. The foot-gun has been holstered.
How do we migrate?
Some users (vim and kak alike) will not expect this change and will perhaps not like to modify their habit. However, this could easily be mitigated with a config to change the default behavior back (which is what user's do already). If a user doesn't like the position Helix makes, they can modify the behavior or change their habits.
Please.
I think Vim made a mistake by letting
canddpollute the default register by "yanking" the contents of the change or deletion. I'll make a short case as to why I think Helix should make a bold decision to not do this like vim (and maybe even kak).Why not?
The reason why
dandcshould not also yank is simple, because you can yank beforedandceasily withy. You cannot as easily "prevent yank" without knowing about registers and particularly the black-hole register"_; so you're left with"_dor"_cwhich is too often a use-case to make it not the default behavior. The times when you want to yank before a modification is easily opt-in withydandyc. Simply put, the answer why the default behavior should be inverted: it's the correct UX.Note, in View mode,
ydoes not remove the selection like it does in vim. This positions Helix to be able to even consider the correct behavior.With the correct default behavior in place, users can edit happily knowing that when they copy something to their default register many modifications back in their history, they will not accidentally overwrite the default register with
dandc. The foot-gun has been holstered.How do we migrate?
Some users (vim and kak alike) will not expect this change and will perhaps not like to modify their habit. However, this could easily be mitigated with a config to change the default behavior back (which is what user's do already). If a user doesn't like the position Helix makes, they can modify the behavior or change their habits.
Please.